【问题标题】:Laravel 7 - Spatie Permissions: Assign User with different role per teamLaravel 7 - Spatie 权限:为每个团队分配不同角色的用户
【发布时间】:2021-03-31 10:09:02
【问题描述】:

好吧,我正在尝试执行以下操作:

  1. 用户可以具有特定角色(用户、提升的用户、管理员)
  2. 大多数人将注册为用户,但有些人将被授予提升的用户角色
  3. 提升权限的用户将能够创建自己的团队
  4. 在每个团队中,提升的用户将能够邀请任何注册到我的 Laravel 应用程序的用户
  5. 如果用户被邀请加入团队,他将被分配特定任务(也称为团队角色)

我做了以下角色:

    $role = Role::create(['name' => 'Elevated User']);
    $role = Role::create(['name' => 'User']);
    $role = Role::create(['name' => 'Admin']);

我怎样才能做到这样的事情?

是否可以通过使用 Spatie 来做到这一点?

  • 我想为我的用户分配一个特定的角色 应用程序,但只为他所属的每个团队分配一个特定的角色 到。
  • 一个用户可能属于不同的团队,在每个团队中扮演不同的角色

例子:

用户 Chris 具有用户角色

  • Chris 属于 A 团队,他在团队中的角色是“编辑”
  • Chris 也属于 B 团队,他在该团队中的角色是“领导者”

克里斯在这两个不同团队中的每个角色,授予他对团队 A 或 B 的不同权限

【问题讨论】:

    标签: laravel-7


    【解决方案1】:
    • 需要用户和团队连接。
    • 角色和权限必须链接到它。
    • 你可以在那里做所需的条件。

    比如这样

    Models/User.php
    
    public function hasAuthorized($team_id, $role) {    
       return $this->userTeams()->where('team_id', $team_id)->first()->hasRole($role); 
    }
    

    【讨论】:

      猜你喜欢
      • 2022-10-20
      • 1970-01-01
      • 2020-07-17
      • 2021-08-07
      • 2021-07-14
      • 2021-08-26
      • 2021-10-02
      • 1970-01-01
      • 2020-11-01
      相关资源
      最近更新 更多