基于用户角色团队的包不能管理团队范围之外的授权

问题描述 投票:0回答:0

在我的应用程序中,一个组织有多个事件,一个用户可以在不同的事件中扮演多个角色,直到现在一切都很好我可以做一个枢轴关系顺便说一句

user_id, role_id, event_id
,但问题是我有一些角色是专注于组织例如:
Owner, Admin
并且它们与事件无关。因此,以前的数据库结构无法解决我的问题,因为它仅限于在事件中具有角色的用户。 我已经尝试过建立多态关系,这基本上意味着用户可以在事件或组织中扮演这样的角色:
user_id, role_id, entity_id, entity_type
,但这需要很多工作,我不知道这是否是理想的解决方案。

我试过的:

我找到的一个解决方案是使用支持团队的 spatie 权限包。 所以基本上一个用户可以在一个事件中扮演一个角色,一个用户也可以在一个事件中拥有权限,所以我想我使用组织的范围而不是事件的范围,然后授予用户访问特定事件的权限。例如:我邀请一个用户到

organization
成为一个
Admin
,然后授予他管理特定事件或多个事件的权利(许可)。 这似乎可行,但问题是我仅限于为该组织中的用户分配一个角色,这意味着在所有事件中,因为现在数据库关系是:
user_id, role_id, organization_id
.

有什么办法可以为用户在不同的事件中分配不同的角色,以及为某些用户在事件之外分配一些角色的能力吗?

laravel entity-relationship multi-tenant user-roles spatie-permissions
© www.soinside.com 2019 - 2024. All rights reserved.