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 (如果包含图表模板)。