Open lalindqv opened 9 years ago
Borde det verkligen det? Om vi har en distinktion mellan admin och redaktör är det inte självklart. Kanske bör vi diskutera det här kravet.
Om två eller fler personer känner till lösenordet för samma konto går ju autenticeringen förlorad. Jag skulle själv inte vilja att någon annan kände till mina lösenord (mer än väldigt temporärt, tills man loggat in första gången tex).
Implementerat i featuregrenen 259_profileAdmin
Man får en rullgardin till vid namn "profil". I denna implementering finns två svagheter.
Rörande punkt 2: Så är det på andra ställen så jag ändrar inte det nu.
Till att börja med, använd #<ärendenummer>
-notation för att länka commits till ärenden, (alternativt, om fel ärende / glömt och redan pushat (annars använd git commit --amend
)) eller länka commits till inlägg genom att klippa in commitens hash, t.ex. 1cb3889.
Att lyfta användar id
från params
när man bara ska kunna ändra sin egen data är inte okej. Finns inte något direkt som hindrar att man ändrar eller lägger till det fältet.
Förövrigt, vi kan par-programmera det här och refaktorera endel grejer sen, när det finns tid.
Kan vara värt att läsa lite om hur groovy skiljer sig från Java, http://groovy.codehaus.org/Differences+from+Java
==
är samma som equals
i groovy, dvs, det går att använda på komplexa typer / strängar i groovy tillskillnad mot java som jämför objektreferens (även om det kan råka bli rätt p.g.a string pooling..)
Vill man använda compareTo
så skrivs det <=>
istället.
Betyder det att
def userInstance = (params.id) ? User.get(params.id) : User.get(springSecurityService.principal.id)
skall vara
def userInstance = User.get(springSecurityService.principal.id)
?
Jepp! springSecurityService.principal.id
ger dig id
:t på den inloggade användaren. Hinner användaren logga / time:a ut blir principal
null tror jag. Risken är väl rätt liten att man ska göra det "samtidigt"..
Fixade det och lite annat. Kan vi överväga att ta in? @kamidev ?
Först, läs https://help.github.com/articles/writing-on-github/#references
Kodmässigt, några saker som syns direkt - CSRF
tokens används i formulären men valideras aldrig i backend, felmeddelanden innehåller referenser till params.id
som inte verkar existera längre.
Det finns ingen koll om save(...)
lyckades eller ej (knappast vanligt förekommande problem, men det går att framkalla problem genom att ända samma användare samtidigt)
Jag för högvis med meddelanden som inte är mappade i default messages.properties
.
Har de grejerna någonsin fungerat?
Finns det någon orsak att inte använda lösenordsfält? (se t.ex. Arons rapport..)
Att under Visa
visa vilken lösenordshash en användare har känns... onödigt. Den borde aldrig visas, varken här eller på annat håll.
Sen rent stilmässigt, tomma if
statements? finns det någon bra orsak, speciellt när det är om fälten inte är samma vi vill testa?
En helt annan grej, enl. Arons rapport bör vi byta hashmetod och använda salt (en självklarhet egentligen).
Lämpligt vore att använda bcrypt
enl. http://grails-plugins.github.io/grails-spring-security-core/guide/passwords.html
bcrypt
i springsecurity hanterar såvitt jag vet saltet internt så vi slipper bry oss om det..
Det är inte möjligt för en redaktör att ändra sitt eget lösenord, vilket det borde vara.