2013-05-21 3 views
0

Я начал с использования учебного сайта play-authenticate-usage. I Have play 2.1, deadbolt 2.1 и play authenticate 1.0Как добавить дополнительную роль пользователю?

К сожалению, я парень JDBC и новичок в JPA и аннотации.

Все работает нормально, я понимаю, как использовать @Restrict для ролей. Я не вижу, как программно назначить пользователю дополнительную роль. Я ожидал увидеть функцию в классе User, что-то по строке User.addRole (String role)

Я пробовал следующий класс пользователя, но он не работал (никаких ошибок, просто не обновлял таблицы) ...

Change public List<? extends Role> to public List<SecurityRole> 

public void addRole(String roleName) 
{ 
    SecurityRole grRole = SecurityRole.findByRoleName(Application.NEW_ROLE); 

    this.getRoles().add(grRole); 
    this.save(); 
    this.saveManyToManyAssociations("roles"); 
} 

спасибо, Chet

ответ

0

Это похоже на работу, модификации модели/аутентификации/User ...

Change public List<? extends Role> to public List<SecurityRole> 

public void addRole(String roleName) 
{ 
    SecurityRole newRole = SecurityRole.findByRoleName(roleName); 
    if (newRole == null) 
    { 
     newRole = new SecurityRole(); 
     newRole.roleName = roleName; 
     newRole.save(); 
    } 

    if (! this.getRoles().contains(newRole)) 
    { 
     this.getRoles().add(newRole); 
     this.save(); 
     this.saveManyToManyAssociations("roles"); 
    } 
} 
Смежные вопросы