问题标签 [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 投票
0 回答
43 浏览

laravel - 如何在查询中删除 spatie/laravel-permissions 相关数据

我在我的项目中使用spatie/laravel-permissions包,并在查询时尝试删除roles关系数据:

但是当我运行这个查询时,roles关系数据不会被删除。如何从查询响应数据中删除它?

0 投票
1 回答
4547 浏览

laravel - spatie/laravel-permissions - Gate 和 hasPermissionTo 不起作用

我有一个问题spatie/laravel-permissions...

我使用GateinAuthServiceProvider.php来定义Superadmin(可以绕过所有权限而不将其注册到角色)...

它与can('the-permission')助手完美配合。

但它不适用于Auth::user()->hasPermissionTo('the-permission')...

.

.

下面是我的代码:

.

AuthServiceProvider.php

.

.

在刀片中:

.

.

在控制器中:

所以,正如我在上面向您展示的那样:

  • Gate用来定义超级管理员
  • 超级管理员应授予所有访问权限
  • 它与can()和完美配合$user->can()
  • 但它不适用于$user->hasPermissionTo()<--------- 这是我想知道的

谢谢

0 投票
1 回答
211 浏览

angular - Laravel - 如何确保登录用户只能访问他的公司数据

我正在使用 Angular-7 作为前端和 Laravel-5.8 开发客户端门户应用程序。我正在使用 Larave Spatie 进行用户管理。我有这三个表:

从上面的表格中,我有三个类:User、Company 和 Trip。

  1. 每个用户都属于一家公司,但不能超过一家。

  2. 每家公司都会进行几次旅行。

  3. company_id in company 也是主键。

在 ApiController 中,我使用 Laravel Spatie 使用户只能访问他们被授予权限的数据。这是完美的工作:

ApiController.php

现在,我想从上面的代码中实现以下目标:

  1. 登录用户应该只能查看他的公司开始的行程。

  2. 如果登录用户属于 company_id 为MBB的公司,他应该能够查看数据库中所有公司的所有行程,但他没有查看行程的权限。

如何修改我的代码来实现这一点?

0 投票
2 回答
1240 浏览

php - 扩展 Spatie 角色模型但使用不同的数据库表

我需要做的是扩展 Spatie 权限包角色模型的所有功能,但为派生模型使用不同的表。

现在我有一个模型 SubscriptionPackage ,我想模拟角色的行为,以便可以为其分配权限,进而可以将此模型分配给用户。但我也想保持角色模型完整。

我尝试扩展 Yes,但是当我创建一个新的 SubscriptionPackage 时,尽管在派生模型中指定了表,但新记录是在角色表而不是 subscription_packages 表中创建的。如下所示

使用上面的代码,当我创建一个新的 SubscriptionPackage 时,记录应该被插入到 subscription_packages 表中,但在这种情况下,它会进入角色表。任何有关如何解决此问题的指示都将受到高度赞赏。

0 投票
0 回答
926 浏览

php - 使用 Spatie Laravel 权限在 Nova 上分配用户角色

我目前在 laravel 5.8 项目中使用 spatie laravel 权限包,并使用 Nova 进行管理。

我希望超级管理员用户能够从 nova 仪表板为选定的用户分配角色。这就是我尝试通过使用新星动作来做到这一点的方式。我创建了一个GrantAdminRole动作并像这样在句柄方法中进行角色分配

然后在我的app\Nova\User动作方法中,我正在使用GrantAdminRole动作

现在,当我尝试分配角色时,我收到一条错误消息

对不起!您无权执行此操作

我怎样才能解决这个问题?我在想我需要一个政策,但不知道该政策应该是什么样子。

0 投票
1 回答
1459 浏览

php - Laravel Spatie 无法限制 UserController

目前我有 users.index 刀片,我想限制它。但是,我没有限制它。

我试图创建另一个测试刀片和一个 TestController 并且我已经设置了它的权限并且它工作正常。

但是对于 UserController,没有办法限制用户访问它:

意见/测试/index.blade.php

如果我不允许特定用户角色访问此页面,这些是结果。

在此处输入图像描述

在此处输入图像描述

所以以上是正确的行为。但是,当涉及到 user.index 时,我在 UserController 的构造函数中应用了相同的技术,但它不起作用

应用程序/Http/控制器/用户控制器

结果 [尽管没有查看此页面的权限,我仍然可以在前端查看此 Blade]

在此处输入图像描述

这是我的角色有权限表角色有权限

这是我的角色表 角色

这是我的权限表 权限

这是我的模型有角色表模型有角色

这是我的模型拥有权限表模型拥有权限

0 投票
1 回答
20 浏览

laravel-5 - 如何将 aceess 限制为 laravel 5 中 5 个角色常见的路由?

在 laravel 5 中声明了五个不同的角色。但是需要根据用户角色来限制通过 URL 的访问。

0 投票
3 回答
1257 浏览

laravel - 登录 Laravel 的 Spatie laravel/permissions 包后如何重定向到不同的仪表板

我是 Laravel 新手,我正在使用 Laravel 5.8 构建应用程序。我正在使用 spatie/laravel/permissions 包来处理应用程序的角色和权限。

一切正常,但我需要帮助将不同的用户在登录时重定向到不同的仪表板。

我有四种类型的用户,即 ADMIN、FACULTY、REGISTRAR 和 STUDENT。当他们登录到应用程序时,我希望每个人都被重定向到他们自己的仪表板。而不是拥有一个统一的仪表板。

请帮忙!

0 投票
1 回答
375 浏览

angular - Angular - 如何检查和取消选中所有用户角色

我目前正在开发一个以 Angular-7 作为前端,Laravel-5.8 作为后端的门户网站。另外,我使用 Laravel Spatie 进行用户角色管理。

用户.component.ts

user.component.html

目前,我使用

复选框添加(事件)

逐一选择用户角色权限。但我希望能够一次全选/取消全选,如下所示:

全选

我如何实现这一目标?

0 投票
0 回答
480 浏览

php - Spatie 用户权限 - 属于许多公司,解决方案反馈

我有一种情况,用户可以属于许多团队/公司,并且在该团队/公司中,他们可以根据他们登录的角色和权限具有不同的角色和权限。我想出了以下解决方案,并希望得到一些反馈!

注意:目前我只使用model_has_roles具有 Spatie 权限的表,并始终用于$user->can('Permission')检查权限。

  1. 我公司模型有以下关系和方法
  1. 我们修改枢轴模型以具有 SpatieHasRoles特征。这允许我们为 Auth 用户分配一个角色,CompanyUser而不是 Auth 用户。您还需要指定默认的守卫或 Spatie 权限。
  1. 在用户模型上,我创建了HasCompaniesTrait。这提供了关系并提供了一种将角色分配给新公司用户的方法。此外,它覆盖了门can()方法。

一个用户可以属于许多公司,但一次只能拥有一家活跃的公司(即他们正在查看的公司)。我们用current_company_id列来定义它。

确保数据透视表 ID 被拉过也很重要(这不是标准的),因为这是我们现在在 Spatie 中使用的model_has_roles table

现在我们可以这样做:

  1. 创建角色和权限
  1. 创建具有所有者用户的新公司,然后将该公司切换到该所有者的活动公司。

所以这一切都有效,我主要担心的是:

  1. 我们正在覆盖 can 方法。可能还有其他未捕获的授权方法/门功能。

  2. 我们有 2 组 model_permissions。Auth 用户和公司用户。我认为我需要进行一些检查以确保只能将正确类型的用户分配给角色。在这个阶段,所有管理员用户都将拥有分配给他们的 auth 用户的权限,而任何拥有公司的用户都应该只拥有公司用户模型的权限