具有带有meteor-roles包的角色/组的组层次结构

时间:2016-10-11 09:17:29

标签: javascript meteor permissions roles

我正在寻找一种可靠且值得尊敬的方式来处理Meteor中具有层次结构的角色和组。我没有和alanning:roles包结婚,很乐意将它换成一个可以轻松满足这些要求的软件包。

要求:

我需要能够创建“无限”数量的子组。假设我有一个团队(团队A)和用户(Bob,Jim,Anna,Daisy,Tom,Jerry),我希望一些成员能够控制他们下面的用户,但不能超过他们。因此,为了最好地说明这个想法,我提出了以下树:

  • 鲍勃(A队)
    • 吉姆(1区)
      • Daisy(经理)
    • 安娜(第2分部)
      • 汤姆(奴隶司机)
        • Jerry(用户)

因此,我目前关于如何最好地处理此问题的想法是通过为具有级联组的组分配树,其中树将表示为这些角色/组组合:

  • bob:roles:[“role”],group:team_a
  • jim:roles:[“role”],group:team_a:division_1
  • daisy:roles:[“role”],group:team_a:division_1:managers
  • anna:roles:[“role”],group:team_a:division_2
  • tom:roles:[“role”],group:team_a:division_2:slave_drivers
  • jerry:roles:[“role”],group:team_a:division_2:slave_drivers:users

我不是这个结构的忠实粉丝,因为它不能真正支持群体的想法以及我已经可以预见的一堆其他问题。但我能想到的唯一替代方案是这样的:

  • bob:角色:[
    • {[“role”],team_a},
    • {[“role”],team_a:division_1},
    • {[“role”],team_a:division_1:managers},
    • {[“role”],team_a:division_2},
    • {[“role”],team_a:division_2:slave_drivers},
    • {[“role”],team_a:division_2:slave_drivers:users}]
  • 杰里:角色:[
    • {[“role”],team_a:division_2:slave_drivers:users}]

这更有意义吗?似乎每次创建子组时我都必须更新每个用户的权限。似乎定义的组的数量可以很快增加。

如果我离开了,并且有一个更简单的方法来解决这个问题,我会很感激被指向正确的方向。有了这些路线,我肯定觉得我正在尝试让角色包做一些其他设计不做的事情。谢谢。

1 个答案:

答案 0 :(得分:0)

如果有人对这种类型的权限管理感兴趣,请随时查看我已经放在一起的bgromadzki:meteor-teams软件包。或者在这里的github页面:https://github.com/BRyeGmoney/meteor-teams

我使用了与角色包类似的前提,但我将包的重点从角色转移到了小组(就像现在的团队集合,而不是角色),我将其命名为团队因为群体似乎过于宽松。我打算继续努力,并感谢任何反馈以及他们可能需要的建议。