问题标签 [laravel-permission]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
638 浏览

php - Laravel - spatie 权限删除 phpunit 中的权限问题

我在使用 spatie/laravel 权限包时遇到了一些问题。

问题在于我的一项测试未能通过测试直接删除权限。使用邮递员的相同方法按预期工作。

我得到的错误是:

SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect DOUBLE value: 'a259dc99655f' (SQL: delete from `user_permissions` where `model_id` = 49 and `model_type` = Spatie\Permission\Models\Permission)

这是一个已知问题还是我错过了什么。

0 投票
0 回答
1809 浏览

laravel - Laravel spatie权限检查模型内的用户角色

我在我的项目作曲家包中使用 laravel spatie/laravel-permission。如何使用hasRole()方法检查用户角色是否包含内部模型?

例子

这在模型内部不起作用

当我在模型之外尝试这个案例时,所有工作:

0 投票
1 回答
554 浏览

laravel - Laravel Spatie 权限 多模型权限

我知道如何为用户分配权限。

在这种情况下,model_has_permissions 表将像这样插入。

我有团队模型,我也想授予团队权限。这就是我所做的。

我想要这个结果,

但这对我不起作用。有没有人有以上经验?我应该为它再做一张桌子吗?喜欢team_has_permission

0 投票
1 回答
6071 浏览

laravel - Laravel Spatie 通过 Eager Loading 获取所有权限

大家!我正在使用 Laravel Spatie 权限包。我可以像这样获得用户的所有分配权限。

但是,我想通过急切加载获得所有权限。也许像这样。

但这没有用。

我试过了

但查询计数与结果相同

那么$user->getAllPermissions()已经是急切加载的查询了吗?

或者是否有任何急切加载的查询?

0 投票
1 回答
324 浏览

laravel - Laravel 7 UI - Sessions Guard 驱动程序 - Spatie 权限包

简而言之:会话保护驱动程序拒绝我的登录尝试。

在创建 Laravel UI 之前,我已经使用 JWT 作为 api 保护驱动程序为我的前端创建了一个身份验证系统。

我安装了 Laravel UI 以使用 Spatie 权限包,该包也已安装并生成了一些额外的表。

安装 Laravel UI 后,我成功注册了一个新用户,但没有重定向到主屏幕。我尝试以新用户身份登录,但收到回复说我的凭据未被识别。然后,我尝试使用先前通过前端注册在用户表中创建的用户登录...

虽然这次它没有给出错误,但它仍然没有重定向我。然后我尝试使用新创建的用户登录前端应用程序并且能够这样做。在这一点上,我认为令牌存在冲突。

我查看了 RegisterController.php 并看到以下内容:

我的前端 JWT 身份验证系统也使用了 User.php,所以我看了一下,发现密码被加密了两次。首先使用 Hash::,然后使用 bcrypt。因此,我删除了哈希加密。

我注册成功,但再次没有被重定向到家。我尝试再次登录,但再次无法登录,但这次我没有收到错误消息!注册用户现在的行为方式与通过前端应用程序注册的用户相同。

我逐行浏览了代码,花费了数小时注销值等,并且可以看到所有内容都被接受并且我重定向到家,但是 HomeController.php 然后将我的凭据传递给当时拒绝的身份验证守卫然后将我重定向回登录!

我可以访问主页的唯一方法是将 HomeController.php 中的中间件从“auth”更改为“guest”:

在 Spatie 文档中,它说明了以下内容:

如果你的应用只使用了一个守卫,但不是 web 的(Laravel 的默认设置,它在 auth 配置文件中显示“first”),然后更改 config/auth.php 中列出的守卫的顺序,将你的主要守卫列为默认并作为已定义警卫列表中的第一个。在您编辑该文件时,最好也删除任何您不使用的防护措施。

因此,我在 config/auth.php 中切换了守卫,以便首先使用 api 但它没有效果。

前端使用 api 保护,后端使用 web,但它们都使用相同的应用程序/用户。我想这一定是问题的原因,但我是 Laravel 的新手,经过数小时的阅读和测试,我仍在苦苦挣扎。它想要我错过什么!?密码现在被接受了,所以不能这样..

任何帮助将不胜感激。谢谢你。

0 投票
1 回答
1230 浏览

laravel - 在 laravel 中为每个 crud 操作定义权限的位置

我用Laravel 6设计了一个商店,并使用laravel-permission 3进行用户管理。我想通过明确的权限来限制每个 crud 操作(例如添加产品、删除产品)。Spatie中有一个关于使用通配符权限的简短描述,但我不确定。我不知道定义这些限制的最佳位置在哪里

这是一个用于创建和编辑产品及其中间件的路由示例(受权限限制)。

0 投票
1 回答
1481 浏览

php - 无法使用 Laravel Backpack 权限访问角色和权限的路由

我正在尝试使用 Laravel Backpack Permission Manager ( https://github.com/Laravel-Backpack/PermissionManager ) 实现 Laravel Backpack Permission UI 和路由。

我们添加了 Roles 和 Permission 路由使用

但是,每当我们导航到这些路线之一时,它只会引发 404 错误。

根据文档,我们在 config/backpack/base.php 文件中有以下设置。

在我们的 config/auth.php 设置中,我们只设置了一个守卫,我们所有创建的角色和权限都设置为使用“网络”守卫。

这是我的 config/backpack/permissionmanager.php 文件。**请注意,我们有意设置用户类,以便我们可以使用我们自己的模型,而不是 CRUD 的背包模式。

];

这是我们的作曲家文件。

}

我已经运行了所有供应商发布命令。如果没有 404,仍然无法导航到 /admin/role 或 /admin/permission 路由。

0 投票
1 回答
2339 浏览

php - Laravel Spatie 权限 - 未找到基表或视图:1146 表“my_database.models”不存在

使用 spatie 权限并尝试使用以下方式分配角色时出现错误:

错误如下:

值“模型”在哪里设置?,该表不存在,但是,我在哪里设置值?,我似乎找不到它,我已经在里面检查了config/permission.php

我的permission文件如下:

如您所见,我的数据透视表已设置为:users_has_permissionsusers_has_roles

0 投票
1 回答
1715 浏览

laravel - Laravel Spatie 403 用户未登录

我在本教程之后使用多重身份验证:https ://github.com/sujalpatel2209/LaravelMultiUserAuthentication 我正在尝试按照本教程实现 spatie:https ://www.itsolutionstuff.com/post/laravel-58-user-roles -and-permissions-tutorialexample.html 但问题是,我无法访问“角色管理”页面。它说 403 用户未登录。我也在尝试遵循此说明,但仍然卡住 https://docs.spatie.be/laravel-permission/v3/basic-usage/multiple-guards/

你能解决这个问题吗?

行政

网页.php

CreateAdminUserSeeder.php

验证码

角色控制器.php

0 投票
1 回答
38 浏览

laravel - 在 Laravel 中使用 API 后端的安全 Web 应用程序

我创建了一个 Web 应用程序,它使用内置的 Web 身份验证方法,一旦用户通过身份验证,他/她就会看到仪表板页面。此时,需要对 API 进行 Ajax 调用以获取登录用户的数据。使它安全的正确方法是什么?

作为下一步,我也希望能够“独立”使用 API,以便第 3 方也可以通过 API 访问数据集。

现在我正在研究 Laravel Passport 以及 Spatie Permission 包来帮助我进行访问控制。