java权限设置难吗_【Java】有没有做过复杂权限设置的兄弟,帮忙出出主意!!...

我们遇到一个需求,需要权限控制能支持普通的角色、部门等,还需要支持二级授权和对数据进行授权,二级授权是指,用户自己上传的一个文档,上传后是私有的,但是他可以指定开放给某个部门或者某个指定的人有查看,编辑,下载等权限,这个时候需要一个管理者,如他的直接上级进行审核,审核过了还需要一个总的管理者,如CEO再进行审核,同时CEO具有一票否决权。都审核通过权限才会生效。

对数据授权是指,管理者可以指定某些数据给某些人,或者某些部门,同样的功能,具有不同权限的人,进来看到的数据不一样,只能看到已经授权给自己的那部分数据。

这样的需求有兄弟遇到过吗?有没有好的设计方案?谢谢了!

回答

我的做法是给要发布文档设置一个是否发已经发布的状态,如果是已经发布的状态就配合acl进行控制;如果是审核状态(未发布),就建立审核日志,每条日志对应一个审核环节,每个环节记录发起人和接收人,只有审核日志中的人才能访问对应的问题,并进行相应的操作。给个参考数据库结构。

$sql = "create table if not exists xxt_article_review_log(";

$sql .= 'id int not null auto_increment';

$sql .= ',mpid varchar(32) not null';

$sql .= ',article_id int not null';

$sql .= ',seq int not null';

$sql .= ',mid varchar(32) not null';

$sql .= ',disposer_name varchar(255) not null';

$sql .= ',send_at int not null';

$sql .= ',receive_at int not null default 0';

$sql .= ',read_at int not null default 0';

$sql .= ',close_at int not null default 0';

$sql .= ',phase char(1) not null'; // Review|Typeset

$sql .= ",state char(1) not null"; // Pending|Disposing|Forward|Close

$sql .= ',remark text';

$sql .= ",primary key(id)) ENGINE=MyISAM DEFAULT CHARSET=utf8";

权限控制用基于RBAC的权限管理框架shiro实现再合适不过了,不过用的好坏也得看你水平啦

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值