上页 目录 下页
系统架构 设计业务数据

设计用户分类

用户分类,是使用规则对用户进行描述,所有满足该规则的用户,都属于该用户分类。和RBAC等其他模型不同的是:ralasafe并不需要事先静态地将用户划分到该用户分类。

举例:总部用户的分类规则是:用户的companyLevel字段值等于1。用户Alexis Stark的companyLevel值等于1,所以他属于该用户分类;用户John Smith的companyLevel值等于2,所以他不属于该用户分类。

用户分类的规则,由表达式和表达式组组成,可以对数据进行比较运行(in, >, <, >=, !=, is null, is not null, 等)。数据来源有:用户属性、上下文值、数据库查询或者某个指定固定值。

该GUI包含4个部分:

  1. 用户分类树形管理面板:您可以创建、删除和修改用户分类,重新组织树形结构等;
  2. 变量定义面板:定义用户分类规则用到的变量;
  3. 表达式、表达式组定义面板;
  4. 当您点击“测试”(图上显示为Simulate)时,会转入测试面板。

设计

假设我们要定义用户分类"HQ Users",它的规则是:companyLevel等于1。我们需要先定义两个变量:

步骤 屏幕截图
1, 简单值,整型1。点击“增加”按钮,然后选择 "Simple Value"     
2, 用户属性值,引擎自动从读取用户属性“companyLevel”。点击“增加”按钮,选择"User Property"。     

现在,我们有两种办法来定义表达式:

方法 屏幕截图
1, 设计。右击 "Expression Group(AND)",选择 "New Binary Expression";     

2, 或者手工输入规则。这对于特别复杂而难以设计的规则非常有效。这里,你可以使用刚才定义的变量,也可以调用自己的业务Java代码。

点击“Input Mode”进入手工输入模式。该按钮,在保存按钮右边。

    

您还可以通过表达式组,来设计复杂表达式。表达式组的连接关系可以是AND或者OR

复制

当两个用户分类非常类似,我们可以通过复制,然后做少量修改。无需重新从头开始设计。

我们已经设计了"HQ Users",现在我们通过复制"HQ Users"来设计"Branch Users"用户分类。将HQCompanyLevle变量名改为BranchCompanyLevel,并将它的值由1改为2。非常简单快速。

测试

当我们设计完成后,我们可以立即在线测试(simulate),也无需等待应用开发完成。测试页面如下图示

它由3个部分组成:

  1. 规则面板:展示当前用户分类的规则;
  2. 用户选择面板:点击查找按钮,从弹出窗口选择用户;
  3. 测试结果面板:点击绿色的运行按钮,ralasafe引擎将解析规则,测试该用户是否满足该规则。(如果不匹配,结果用红色字体显示)
上页 目录 下页
系统架构 设计业务数据