0
0

More than 1 year has passed since last update.

Laravel8 Jetstream team版でOwner以外にチームメンバーのロール編集権限を持たせる

Posted at

Laravel8 Jetstreamであれやこれや作っています。
今回はチーム内に管理者を置いて、共同管理ができるようにしたく、まずはロール変更が出きるようにしてみました。

条件

  • Laravel8
  • Jetstream team版導入済み
  • 新規ユーザ登録時にチームIDは指定し、ロールはreaderを持たせている

なんでこれが必用か

JetstreamのチームメンバーのロールはTeam Ownerしか変更できません。
そこで、editorにも編集権限を渡したいと思います。

参考にしたサイト

ロールの確認

app/providers/JetstreamServiceProvider.php

editorにupdateがあることを確認する。

JetstreamServiceProvider.php
        Jetstream::role('editor', 'Editor', [
            'read',
            'create',
            'update', //<----これ
        ])->description('Editor users have the ability to read, create, and update.');

app/policies/TeamPolicy.phpを編集する。

変更前のこれ

TeamPolicy.php
   public function updateTeamMember(User $user, Team $team)
    {

        return $user->ownsTeam($team);

    }

TeamPolicy.php
   public function updateTeamMember(User $user, Team $team)
    {

        if($user->hasTeamPermission($team, ' update')){
            return true;
        }

        //変更前は以下
        //return $user->ownsTeam($team);
    }

にします。

これだけでした。

これは動かなかった

function名を変えると動きませんでした。

app/policies/TeamPolicy.php

TeamPolicy.php
  public function modifyTeamMember(User $user, Team $team)
    {
        if($user->hasTeamPermission($team, 'update')){
            return true;
        }
    }

function名で参照しているのかな。

最初はOwnerがロール変更をする必用があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0