Laravel 5.5 权限 - 用户没有正确的角色

2024-03-31

我试图在管理员用户没有分配的角色的用例中找到解决方案。 在仪表板视图中,它不会为用户呈现 url,而如果我直接访问仪表板/用户,我会得到:

Spatie \ Permission \ Exceptions \ UnauthorizedException user does not have the right roles

应用程序/Http/Kernel.php

    protected $routeMiddleware = [
     ....
    'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
    'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,
];

路线/web.php

Route::group(
   ['middleware' => ['role:admin']],
    function () {
      Route::get('/dashboard/users', 'UsersController@index');
      Route::get('/dashboard/users/{id}', 'UsersController@edit');
      Route::patch('/dashboard/users/{id}', 'UsersController@update');
   }
);

查看/dashboard.blade.php

<div class="panel-body">
  @hasrole('admin')
     <li><a href="/dashboard/users">Manage Users</a></li>
  @endhasrole
</div>

我已成功生成默认角色和权限

命令/GenerateRoles.php

    public function handle()
    {
    $this->info('Generating default roles and permissions...');
    $admin = User::create(
      [
        'name'     => 'administrator',
        'email'    => '[email protected] /cdn-cgi/l/email-protection',
        'password' => bcrypt('12345'),
      ]
    );

    // Create roles.
    $adminRole   = Role::create(['name' => 'admin']);
    $supportRole = Role::create(['name' => 'support']);

    $admin->assignRole('admin');

    // Create permissions.
    $userManagement = Permission::create(['name' => 'users management']);
    $deleteImages  = Permission::create(['name' => 'delete images']);
    $datasetStatus   = Permission::create(
      ['name' => 'change dataset building status']
    );

    $adminRole->givePermissionTo($userManagement);
    $deleteImages->syncRoles([$adminRole, $supportRole]);
    $datasetStatus->syncRoles([$adminRole, $supportRole]);
   }

它可能会出什么问题?谢谢你的时间。


您应该覆盖渲染方法以重定向(或任何您想要做的事情)。转到 Expections/Handler.php 并覆盖渲染函数,如下所示:

public function render($request, Exception $exception)
{
    if ($exception instanceof \Spatie\Permission\Exceptions\UnauthorizedException) {
          return redirect('/');
    }

    return parent::render($request, $exception);
}

