Ignore:
Timestamp:
Mar 14, 2009, 10:04:39 AM (16 years ago)
Author:
gav
Message:

Add changePassword under options view so that users can change their own password.
Adjust for password validation, userCache etc. Only a small bug during "edit" is left on second "update" command.

Location:
branches/TaskRewrite/src/grails-app/controllers
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/TaskRewrite/src/grails-app/controllers/AppCoreController.groovy

    r71 r73  
    1010    //def allowedMethods = [delete:'POST', save:'POST', update:'POST']
    1111
    12 
    1312    def home = {
    1413    }
    1514
    1615    def options = {
    17         def principal = authenticateService.principal()
    18         println principal.getUsername()//get username
    19         println principal.getAuthorities()//get authorities()
    2016    }
     17
     18    def changePassword = {
     19        //def principal = authenticateService.principal()
     20        //println principal.getAuthorities()
     21
     22        if (request.method == 'GET') {
     23            def personInstance = Person.get(authenticateService.userDomain().id)
     24            return [ personInstance : personInstance ]       
     25        } 
     26
     27        if (request.method == 'POST') {
     28            def personInstance = Person.get(authenticateService.userDomain().id)
     29   
     30            personInstance.pass = params.pass
     31            personInstance.password = authenticateService.encodePassword(personInstance.pass)
     32
     33            if (!personInstance.hasErrors() && personInstance.save()) {
     34                //userCache.removeUserFromCache(personInstance.loginName)
     35                flash.message = "Password changed successfully."
     36                redirect(action:options)
     37            }
     38            else {
     39                render(view:'changePassword',model:[personInstance:personInstance])
     40            }                         
     41        } 
     42    }
     43
    2144
    2245    @Secured(['ROLE_AppAdmin'])   
  • branches/TaskRewrite/src/grails-app/controllers/LoginController.groovy

    r59 r73  
    4949        def auth = {
    5050
    51                 nocache response
     51                nocache(response)
    5252
    5353                if (isLoggedIn()) {
  • branches/TaskRewrite/src/grails-app/controllers/PersonController.groovy

    r72 r73  
    9696                }
    9797
    98                 def oldPassword = person.password
    9998                person.properties = params
    100                 if (!params.password.equals(oldPassword)) {
    101                         person.password = authenticateService.encodePassword(params.password)
    102                 }
    103                 if (person.save()) {
    104                         Authority.findAll().each { it.removeFromPersons(person) }
    105                         addRoles(person)
    106                         redirect action: show, id: person.id
    107                 }
    108                 else {
    109                         render view: 'edit', model: buildPersonModel(person)
    110                 }
     99
     100        if (person.pass != "") {
     101            if (!person.hasErrors()) {
     102                person.password = authenticateService.encodePassword(params.pass)
     103            }
     104        }
     105        else {
     106            person.pass = "NothingToClearValidation"
     107        }
     108
     109        if (!person.hasErrors() && person.save()) {
     110            Authority.findAll().each { it.removeFromPersons(person) }
     111            addRoles(person)
     112            redirect action: show, id: person.id
     113        }
     114        else {
     115            render view: 'edit', model: buildPersonModel(person)
     116        }
     117
    111118        }
    112119
     
    122129                def person = new Person()
    123130                person.properties = params
    124                 person.password = authenticateService.encodePassword(params.password)
     131                person.password = authenticateService.encodePassword(params.pass)
    125132                if (person.save()) {
    126133                        addRoles(person)
Note: See TracChangeset for help on using the changeset viewer.