UserController.groovy
上传用户:steveyhw
上传日期:2019-05-13
资源大小:307k
文件大小:4k
源码类别:

PlugIns编程

开发平台:

Java

  1. /**
  2.  * UserController.groovy 
  3.  * Actions over Person objects.
  4.  * @author generated by plugin script
  5.  * @auther Haotian Sun
  6.  */           
  7. class UserController {
  8. AuthenticateService authenticateService
  9.   def index = { redirect(action:list,params:params) }
  10.   // the delete, save and update actions only
  11.   // accept POST requests
  12.   def allowedMethods = [delete:'POST',
  13.                         save:'POST',
  14.                         update:'POST']
  15.   def list = {
  16.     //println "Enter list action in PersonController"
  17.     if(!params.max)params.max = 10
  18.     [ personList: Person.list( params ) ]
  19.   }
  20.   def show = {
  21.     [ person : Person.get( params.id ) ]
  22.   }
  23.   /** person delete action, before removing an existing person, 
  24.    *  he should be removed from those authorities which he is involved
  25.    */
  26.   def delete = {
  27.     //println "Enter delete action in PersonController"
  28.     def person = Person.get( params.id )
  29.     def authPrincipal = authenticateService.principal()
  30.     if(person) {
  31.       //avoid self-delete if the logged-in user is an admin
  32.       if(!(authPrincipal instanceof String) && authPrincipal.username!=person.username){
  33.          def au=Authority.findAll()
  34.          if(Authority.findAll()!=null){
  35.           //firstly, delete this person from People_Authorities table.
  36.           au.each{it.removeFromPeople(person)}
  37.          }
  38.         person.delete()
  39.         flash.message = "Person ${params.id} deleted."
  40.         redirect(action:list)
  41.       }else{
  42.           flash.message = "You can not delete yourself,please login with another admin and try again"
  43.           redirect(action:list)
  44.       }
  45.     }
  46.     else {
  47.       flash.message = "Person not found with id ${params.id}"
  48.       redirect(action:list)
  49.     }
  50.   }
  51.   def edit = {
  52.     def person = Person.get( params.id )
  53.     if(!person) {
  54.       flash.message = "Person not found with id ${params.id}"
  55.       redirect(action:list)
  56.     }
  57.     else {
  58.       def authorityList = Authority.list(params)
  59.       return ['person': person,'authorityList':authorityList]
  60.     }
  61.   }
  62.     
  63.   /** person update action, added additional codes to update the user's roles*/
  64.   def update = {
  65.     //println "Entering update action in PersonController..."
  66.     def person = Person.get( params.id )
  67.     def oldpw = person.passwd
  68.     if(person) {
  69.       person.properties = params
  70.       String ps = params.get("passwd")
  71.       if(!ps.equals(oldpw)){
  72.         def pass = authenticateService.passwordEncoder(ps)
  73.         person.passwd=pass
  74.       }
  75.       Set paramsSet=params.keySet()
  76.       Iterator itt = paramsSet.iterator() 
  77.       if(person.save()) {
  78.         def au=Authority.findAll()
  79.         au.each{it.removeFromPeople(person)}
  80.         while(itt.hasNext()){
  81.           String key = itt.next()
  82.           if(params.get(key).equals("on")&&key.contains("ROLE")){
  83.          def role = Authority.findByAuthority(key)
  84.          role.addToPeople(person)
  85.           }
  86.         }
  87.         redirect(action:show,id:person.id)
  88.       }
  89.       else {
  90.         render(view:'edit',model:[person:person])
  91.       }
  92.     }
  93.     else {
  94.       flash.message = "Person not found with id ${params.id}"
  95.       redirect(action:edit,id:params.id)
  96.     }
  97.   }//update
  98.   def create = {
  99.     def person = new Person()
  100.     person.properties = params
  101.     def authorityList= Authority.list(params)
  102.     return ['person':person,'authorityList':authorityList]
  103.   }
  104.   /** person save action, added additional codes to save the user's roles*/
  105.   def save = {
  106.     //println "Enter SAVE action in PersonController..."
  107.     def person = new Person()
  108.     person.properties = params
  109.     def pass = authenticateService.passwordEncoder(params.passwd)
  110.     person.passwd=pass
  111.     Set paramsSet=params.keySet()
  112.     Iterator itt = paramsSet.iterator()
  113.     if(person.save()) {
  114.       while(itt.hasNext()){
  115.         String key = itt.next()
  116.         if(params.get(key).equals("on")&&key.contains("ROLE")){
  117.           def role = Authority.findByAuthority(key)
  118.           role.addToPeople(person)
  119.           println "Role "+role.authority +" has been added"
  120.         }
  121.       }
  122.       redirect(action:show,id:person.id)
  123.     }
  124.     else {
  125.       def authorityList1= Authority.list(params)
  126.       render(view:'create',model:[authorityList:authorityList1,person:person])
  127.     }
  128.   }//save
  129. }