source:https://github.com/spatie/laravel-permission#having-role-and-permission-failures https://github.com/spatie/laravel-permission#catching-role-and-permission-failures

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 5.5 权限 - 用户没有正确的角色 的相关文章

  • CodeIgniter 自定义库未加载

    我是 CodeIgniter 的新手 并尝试用它开发一个相当简单的应用程序 只是一个用于处理想要娱乐中心通行证的员工的注册的表单 我正在尝试将事物分开以使它们更清晰 这是代码 应用程序 控制器 reccenter php class Rec
  • setcookie with expire=0 浏览器关闭后不会过期

    我使用setcookie来制作一个过期 0的cookie 从 PHP 文档来看 link http php net manual en function setcookie php cookie 过期的时间 这是一个 Unix 时间戳 所以
  • 用户可以更改 PHP 中 $_SESSION 的值吗?

    这是我的想法 我想知道是否可能 将信息存储在 PHP 的 SESSION 变量中有多安全 在 SESSION 变量中存储变量有两个潜在的 不安全 风险 另一个答案所描述的第一个称为 会话固定 这里的想法是 由于会话 ID 存储在 cooki
  • PHP 通过 SSL 连接到 MS SQL

    我想要实现的目标非常简单 我想通过安全连接从 PHP 脚本连接到外部 MS SQL 数据库 然而 这已被证明是有问题的 到目前为止 经过三个小时的研究 我不知所措 客户端的平台是Ubuntu 这意味着我无法使用SQLSRV 安全连接已经在不
  • 获取 YouTube 最高缩略图分辨率

    我想获得 youtube 最高缩略图 maxresdefault jpg 像这个 http i ytimg com vi Cj6ho1 G6tw maxresdefault jpg http i ytimg com vi Cj6ho1 G6
  • 按文件名对 $_FILES 进行排序 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 他俩 如您所知 在新的 HTML5 中 您可以非常轻松地上传多个文件 但我这里的问题是如何按列 名称 对 FILES 数组进行排序 这是
  • jQuery ajax 调用包含重音字符的 url 将错误的 Uri 从 IE 发送到服务器

    我在使用 IE 发送包含重音字符的 url 时遇到问题 这是一个简单的函数 function runjQueryTest var url test Beyonc get url function 在服务器 PHP 上我记录了请求uri的值
  • Yii2 - 错误请求 (#400) |前端和后端cookie

    仅当我打开时才会出现此问题frontend and backend在相同的browser 设想 与后端交互 gt 切换选项卡 gt 与前端交互 gt 切换选项卡返回 gt 与后端交互 gt 错误请求 400 Cookie 后端 identi
  • PHP - 如何获取主要 HTML 内容,例如 Firefox 中的阅读器模式

    在 android Firefox 应用程序和 safari iPad 中 我们只能通过 阅读器模式 阅读主要内容 阅读更多 http support mozilla org en US kb how enable reader mode
  • 如何在 GitHub Action 中使用不同版本的 PHP 进行测试

    我有一些 PHP 代码 其中包含使用以下命令运行的测试PHPUnit并想对其进行测试GitHub Actions 我在他们的文档中找不到测试 PHP 包的方法 我想使用不同版本的 PHP 进行测试 但他们只有最新的版本7 3安装 您可以添加
  • 使用 PHP/linux 将文件合并为单个 PDF

    我正在研究如何将多个 PDF 合并为一个 PDF 我正在寻找一个图书馆可靠且坚固尽可能 最好有一个库可以保留书签 鬼脚本 http pages cs wisc edu ghost 可以在保存书签的位置进行连接 但我遇到了麻烦 在一种情况下它
  • 使用值填充的 Symfony2 自定义字段类型

    这是先前问题的后续问题Symfony2 自定义表单类型或扩展 https stackoverflow com questions 24079288 symfony2 custom form type or extension 我正在尝试为订
  • 是否可以用 PHP 编写电子邮件解析器? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • Facebook API sdk 4.0 - 将照片发布到 Facebook

    我正在尝试创建一个应用程序 用户可以在其中浏览照片并将其从计算机提交到 Facebook 为此 他们首先必须将照片上传到服务器 然后使用 Facebook 请求将此图像发布到 Facebook 我正在使用多部分 表单数据 这就是我到目前为止
  • 如何处理 REST api 中的 php 通知、警告和错误?

    在 REST API 中 200 响应表明操作成功 PHP 默认情况下直接在响应正文中输出错误消息 而不更改响应代码 在 SPA 中 用户无法直接看到响应文本 因此 当应用程序未按预期工作时 我通过 FireBug 检查响应正文 以检查可能
  • 字符串相似度的算法(比Levenshtein和similar_text更好)? php, Js

    在哪里可以找到比 levenshtein 和 phpimilar text 方法更准确地评估错误字符的拼写的算法 Example similar text jonas xxjon similar echo similar returns 6
  • PHP 检查当前日期是在设定日期之前还是之后

    我从数据库中提取一个日期 其格式为 dd mm YYYY 我想做的是检查当前日期 如果当前日期早于数据库中的日期 则需要打印数据库日期 如果是在之后 则需要打印 继续 有人能指出我正确的方向吗 if strtotime database d
  • PHP 表单 - 带验证蜜罐

    我有以下内容 效果很好 但对垃圾邮件机器人开放 我想放入蜜罐 而不是验证码 下面的代码适用于验证姓名 电子邮件 消息 但我无法让它与蜜罐一起工作 任何人都可以查看 蜜罐 代码并告诉我如何修复它吗 我希望表单给出 success2 不允许垃圾
  • 如何在 PHP 5.6 中通过 php.ini 设置“verify_peer_name=false”SSL 上下文选项

    案例 我想打开 SSL 连接localhost而 SSL 证书是 FQDN 的问题 问题 没有进行特殊处理就行 下面的程序失败并显示以下消息 PHP Warning stream socket enable crypto Peer cert

随机推荐

  • 仅 Android Gmail 中的电子邮件中出现空白。我该如何解决这个问题?

    我的电子邮件可以在所有电子邮件客户端 Outlook iOS Litmus 等 中完美运行 但 Android 上的 Gmail 应用程序除外 在该应用程序中 它出现了间隙 这是问题的屏幕截图 这只是一个基本的概念证明 下面是一些 HTML
  • NSOperation、观察者和线程错误

    我有一个问题NSOperation和观察员 I ve a tabbarcontroller and a splashController 我想要启动画面加载并下载文件 并在下载文件时使tabbarcontroller出现在屏幕上 问题是我有
  • jQuery - 替换字符串中字符的所有实例[重复]

    这个问题在这里已经有答案了 这不起作用 我非常需要它 some multi word string replace 总是得到 some multi word string 它总是仅替换第一个实例 但我需要它适用于所有 符号 您需要使用正则表
  • 从 C# 配置 *.scr 文件

    我正在 C Net 中创建一个程序 其中一项功能允许用户从列表中选择屏幕保护程序并预览或配置它 经过一些研究后 我发现通过使用 c 参数调用 scr 文件将显示配置对话框 从命令行使用此参数工作正常 C Windows System32 g
  • 使用 std::is_same 进行元编程

    是否可以执行类似以下操作而无需模板专门化进行编译 template
  • 私有类型的模板专业化

    我有一个通用算法 需要访问其模板类型的特征 有一个特征类可以专门用于提供这些特征 当在我的类中使用此算法时 我想将其与类中定义的私有类型一起使用 然而 专业化只能发生在namespace或我的类无法访问的全局范围 class A struc
  • Nhibernate CreateSQLQuery 存储过程结果到非映射类

    在我的应用程序中 我想从存储过程中获取数据 其中表未映射到应用程序中 在此存储过程中 我向列名添加了别名 这些别名响应我的类中的属性 HQL return Session CreateSQLQuery exec PER PrikklokSa
  • CLSID 为 {00024500-0000-0000-C000-000000000046} 的 COM 对象无效或未注册

    在我的应用程序中有一个显示 Excel 工作表的功能 由于某种原因 我们需要卸载 Microsoft Office 现在上述功能不起作用 我收到以下错误 CLSID 为 00024500 0000 0000 C000 00000000004
  • 当执行 uop 计数不是处理器宽度倍数的循环时,性能是否会降低?

    我想知道不同大小的循环在最新的 x86 处理器上如何执行 作为 uop 数量的函数 这里引用 Peter Cordes 的一段话 他在 中 中提出了非 4 倍数的问题另一个问题 https stackoverflow com a 31027
  • 刷新数据库是什么意思?还带有“闪”

    我想知道 flush 和 flash 是什么意思以及它们之间的区别 Flushing 将应用程序数据的临时状态与数据的永久状态 在数据库中或磁盘上 同步 说明 刷新实际上是一个缓存术语 而不是数据库术语 当您使用 ORM 或应用程序保存数据
  • jquery - 数据表更改 sScrollY

    我想更改数据表的可滚动区域的大小 example dataTable sScrollY 100 some stuff example dataTable sScrollY 101 wrong cannot reinitialize data
  • Java中有goto语句吗?

    我对此很困惑 我们大多数人都被告知 Java 中没有任何 goto 语句 但我发现它是Java中的关键字之一 可以用在哪里呢 如果不能使用 那为什么要把它作为关键字包含在Java中呢 James Gosling 在以下支持下创建了最初的 J
  • Java源代码解析器

    我需要以编程方式从 Java 源文件中提取方法定义 实现 您能推荐我可以使用的任何方便的库吗 谢谢 ANTLR http antlr org 是一个解析器 生成器 具有 Java 和其他语言 的语法 它可以生成一个抽象语法树 AST 您可以
  • 如何在application.ini中设置数据库时区

    我在 Zend Framework 中有一个应用程序 它必须在与服务器不同的时区运行 application ini 中是否有设置数据库服务器 本例中为 MySQL 时区的选项 我当前的选择是 resources db adapter Pd
  • python的shutil.copyfile()是原子的吗?

    我正在编写一个 python 脚本 它使用以下命令复制文件Shutil copyfile http docs python org 2 library shutil html shutil copyfile在 Linux 上 在复制过程中
  • 在具有可变参数的函数中使用默认参数。这可能吗?

    我有以下代码 在这里 我想利用赋予 a 的可选参数 即 5 而不是 1 如何使元组 数字 包含的第一个元素为 1 而不是 2 def fun varargs a 5 numbers dict print Value of a is a fo
  • 有什么理由不引用变量吗?

    有没有valid为什么不将 shell 脚本中的所有变量放在引号中 我认为 不知道更好 并不是一个有效的理由 一般来说 引用变量可以确保它们被视为一个变量 如果它们包含空格或其他特殊字符 那么为什么有人会选择 不安全 的方式而不引用变量呢
  • 开玩笑:为什么它会失败并出现 TypeError: Path Must be a string。收到未定义

    我编写了一个 React 应用程序并使用 jest 编写单元测试 当我通过 jest config jest config json watch 运行它时 出现以下错误 测试套件运行失败 TypeError Path must be a s
  • 如何检索具有一个值的所有对象数组?

    这个问题是来自的后续问题this https stackoverflow com questions 17112360 php multi dimension array 17112404 noredirect 1 comment24760
  • Laravel 5.5 权限 - 用户没有正确的角色

    我试图在管理员用户没有分配的角色的用例中找到解决方案 在仪表板视图中 它不会为用户呈现 url 而如果我直接访问仪表板 用户 我会得到 Spatie Permission Exceptions UnauthorizedException u