开发者社区> 问答> 正文

复杂权限设置怎么做?

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

展开
收起
蛮大人123 2016-03-10 17:11:45 2157 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    我的做法是给要发布文档设置一个是否发已经发布的状态,如果是已经发布的状态就配合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";
    2019-07-17 18:57:59
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多