当前位置: 首页 > 知识库问答 >
问题:

如何在laravel中动态使用角色和权限

尉迟子民
2023-03-14

我有表:

用户、角色

数据透视表:

角色\u用户

模型:

用户、角色和权限。

现在我想实现的是,假设admin在控制面板中添加了新权限。那么,糟糕的是,作为一名开发人员,我必须站起来,打开代码,手动将这个新添加的权限放在一些路由的中间软件中。每次管理员授予新权限时,我都必须手动添加代码。

是否有任何方法可以动态执行所有这些操作,以便在管理员添加新权限后,我不会更改任何内容,也不会添加代码,并且新权限会自动开始工作?

我认为这是不可能的。所以我的问题是:为什么我必须让管理员从控制面板添加角色和权限?我想我应该是这个许可和角色的种子。

共有1个答案

欧阳昊阳
2023-03-14

这是可能的,但是您需要另一个包含每个页面所需权限的表。当您拥有此功能时,您可以创建一个全局中间件来检查用户是否可以基于附加到当前页面的权限访问该页面。

现在您可以让管理员将权限附加到页面并将权限附加到用户,并且在创建新权限时无需更改代码。

 类似资料:
  • Spring security-如何动态添加角色,取决于角色,url访问权限必须更改,创建角色时我们必须动态设置url权限 例如:对于管理员,他可以访问所有url,而当我创建另一个角色(如支持)时,我可以设置他可以动态访问的url

  • 问题内容: 我在Struts 2 + Spring IOC项目中使用Spring Security 3。 我在项目中使用了自定义过滤器,身份验证提供程序等。 您可以在这里看到我的 到目前为止,您可以看到,我提到的url-pattern是硬编码的。我想知道是否有一种方法可以动态创建新的ROLES和PERMISSIONS,而不是硬编码。 就像创建新角色和权限并将其保存到数据库,然后从数据库访问一样。我

  • 以下是权限、角色和permission\u角色的表结构 权限: id名称 id名称 permission\u角色: role\u id,permission\u id 这里permission_role是我的数据透视表。 在我的前端,我设置了这样的东西, welcome.blade.php 在我的控制器中。php 角色php 我无法将数据保存到数据透视表中。 我在php artisan tinke

  • 问题内容: 在将旧版应用程序迁移到Spring Security时,出现以下异常: 在旧的应用程序中,角色有“超级管理员”,“编辑者”,“帮助台”等。但是在所有Spring Security示例中,我仅看到诸如“ ROLE _”(“ ROLE_ADMIN”等)的角色。当我将“ superadmin”重命名为“ ROLE_ADMIN”并且仅在配置中使用此角色时,一切正常。 不起作用: 作品: 可以使

  • 我目前的理解是Spring没有区分角色和权威,唯一的区别是角色名称的缩写。 我希望实现的是具有权威的角色。另外,如果我给一个用户ADMIN这个角色,他就会获得所有相关的特权(举个例子,我们可以访问网站上的路由以更新页面) 我当前的实现如下:我有一个自定义特权类,它与Roles类有多对多的关系,而Roles类与用户的类有多对多的关系。当,它迭代所有权限并获取。 我的问题是:有没有更好的方法(最好是s

  • 在我的第一个nodejs应用程序中实现授权时,我遇到了一个问题,该应用程序使用expressjs、sequelize和jsonwebtoken进行身份验证。在内部,我想禁止/允许不同用户的路由,我不想使用另一个包,如oauth2或为我处理授权的东西。 目前,我已经创建了一个jsonwebtoken,它的有效负载中包含权限角色: 否我想在“GET/user”这样的调用中检查是否允许经过身份验证的用户