在 userfrosting 中将父组添加到用户组的最佳方法是什么?
What is the best way to add a parent group to user groups in userfrosting?
我是新来的,这是我的第一个问题。
首先,我为我糟糕的英语道歉。
我想使用 userfrosting 0.3.0 创建一个应用程序,其中:
- 任何未注册的人都可以创建超级组(例如公司)
- 当时创建了一个administrator用户,除root外,只能读取supergroup的信息(administrators看不到其他公司)
- 管理员可以在用户组中组织您的用户,但只有 root 可以创建组和修改权限
非常感谢您的宝贵时间。
从 0.3.1 版开始,UserFrosting 没有对组层次结构的内置支持。但是,它应该很容易实现。这是我的做法:
- 创建两个组,"Administrators" 和 "Members"。将其设置为 "Administrator" 是新用户的 default primary group。
- 创建两个 table,
company
和 company_user
。 company
table 将使用主键 id
存储有关公司的信息。 company_user
table 将公司与用户相关联,并有四列:
id
(整数)
company_id
(整数)
user_id
(整数)
flag_admin
(布尔值)
更改AccountController.php
中的register()
方法,当有人注册时,它会创建一个新公司,然后将他们与该公司相关联,通过设置[=将他们标记为该公司的管理员18=] 到 '1'。
添加到特定公司的任何成员也应添加到此 table,但 flag_admin
设置为“0”。
创建一个名为 manages(user_id_1, user_id_2)
的新 AccessCondition
其中 returns true
如果 user_id_1
和 user_id_2
属于同一家公司 和 user_id_1
已将 flag_admin
设置为“1”,否则 false
。
向组 "Administrators" 中的用户授予适当的权限,以便他们可以 create/update/delete/view 用户,但仅限组 "Members" 中的用户,并且仅当管理员 manage
s 他们(所以如果 "Members" 有一个 group_id 的“4”,条件=in_group(user.id,4)&&manages(self.id,user.id)
。
- 您还需要修改各种用户 create/update/delete 方法,以便当管理员创建用户时,将他们添加到组 "Member" 并将他们与适当的公司相关联。
这应该让你开始了,如果你需要进一步的说明,请告诉我。
我是新来的,这是我的第一个问题。 首先,我为我糟糕的英语道歉。 我想使用 userfrosting 0.3.0 创建一个应用程序,其中:
- 任何未注册的人都可以创建超级组(例如公司)
- 当时创建了一个administrator用户,除root外,只能读取supergroup的信息(administrators看不到其他公司)
- 管理员可以在用户组中组织您的用户,但只有 root 可以创建组和修改权限
非常感谢您的宝贵时间。
从 0.3.1 版开始,UserFrosting 没有对组层次结构的内置支持。但是,它应该很容易实现。这是我的做法:
- 创建两个组,"Administrators" 和 "Members"。将其设置为 "Administrator" 是新用户的 default primary group。
- 创建两个 table,
company
和company_user
。company
table 将使用主键id
存储有关公司的信息。company_user
table 将公司与用户相关联,并有四列:id
(整数)company_id
(整数)user_id
(整数)flag_admin
(布尔值)
更改AccountController.php
中的register()
方法,当有人注册时,它会创建一个新公司,然后将他们与该公司相关联,通过设置[=将他们标记为该公司的管理员18=] 到 '1'。
添加到特定公司的任何成员也应添加到此 table,但 flag_admin
设置为“0”。
创建一个名为
manages(user_id_1, user_id_2)
的新AccessCondition
其中 returnstrue
如果user_id_1
和user_id_2
属于同一家公司 和user_id_1
已将flag_admin
设置为“1”,否则false
。向组 "Administrators" 中的用户授予适当的权限,以便他们可以 create/update/delete/view 用户,但仅限组 "Members" 中的用户,并且仅当管理员
manage
s 他们(所以如果 "Members" 有一个 group_id 的“4”,条件=in_group(user.id,4)&&manages(self.id,user.id)
。- 您还需要修改各种用户 create/update/delete 方法,以便当管理员创建用户时,将他们添加到组 "Member" 并将他们与适当的公司相关联。
这应该让你开始了,如果你需要进一步的说明,请告诉我。