首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不带包的Laravel权限

不带包的Laravel权限
EN

Stack Overflow用户
提问于 2022-02-05 14:46:54
回答 1查看 878关注 0票数 0

我正在学习本教程https://learn2torials.com/a/laravel-authentication-based-on-roles

工作原理很好,实现起来也很简单,但是我想隐藏一些管理角色的路由,所以我需要实现权限,比如'can_view‘、'can_update’等等。我读过一些关于盖茨和策略的内容,但是我仍然很困惑。

是扩展本教程的简单方法吗?我想避免使用包空间/权限。

提前谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-05 16:54:18

您可以使用策略轻松地解决这个问题。

只需使用您的策略定义在app\Policies folder中创建一个文件:

代码语言:javascript
复制
<?php

namespace App\Policies;

use App\Models\User;
use App\Models\Expedient;

class ExpedientPolicy
{
  /**
    * Editing allowed for the person in charge of an open expedient
    * @param  \App\Models\User       $user
    * @param  \App\Models\Expedient  $expedient
    * @return bool
    */
  public function editExp(User $user, Expedient $expedient) { 
    return (!$expedient->exp_close && ($expedient->responsible == $user->id));
  }
}

并在app\Providers\AuthServiceProvider.php中注册

代码语言:javascript
复制
    protected $policies = [
        'App\Model' => 'App\Policies\ModelPolicy',
        Expedient::class => ExpedientPolicy::class,
    ];

现在您可以将此策略用于

@can('editExp', $expedient)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70999062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档