php - 如何允许多个用户在 laravel 7 Gate 中访问同一级别
问题描述
我想创建一个功能,允许多个用户在相同的访问级别AuthServiceProvider.php
并且我尝试使用 && 请为我提供此问题的解决方案,
这是我的AuthServiceProvider.php
<?php
namespace App\Providers;
use Laravel\Passport\Passport;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Gate;
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
// * Laravel ACL
// ! Admin
Gate::define('isAdmin', function ($user) {
return $user->type === 'admin';
});
// ! Admin and author
Gate::define('isAdminOrAuthor', function ($user) {
return $user->type === 'admin' && 'author';
});
// ! Author
Gate::define('isAuthor', function ($user) {
return $user->type === 'author';
});
// ! User
Gate::define('isUser', function ($user) {
return $user->type === 'user';
});
Passport::routes();
//
}
}
这就是我尝试授予管理员和作者权限的方式
// ! Admin and author
Gate::define('isAdminOrAuthor', function ($user) {
return $user->type === 'admin' && 'author';
});
这没有用,我只是想知道我怎样才能允许同一用户级别的isAdminOrAuthor
名称下的两个用户。
这是我需要允许管理员和作者查看的地方
@can('isAdmin')
<li class="nav-item">
<router-link to="users" class="nav-link ">
<i class="fas fa-users nav-icon text-blue"></i>
<p>Users</p>
</router-link>
</li>
@endcan
我想把这个词改成isAdmin
这样isAdminOrAuthor
两个用户都可以访问它
解决方案
推荐阅读
- python - 熊猫:按顺序将唯一值返回到列
- timezone - 如何在 Alpha Vantage API 中更改时区
- mybatis - mybatis查询中的集合大小
- excel - 覆盖数据并仍然保留数据下拉列表数据
- elasticsearch - Query to partially match every word in a search term in Elasticsearch
- c# - Visual Studio Community 2019 creates a project but cannot open the project it created?
- google-apps-script - 从 Google 表格中的日期列表创建循环全天日历事件
- python - How to fix 'str' object is not callable in django
- javascript - React - 使用 javascript 文件在组件中设置样式
- html - 最后一个 div 和最后一列的边距