簡體   English   中英

Spatie 權限:Laravel 中多個頁面上的多個角色

[英]Spatie Permission: Multiple Roles on Multiple Pages in Laravel

我有多個頁面,其中一個用戶可以有多個角色。 但是我無法在 Spatie Permission 中獲取用戶的分頁角色。 如何獲得 Spatie 權限,如下所示:

Page  |  Role   | User |
------------------------
  A   |  Admin  |  1   |
  B   |  Member |  1   |
  A   |  Cashier|  2   |

使用 Spatie,您可以設置角色和權限,然后在頁面中檢查相關權限,這就是它的意義所在。 但是,您始終可以使用自己的一組自定義權限處理來擴展 Spatie。

即,您可以創建一個配置文件,其中包含每個用戶可以訪問的路由列表,然后添加一個輔助方法。

配置文件:

return [
    ROLE_ADMIN => [
        'route-name1',
        'route-name2',
        'route-name3',
    ],
    ROLE_MEMBER => ['route-name2'],
    ROLE_CASHIER => [],
];

許可方式:

hasPageAccess(string $role, string $routeName): bool  
{
    $permissions =  Arr::get(config('my-page-permissions'), $role, []);

    return !!array_search($routeName, $permissions);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM