问题标签 [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 回答
606 浏览

php - 根据用户权限隐藏模型字段

假设user_one 具有查看权限purchase_price,而user_two没有此权限。

我想purchase_price根据用户权限动态隐藏。

我做了什么

我已经使用spatie package管理了权限。

我尝试过和搜索过的东西

  • 我发现我可以使用boot()模型本身的功能来隐藏某些字段,但我不知道如何或者它是最好的解决方案,它也是一个static function.

  • 我可以scope处理 API 响应使用的内容if statementsselect()但我认为这也不是一个好的解决方案。

  • 我也可以使用Laravel resources.

0 投票
0 回答
1462 浏览

laravel - 基于 Laravel/Spatie 权限的访问控制器资源

我正在研究 Laravel 护照 API,其中我使用 spatie 包来获取用户角色和权限。我必须根据用户权限执行某些操作('store'、'view'、'update'、'delete')。为此,我创建了一个特征并在控制器中使用,但它无法正常工作。在每个 api 请求上,无论用户是否有权限,它都会抛出一个异常“此操作未经授权”。

授权特征:

路线:

控制器:

我的堆栈很糟糕,不知道我哪里出错了。如果有人指导我完成此操作,我将不胜感激。谢谢,

0 投票
0 回答
220 浏览

laravel - Laravel 用户和多态性

目前使用 Laravel ( php artisan make:auth) 的标准用户身份验证,然后将其与spatie/laravel-permission.

我的问题如下,我有不同类型的用户

  • 学生
  • 助学金管理员
  • 助学金提供者
  • 超级管理员

我有上述的“空间”角色,可以将它们分配给不同的用户。保持当前用户表/系统完好无损,我将如何为用户分配“类型”。我应该继续设置一个“morphOne”类型关系(如此处所示)还是应该只设置一个定义类型的 tinyint 字段(0=SuperAdmin,1=Student 等)?

//edit 同样,我也需要存储它所属的父级。也就是说,一个助学金管理员可以有很多用户,一个助学金提供者可以有很多用户。我需要为用户存储 parent_id。所以这意味着我宁愿使用关系路由并添加一个“可用”表并存储:

  • userable_type = 模型类型(助学金管理员/提供者/学生)
  • userable_id = 父 ID

//编辑 2

所以现在我有以下改动:

创建了一个迁移来改变用户表:

并添加了必要的用户模型:

我的问题现在变成了;如下:

我可以通过以下方式获取助学金提供者用户列表:

让我们假设一个助学金提供者用户已登录并且他们创建了一个新用户;如何获取当前登录用户的助学金提供者的 ID,以便创建的用户具有相同的助学金提供者?

IE:

0 投票
2 回答
3512 浏览

php - Laravel 背包权限播种“角色不存在”

我想问一下 Laravel BackPack 权限管理器中的播种问题,

我正在尝试默认的 Backpack Permission Manager 配置,并尝试使用虚拟数据对其进行播种。

这是我的角色和权限播种器方法:

这是我的用户播种方法:

这些播种机很好,但我意识到用户 CRUD 界面没有正确显示角色

用户角色显示为“-”,

角色显示为 -

在此处输入图像描述

当我检查数据库时,model_has_roles 将 App\User 显示为模型类型

应用\用户模型类型:

在此处输入图像描述

我确定 model_type 应该是 App\Models\BackpackUser ,所以我现在再次尝试使用 BackpackUser 类播种

现在我遇到了不同的问题,BackpackUser 没有任何角色,因为角色需要在“背包”守卫中才能分配给 BackpackUser

我有什么选择?为什么我不能使用默认配置正常播种?

请不要说我需要使用用户界面手动“播种”虚拟数据..

0 投票
1 回答
754 浏览

php - 如何从数据库填充选择选项 - Spatie 权限包 - Laravel

我正在关注这篇文章,为 Spatie/权限调出前端 UI。

文章

我能够理解每个部分,但我无法理解特定部分,

请导航到角色部分,(请搜索“ roles.edit ”,它将直接进入该部分)

在编辑视图中,作者正在使用代码,

我的理解是表单集合使用第三个参数作为检查字段。

当我运行传递给第三个字段的输出时

{{$role->权限 }}

我得到这种格式的结果

[{"id":1,"name":"Permission","guard_name":"web","created_at":"2019-08-04 05:53:14","updated_at":"2019-08- 04 05:53:14","pivot":{"role_id":9,"permission_id":1}},

我不确定 laravel 集体如何解析结果。

编辑控制器

这是我克服这个问题的方法,顺便说一句,我没有使用集体

我的编辑控制器

我的刀片文件

我确信这不是实现这一目标的正确方法。请让我知道如何在选择字段中填充权限。

注意:如果提出问题,请评论为什么。这样我就可以改进我的演示文稿。我很感激你的努力。谢谢

0 投票
1 回答
909 浏览

laravel-5.8 - Spatie Laravel 权限急切加载

第一次使用这个很棒的包,我正在尝试为用户急切地加载权限。

这将返回关系中的角色:

但这会返回一个空关系:

我如何渴望加载权限?我作为示例使用的用户是超级管理员,因此它应该包含所有权限的数组。

我错过了什么?谢谢

0 投票
1 回答
4111 浏览

php - 如何在 spatie 权限包中列出所有具有权限的角色?

我在我的 laravel 项目中使用 spatie 包来获取角色和权限,我需要在表格中列出所有角色及其权限,有什么办法吗?

0 投票
1 回答
3064 浏览

php - 自定义 Spatie Laravel-权限异常消息

我在 Laravel 5.8 API 应用程序中添加了Saptie Laravel 权限包。一切正常,当非管理员用户尝试访问管理员特定路由时,我会遇到异常。

但是,默认异常呈现为 HTML 403 User does not have the right roles。考虑到我在 API 应用程序中使用它,我想为此类异常返回我自己的自定义消息。

我尝试检查是否auth()->user()->hasRole('admin')仍然有相同的默认异常页面。这是我的代码

路线

控制器方法

为什么我的自定义消息没有显示?

0 投票
0 回答
516 浏览

laravel - 无法检查用户是否有权限

我正在使用 laravel spatie/permissions 包。使用该捆绑包时遇到了问题。我已经创建了多个角色,并使用该$role->givePermissionTo('view users')方法授予我的角色查看我的用户的权限。

现在,当我使用时,我@can('view users')看不到链接。

我是这样设计的:

当我检查用户是否拥有它说的权限时。怎么不显示链接?

0 投票
2 回答
173 浏览

laravel - 为什么我的模型在关系子查询中看不到 spatie 权限特征方法?

我在我的 laravel 项目中使用spatie/laravel-permissions composer 包。当我运行此查询时:

返回错误信息

调用未定义的方法 Illuminate\Database\Eloquent\Builder::hasRole()

我该如何解决我的问题?