我是新来的,这是我的第一个问题。首先,我为我糟糕的英语道歉。我想使用 userfrosting 0.3.0 创建一个应用程序,其中:
- 任何未注册的人都可以创建超级组(例如公司)
- 此时创建了一个管理员用户,除了root,但只能从超级组读取信息(管理员不能看到其他公司)
- 管理员可以在用户组中组织您的用户,但只有 root 可以创建组和修改权限
我非常感谢您抽出宝贵的时间。
我是新来的,这是我的第一个问题。首先,我为我糟糕的英语道歉。我想使用 userfrosting 0.3.0 创建一个应用程序,其中:
我非常感谢您抽出宝贵的时间。
从 0.3.1 版开始,UserFrosting 没有对组层次结构的内置支持。但是,它应该很容易实现。这是我的做法:
company
然后company_user
. 该company
表将使用主键存储有关公司的信息id
。该company_user
表将公司与用户相关联,并有四列:
id
(整数)company_id
(整数)user_id
(整数)flag_admin
(布尔)更改register()
方法,当有人注册时,它会创建一个新公司,然后将他们与该公司关联,通过设置为“1”AccountController.php
将他们标记为该公司的管理员。flag_admin
添加到特定公司的任何成员也应添加到此表中,但flag_admin
设置为“0”。
创建一个新的AccessCondition
被调用者manages(user_id_1, user_id_2)
,true
如果user_id_1
和user_id_2
属于同一家公司并设置 为'1',否则返回。user_id_1
flag_admin
false
向“管理员”组中的用户授予适当的权限,以便他们可以创建/更新/删除/查看用户,但只有“成员”组中的用户并且只有管理员manage
拥有他们(所以如果“成员”的 group_id 为“4 “,条件= in_group(user.id,4)&&manages(self.id,user.id)
。
这应该让你开始,如果你需要进一步澄清,请告诉我。