V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xjdata
V2EX  ›  问与答

请问区分栏目,用户多对多可能性的权限管理,有什么好的解决方案吗?

  •  
  •   xjdata · 2016-04-23 08:51:30 +08:00 · 1538 次点击
    这是一个创建于 3141 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如:有

    1. 栏目 a/b/c/d,
    2. 用户user1/2/3/4
    3. 管理admin1/admin2

    其中:

    1. user1有所有栏目发帖权限.
    2. user2,有b/c栏目发帖权限
    3. user3有d栏目发帖权限
    4. user4 有a/c/d栏目发帖权限
    5. 所有用户可编辑自己的帖子,不能删除自己的帖子

    管理:

    1. admin1有删除所有用户帖子的权限.
    2. admin2只能编辑和删除 user1,user4 2个用户的帖子
    3. admin3只能编辑 user3的帖子

    我使用的是yii2框架,通过yii自带的rbac可以实现上述需求,但是接下来的需求彻底没方向.

    现在有 管理员 admin3:

    1. 可编辑 user1a,c栏目的帖子(user1本身可在所有栏目发帖,但admin只能管理user发布在a,c2个栏目的帖子)
    2. 可编辑 user2b,栏目的帖子(user2同上)
    3. 可编辑栏目 d中 user1,4的帖子(栏目d,本身可以被user1,3,4三个用户发帖,但admin3只能管理1,42个账户的帖子)

    简单说, 就是某个管理员针对不同的栏目/用户, 或针对不同的用户/栏目 进行权限管理. 有多个管理员的情况下,这种交叉应该会非常多变.(用户,栏目是多对多的情况).

    请问有什么已经有的方案吗? 还请大家多多指导. 谢谢.

    8 条回复    2016-04-23 09:23:11 +08:00
    just4fan
        1
    just4fan  
       2016-04-23 08:57:03 +08:00 via Android
    rbac 实现不了?
    xjdata
        2
    xjdata  
    OP
       2016-04-23 09:02:29 +08:00
    @just4fan 第一次搞没有这方面的经验. 想着很复杂, 没有头绪,就懵了. rbac 的层级模式肯定可以实现,对于在线量峰值 400 用户, 权限项目 500 左右的应用不知道会不会很慢. 我举例中的 栏目 实际上大概有 500 个. 用户 400 个, 管理员角色一般在 100 个左右, 用户 大概 200 个左右.
    just4fan
        3
    just4fan  
       2016-04-23 09:08:13 +08:00 via Android
    @xjdata 目前阶段我也没性能方面的经验 😂 我觉得就是一个判断而已 应该对性能影响不大 这个还可以结合数据库实现貌似,一张权限表里存放管理员和用户的对应可编辑关系什么的
    xjdata
        4
    xjdata  
    OP
       2016-04-23 09:12:20 +08:00
    @just4fan 恩 yii 自带的 rbac 有 4 张数据表. 之前有人说过 不到 10 万并发没必要考虑性能.

    性能不是我问题的主要内容.

    就是觉得判断很复杂,

    比如 管理员角色, 在某个栏目下,获取自己在当前栏目内的可管理用户列表.
    某用户发帖的时候,获取 自己在某栏目下的管理员列表.

    呃.... 第一次搞 rbac, 文档看了很多遍了. 方法啥都熟悉, 就是觉得很乱.... 上来找老司机问个路. 也许能让自己少遇到一点坑.
    xjdata
        5
    xjdata  
    OP
       2016-04-23 09:14:21 +08:00
    其实我实际应用. 是容许批量发帖的. 而且发帖的目标可以是不同的栏目.... 就觉得更乱了.

    比如我想在用户发帖的时候 根据当前发布的所有帖子(不同的栏目), 判断本次发帖的 管理员都是谁. 然后优化一下, 根据管理员, 将我发布的帖子 分成及部分, 提交给不同的管理员进行操作.
    xjdata
        6
    xjdata  
    OP
       2016-04-23 09:16:30 +08:00
    这里就出来一个麻烦的事情
    1. 可能 某几个帖子 有共同的管理员,
    2. 也有帖子只有一个管理员
    3. 没管理员的帖子, 全部交给一个默认的管理员

    这里的实现方法, 一点头绪都没.
    just4fan
        7
    just4fan  
       2016-04-23 09:17:52 +08:00 via Android
    @xjdata 砍掉批量发帖 😜
    xjdata
        8
    xjdata  
    OP
       2016-04-23 09:23:11 +08:00
    @just4fan 呃..... 不行. 去掉容许批量发布到不同栏目的功能,整个项目就没什么意义了.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3998 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:18 · PVG 18:18 · LAX 02:18 · JFK 05:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.