ホームページ  >  に質問  >  本文

Laravel Spatieの権限設定方法を設定して、ロールに基づいて各ユーザーの権限のセットを定義するにはどうすればよいですか?

私のシステムを使用しているユーザーのタイプは 4 つあります: 1.スーパー管理者、2.スーパー管理者チーム、3.管理者、および 4。 管理チームメンバー、 spatie を使用してロールとアクセス許可を処理するため、すべてのタイプのユーザーに共通のモジュール (アクセス許可) のセットと、支払い方法などのスーパー管理者専用のモジュール (アクセス許可) の別のセットがあります。 さて、データベースをシードして許可を得たら、すべてを一度にシードする必要がありますか? ['contacts','email','bids'] にはネットワーク シールドが付属しているため (ただし、シールドの正確な使用法とその仕組みについては少し混乱しています)、管理者はこれらからのみアクセスできます。許可されたアクセス許可 チームにアクセス許可を割り当てます。ただし、SuperAdmin の場合、SuperAdminGuard を使用して他のアクセス許可セットを作成する必要がありますか?何がベストプラクティスなのか知りたいです。 使用例: スーパー管理者 まずシステムにログインし、リストから管理者にどの権限を付与するかを決定します。 2. 管理者はシステムにログインし、どの権限セットを自分のチームに付与するかを割り当てますが、管理者はスーパー管理者が持つ権限のリストを表示することはできません。 私の主張を明確にできたと思いますが、それを実装する適切な方法を教えてください。

P粉197639753P粉197639753363日前871

全員に返信(1)返信します

  • P粉736935587

    P粉7369355872023-11-15 10:44:18

    ユーザーというモデルを使用し、ユーザーに権限を直接割り当てていると思います。これが私のアプローチです。つまり、最初にロールを作成し、そのロールに適切なアクセス許可を付与してから、そのロールをユーザーに割り当てることができます。

    まず、ロールに権限を割り当てます

    リーリー

    次に、ロールをユーザーと同期します

    リーリー

    これらは、app/Http/Kernel.php に記述できる組み込みの spatie ミドルウェアです。

    リーリー

    ルーティングで「ロール」ミドルウェアを使用して保護できるようになりました。

    リーリー

    それでは、特定の役割 (スーパー管理者または管理者) の権限を取得する必要があります。あなたにできることは次のとおりです、

    リーリー

    さらに、この方法でユーザー ロールを取得することもできます

    リーリー

    もう 1 つ 、スーパー管理者の場合、ロールから権限を取得する必要はなく、すべての権限を直接取得できます。スーパー管理者はシステム全体にアクセスできるため、これを行うことでスーパー管理者の権限チェックをバイパスできます。 リーリー

    お役に立てば幸いです:)

    返事
    0
  • キャンセル返事