6.2.3. 权限许可
permission - 权限许可 定义用户对系统对象或功能的权限,例如 UI 界面,实体操作等。在讨论权限许可时,这些对象称为 target - 客体。
通过给用户分配角色为用户赋予权限。
在通过角色为用户赋予特定的权限之前,用户对客体无任何权限。因此,无角色的用户没有任何权限,不能通过通用 UI 或 REST API 访问系统。 |
根据客体的不同,有以下类型的权限许可:
许可类型描述如下:
- 界面权限
-
界面可以被允许或者拒绝。
在构建主菜单和使用
Screens
接口的create()
方法创建界面时,框架都会检查界面权限。如需在代码中检查界面权限,可以使用 Security 接口的isScreenPermitted()
方法。 - 实体操作权限
-
对每个实体,可以设置以下权限:Create、Read、Update、Delete.
- 实体属性权限
-
每个实体的每个属性都可以被赋予查看或者修改的权限。
- 特定功能权限
-
这些是任意功能的权限许可配置。项目中特定的权限是在 permissions.xml 配置文件中设置。
检查特定功能权限的示例:
@Inject private Security security; public void calculateBalance() { if (!security.isSpecificPermitted("myapp.calculateBalance")) return; //... }
- 界面组件权限
-
界面组件权限可以用来隐藏或者将界面中的特定 UI 组件设为只读状态,不论这些组件是否绑定了实体。界面组件权限会在框架发送 AfterInitEvent 和 BeforeShowEvent 消息之间生效。
界面组件权限与其他类型权限不同的地方在于,只限制其指定的客体的权限。也就是说除非为组件客体定义了隐藏/只读权限,否则该组件客户对于用户来说没有任何限制。
客体组件按照下列规则通过其路径指定: