我为我的项目创建了 2 个自定义角色。我想在注册过程中为用户分配一个角色。如何在注册期间默认为用户分配角色。
另外,如果我有 2 个不同的角色,如何创建 2 个注册表单。对于不同类型的角色,我需要 2 种类型的注册。
我为我的项目创建了 2 个自定义角色。我想在注册过程中为用户分配一个角色。如何在注册期间默认为用户分配角色。
另外,如果我有 2 个不同的角色,如何创建 2 个注册表单。对于不同类型的角色,我需要 2 种类型的注册。
在save您的实现方法中UserServicePlugin,您可以在创建用户时添加角色。例如,假设您有一个名为User实现 DeadboltSubject接口的模型,
@Override
public Object save(final AuthUser authUser)
{
final boolean isExistingUser = User.existsByAuthUserIdentity(authUser);
Long id = null;
if (!isExistingUser)
{
User user = User.create(authUser);
id = user.id;
user.giveRole("some role name");
}
return id;
}
的giveRole方法是这样的。
public void giveRole(String roleName)
{
SecurityRole role = SecurityRole.findByRoleName(roleName);
if (!roles.contains(role))
{
roles = new ArrayList<>(roles);
roles.add(role);
update();
Ebean.saveAssociation(this, "roles");
}
}
这假设您使用的是 Ebean 和 Java,但如果您使用的是 Scala 或其他数据库工具,则机制是相同的。
为了在用户创建时分配不同的角色,请将分配角色的位从save方法中移出(例如)进入这些注册所通过的控制器方法。