用户
用户实体
-
getUsername()
返回唯一用户名。 -
getPassword()
返回加密(hash)后的用户密码。 -
isEnabled()
、isAccountNonExpired()
、isAccountNonLocked()
、isCredentialsNonExpired()
表示用户是否可以登录系统。 -
getAuthorities()
、setAuthorities()
,在登录时框架用于为用户设置权限。
用户保存在应用程序的主数据库中。默认情况下,User
实体和对应的数据库表具有以下属性:
-
id
、version
是标准的主键和乐观锁属性。 -
username
、password
、enabled
保存JmixUserDetails
接口中方法返回的值。 -
email
、firstName
、lastName
保存用户的其他属性。
你可以定义应用程序所需的任意数量的附加属性,例如,department
或 position
。
用户管理
一个新项目包含 010-init-user.xml
数据库迁移 脚本,该脚本创建用户名/密码为 admin
/ admin
的用户,通过给实体分配 system-full-access
角色 授予对系统的完全访问权限。
一个新项目还包含用于管理用户的 UI 视图,请查看主菜单的 Application → Users(用户)。这些视图支持创建、编辑和删除用户,以及更改和重置用户密码。如需为用户分配角色,点击用户列表视图中的 Role assignments(角色分配) 按钮。
框架提供了 ui-minimal 角色,该角色授予登录 UI 和使用一些常见 UI 元素的权限。新用户需要分配此角色才能与基础 UI 进行交互,否则他们将无法登录。
|
内置用户
任何具有标准安全子系统的 Jmix 应用程序都有两个内置的用户对象:
-
Anonymous 匿名用户,对应于无认证信息的用户。支持在用户未登录时授予某些权限。
-
System 系统管理员用户,系统授权 机制需要此用户对象。当没有真正的用户与应用程序交互时使用该用户,例如,当应用程序启动时,或者当计划任务执行业务方法时。
内置用户对象没有保存在数据库,而是在应用程序启动时由 DatabaseUserRepository
类创建。可以在此类的 initAnonymousUser()
和 initSystemUser()
方法中对这两个用户进行定制化。默认情况下,系统用户具有 system-full-access
角色,因此拥有所有权限。
匿名用户默认没有权限。