问题标签 [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.
laravel - 当用户请求删除 laravel 中的多条记录时,如何检查每个结果的策略?
我bulk_destroy
在控制器中有一个方法,它接受用户想要删除的 id 数组。我必须检查每条记录的用户是该记录的所有者还是他具有删除该记录的特定角色。
最后,我必须返回所有被删除的记录 ID,以及用户没有特定角色的剩余记录 ID。有什么有效的方法可以根据角色删除记录。
我可以考虑的一种方法是获取记录,然后遍历每条记录,对于每条记录,我将检查登录用户是否是该记录的所有者,或者他是否具有特定角色. 如果他有,那么我将删除该记录。如下所示:
但在那种情况下,对于每条记录,它都会进行数据库查询以删除记录,我认为这不是正确的方法。
我能想到的其他解决方案是:
实际上我正在考虑以下解决方案:
但是如何约束forceDelete()
只删除特定的记录。有什么办法可以覆盖forceDelete()
方法吗?
或者非常感谢一些优雅的解决方案。
更新
我不能使用政策,因为如果我使用,
它返回true/false,那么我将如何只删除用户被授权的那些资源?因为在某些情况下$ids
可能包含授权和未授权的 ID。
php - 如何将 spatie/laravel-permission V1 升级到 V2
关于第二个版本的数据库结构和库是不同的。如何在不破坏任何东西的情况下进行更新?
php - 如何在 laravel 中为 spatie 包(ACL 管理)中的其他角色分配用户列表权限?
我在 Laravel 中使用Spatie包进行 ACL 管理,它运行良好,但我想问一个问题。如果我必须将用户列表权限分配给像 Manager 这样的任何角色,即使它有权限,也会产生错误。构造函数中的“ only ”属性和“ permission:role-list ”没有分配任何功能的目的是什么,是否有任何默认行为?
我是否应该假设我必须访问角色控制器的任何功能,而不是它必须在 Spatie 中具有角色列表权限。
如果我想错了,请指导我。
php - 如何扩展 Laravel 内置的身份验证以处理控制器构造函数中的授权?
我有一个使用内置基本 Laravel 身份验证的 Laravel 应用程序,但除了能够验证用户身份之外,我还需要能够执行诸如检查权限之类的操作,并为给定的控制器操作授权它们,以及执行诸如检查之类的操作用户所在站点的子域,并相应地允许他们访问或不允许访问。
为了获得授权,我遇到了 Spatie,并且能够对其进行设置并使其正常工作。好像没问题。但是,我不确定将它集成到我的控制器中的最佳方式。
如果可能的话,我想检查控制器构造函数中的 Spatie 权限并相应地阻止访问,而不是检查每个控制器操作中的授权。在 Laravel 中有没有好的方法来做到这一点?如何从控制器构造函数将用户指向未经授权的访问视图或将它们重定向到登录屏幕等?
同样,如果用户尝试执行对给定子域无效的操作,我如何阻止它们/从构造函数重定向它们?谢谢你。
laravel - 学生应该有一个类并通过方法获取它
我的项目有临时问题。我正在 Laravel 中创建一个学校管理系统。我还实现了“spatie/laravel-permission”。
我有一些角色:学生,老师,家长,校长等。
我有一些权限:添加成绩/编辑成绩/添加缺勤等。
一切正常,是的。但问题是每个学生都应该被分配到一个班级(我的意思是学校里的一个班级)。我如何编辑“spatie/laravel-permission”来实现我想要的:如果经过身份验证的用户是学生,他也应该有一个班级,然后输入如下内容:
得到这个类的所有用户?
我希望你明白我的意思,因为我的英语没有我想象的那么好。我会感谢每一个建议如何做到这一点。祝你今天过得愉快!
php - Laravel 5.6 - 用户角色和权限(ACL)使用 Spatie 教程
你能给我建议该怎么做。我正在关注本教程: Laravel 5.6 - 使用 Spatie 教程的用户角色和权限(ACL)
都好。但最后,我只能访问users
页面并且无法创建新用户,因为列表中没有角色。在页面中 -products
并roles
从处理程序给我一条消息:["User have not permission for this page access."]
我只有许可种子:
如果您希望从项目中获得更多代码,我可以为您提供更多代码。
laravel - 具有角色的 Laravel Nova 用户字段
我对 Nova 还很陌生,但是多年来一直使用 php 等。
在我正在构建的应用程序中,我设置了一个关系表,该表在 Nova 资源文件中具有以下字段:
我正在使用 Spatie 角色插件,并且希望能够使用 BelongsTo:make,其中角色等于“清洁工”。
有没有办法我可以做到这一点?如果需要更多详细信息,请告诉我。
谢谢你。
laravel-backpack - 无法使用基于角色的中间件限制对权限管理器路由的访问
PHP 7.3 Laravel 5.8 Laravel 背包 3.6
我正在尝试'role:admin'
在我的routes/backpack/permissionmanager.php
文件中使用中间件,将对 Backpack 的用户、角色和权限区域的访问限制为具有某些角色的用户子集。
我已确保我的用户帐户已被授予正确的角色。
我的'user'
模型config/backpack/permissionmanager.php
设置为,App\User::class
并且我的User
模型具有并使用文档中概述的必要特征。
我在role
我的应用程序中放置了一个中间件,如下所示:
然而,似乎这个中间件backpack_user()
虽然通过正确的属性返回知道我是谁->name
,但完全不知道我应该分配给自己的角色或权限。我已经使用该->getRoleNames()
方法进行了检查,它返回一个空集合。
在数据库中,model_has_roles
为我的用户帐户和我想要的角色在表中设置了正确的条目和 ID。
但是,导航到myapp.dev/admin/user
结果为403 Forbidden
.
我认为这可能是一个错误,或者我不能正确看到的东西......?
php - laravel spatie 权限中的 belongsToMany 错误?
我的代码在 1 年前可以工作,但现在我在更新作曲家时出现错误。我使用了来自 laravel-spatie 的 laravel 包。
“spatie/laravel-permission”:从1.16.1
更新到1.3.0
,
laravel 版本:laravel 5.2
控制器
laravel 权限包 - spatie/laravel-permission