6.3.1. 配置角色
创建一个
Default - 默认
角色,这个角色禁止所有系统权限。最简单的方法是创建一个 Denying - 拒绝 类型的角色。然后为其勾选 Default role 默认复选框,这样所有新用户都默认带有该角色。为各类用户类别创建一系列允许特定权限的角色,有两种策略:
粗放化(Coarse-grained)角色 – 每个角色中都配置上某类用户责任范畴所需的所有权限,例如
Sales Manager
销售经理,Accountant
会计。这样的话,除了Default
默认角色,每个用户只分配一个角色。精细化(Fine-grained)角色 – 每个角色都配置为可以操作某类功能。例如
Task Creator
任务创建,References Editor
引用编辑。这样的话,每个用户基于他的责任范畴会分配到多个角色。
两种策略也可以组合使用。为不同的用户类别创建一系列角色来分配权限。
- 系统管理员可能会不需要分配任何角色,他们拥有所有系统对象的所有权限。也可以为其分配一个 Super 类型的角色,覆盖所有其它角色指定的限制。
管理功能访问权限
需要给 Denying - 拒绝 角色提供访问管理功能的时候,需要放开一些权限,以下是快速参考。比如,只开放实体日志功能,在相应部分设置提到的权限。
推荐至少提供 sys$FileDescriptor
实体的只读权限,因为这个实体在平台很多地方都会用到:邮件、附件、日志等。
下面提到的权限可以通过相应标签页的 Role
编辑窗口进行配置:Entity - 实体, Screen - 界面 或者 Specific - 特殊功能。
另外,可以通过 cuba.defaultPermissionValuesConfig 应用程序属性配置系统实体的默认访问权限。
- Users - 用户
User 实体可以在数据模型中用来做关联引用实体。需要在查询组件或者下拉框组件使用用户实体,只需要设置sec$User
实体的权限就足够。
如果需要使用 Denying - 拒绝 角色创建或者编辑User
实体,还需要设置以下权限:
-
实体:sec$User
,sec$Group
; (可选)sec$Role
,sec$UserRole
,sec$UserSubstitution
.
读取sec$UserSubstitution
实体的权限对代替用户功能是至关重要的。
-
界面: Users 菜单项,sec$User.edit
,sec$Group.lookup
; (可选)sec$Group.edit
,sec$Role.edit
,sec$Role.lookup
,sec$User.changePassword
,sec$User.copySettings
,sec$User.newPasswords
,sec$User.resetPasswords
,sec$UserSubstitution.edit
.- Access Groups - 访问组
创建或者管理用户访问组以及安全限制。
-
实体:sec$Group
,sec$Constraint
,sec$SessionAttribute
,sec$LocalizedConstraintMessage
.
-
界面: Access Groups 菜单项,sec$Group.lookup
,sec$Group.edit
,sec$Constraint.edit
,sec$SessionAttribute.edit
,sec$LocalizedConstraintMessage.edit
.- Dynamic Attributes - 动态属性
访问额外的实体非持久化属性。
-
实体:sys$Category
,sys$CategoryAttribute
, 以及数据模型需要的其它实体。
-
界面: Dynamic Attributes 菜单项,sys$Category.edit
,sys$CategoryAttribute.edit
,dynamicAttributesConditionEditor
,dynamicAttributesConditionFrame
.- User Sessions - 用户会话
查看用户会话数据。
-
实体:sec$User
,sec$UserSessionEntity
.
-
界面: User Sessions 菜单项,sessionMessageWindow
.- Locks - 锁
设置实体的悲观锁。
-
实体:sys$LockInfo
,sys$LockDescriptor
, 以及数据模型需要的其它实体。
-
界面: Locks 菜单项,sys$LockDescriptor.edit
.- External Files - 外部文件
访问应用的文件存储。
-
实体:sys$FileDescriptor
.
-
界面: External Files 菜单项; (可选)sys$FileDescriptor.edit
.- Scheduled Tasks - 定时任务
创建和管理定时任务。
-
实体:sys$ScheduledTask
,sys$ScheduledExecution
.
-
界面: Scheduled Tasks 菜单项,sys$ScheduledExecution.browse
,sys$ScheduledTask.edit
.- Entity Inspector - 实体探查
从实体探查动态生成的界面中操作应用对象实体。
-
实体: 数据模型需要的实体。
-
界面: Entity Inspector 菜单项,entityInspector.edit
, 以及数据模型需要的其它实体。- Entity Log - 实体日志
在实体监听器级别记录实体持久化操作。
-
实体:sec$EntityLog
,sec$User
,sec$EntityLogAttr
,sec$LoggedAttribute
,sec$LoggedEntity
, 以及数据模型需要的其它实体。
-
界面: Entity Log 菜单项.- User Session Log - 用户会话日志
查看用户登入登出或者用户会话的历史数据。
-
实体:sec$SessionLogEntry
.
-
界面: User Session Log 菜单项.- Email History - 邮件历史
查看从应用发出的电子邮件。
-
实体:sys$SendingMessage
,sys$SendingAttachment
,sys$FileDescriptor
(邮件附件需要).
-
界面: Email History 菜单项,sys$SendingMessage.attachments
.- Server Log - 服务器日志
查看并下载应用的日志文件。
-
实体:sys$FileDescriptor
.
-
界面: Server Log 菜单项,serverLogDownloadOptionsDialog
.
-
特殊功能:下载日志文件
- Screen Profiler - 界面资料
应用界面的使用量和使用时间的统计数据。
-
实体:sec$User
,sys$ScreenProfilerEvent
.
-
界面: Screen Profiler 菜单项.- Reports - 报表
需要运行报表,参考 报表生成器 插件。
-
实体:report$Report
,report$ReportInputParameter
,report$ReportGroup
.
-
界面:report$inputParameters
,commonLookup
,report$Report.run
,report$showChart
(如果包含图表模板)。