统计项目权限的设计结构

一、权限控制预计分为:
         1、资源:用户访问的菜单、操作的按钮、链接的url都对应一条资源数据
         2、角色:角色包含一组资源,表明拥有该角色的账号允许访问这组资源对应的页面或操作
         3、角色组:角色组中包含一组角色,用于自由灵活地生成各种控制策略
         4、账号:匹配一个角色组,拥有角色组中资源的访问权限
         (以上可以用shiro配置,达到不同权限的用户拥有各自的视图界面)
        5、  具体到每个账户对应不同省、市、区等,需要账号设置所属地区、学校,查询时就完成权限划分。

         

二、资源(Resources)的数据结构
         /** 用于左侧菜单的权限控制 **/
public static final String MENU = "menu";
         /** 用于跳转页面链接时的权限控制 **/
public static final String BUTTON = "button";
@Id
private String id;
private String name;
                             // 资源名称
private String desc;
                                 //资源描述
private String type;
                                 //资源类型:meun、button
private String value;
                              //资源值:meun(/manage/account/list)、button(account:*)
private boolean enabled = true;

三、角色(Role)的数据结构
          @Id
private String id;
private String roleName;
                            // 角色名称
private String roleDesc;
                              // 角色描述
private Set<String> resourceIds;
          // 角色对应的资源集合
private boolean enabled = true;
         
四、角色组(RoleGroup)的数据结构
          @Id
private String id;
private String roleGroupName;
                           // 角色 名称
private String roleGroupDesc;
                             // 角色 描述
private Set<String> roleIds;
                            // 角色对应的角色集合
private boolean enabled = true;
private String createTime;
private String modifyTime;

五、账号(Account)的数据结构
/** 超级管理员 **/
public static final String ACCOUNT_TYPE_SUPERADMIN = "super_admin";
/** 教育局管理员 **/
public static final String ACCOUNT_TYPE_EDUADMIN = "edu_admin";
/** 学校管理员 **/
public static final String ACCOUNT_TYPE_SCHADMIN = "sch_admin";
/** 运营管理员 **/
public static final String ACCOUNT_TYPE_SOPADMIN = "sop_admin";

@Id
private String id;

private String userName; //登录用户名
private String showName; //显示用户名
private String password; //密码
private int loginNum = 0; //登录次数
private String adminType; //管理员类型
private boolean isWholeCountry; //是否全国
private Set<String> provinceIds; //省
private Set<String> cityIds; //市
private Set<String> areaIds;   //区县
private Set<String> centerSchoolIds; //中心校
private Set<String> schoolIds; //学校
private String modifyUserId; //记录最后一次修改人(逻辑删除,修改基本信息,作用域等有效)
private String modifyUserName; //记录最后一次修改人(逻辑删除,修改基本信息,作用域等有效)
private String loginTime;  //登录时间
private String createTime; //创建时间
private String modifyTime; //记录最后一次修改时间(逻辑删除,修改基本信息,作用域等有效)
private boolean enabled = true; //是否可用,逻辑删除用
private int status = 1; //禁用启用状态:0-禁用;1-启用;
/**权限控制**/
private Set<String> roleGroupIds;
        //账号对应的角色组集合

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值