问题标签 [entrust]
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.
php - 在 store() 方法中的 laravel 控制器中使用策略的 this->authorize() 检查
因此,我正在阅读有关使用 laravel 策略授予对我的应用程序资源的权限的信息,但是尽管我遵循了教程,但那里似乎存在问题。
我有一个无法通过 HTTP 请求创建的用户模型,除非其他用户具有“管理员”或“经纪人”的委托角色。我理解并成功使其适用于索引用户等其他操作的内容如下:
在AuthServiceProvider.php
私有数组内部,我用这样的类$policies
注册了那个 User 类UserPolicy
定义 UserPolicy 控制器类:
然后在UserController
课堂内,在执行关键操作之前,我this->authorize()
根据用户的权限使用检查来停止或继续
问题是$this->authorize()
总是在商店操作返回异常时停止进程:此操作是未经授权的。
我为 authorize() 的参数尝试了多种变体,但无法让它像索引操作一样工作
laravel - Laravel Auth::attempt() 可以处理关系吗?
我在 Laravel 5.3 中使用委托来管理基于角色的权限,并且自然地为不同的用户类型使用手动/自定义登录。是否可以Auth::attempt()
处理外部表关系?基本上,我想做这样的事情:
但我不断收到hasRole()
未定义函数的错误。我已经包含了use Zizaco\Entrust\Traits\EntrustUserTrait;
and use EntrustUserTrait;
,我认为它可以让我访问该功能,但显然不是。
我很欣赏这hasRole()
是一种用户对象的方法这一事实,并且在检查时我没有用户对象但在尝试成功后我无法进行角色检查,因为那时用户已经登录,并且如果角色错误,我需要将他们注销,因为他们的凭据是正确的,但不适用于角色;这似乎很慢而且不务实。
我应该如何处理这个?是否有替代方法Auth::attempt
可以使用,它不会登录用户,但使用指定的输入检查用户是否存在,然后运行角色检查,然后使用另一个函数启动经过身份验证的会话?
如果有用,我的 LoginController 在这里:
任何帮助或方向将不胜感激。谢谢。
php - laravel 类 memcached 未找到
首先,我查看了所有这些:
它们都不是我的情况,也没有真正的解决方案。
问题是我正在通过 laravel 5.3.18 开发一个网站,这是在我的服务器上运行的 PHP 信息:
如果您需要查看,这里还有我的服务器操作系统信息:
我需要将 CACHE_DRIVER 更改为 memcached 才能使用这个包(根据他们在 GitHub 问题中关于修复发现的错误的说法)。
这是我所有问题的开始。
我的服务器上安装了这些 memcahed 软件包(由 dpkg --list 列出):
我看到每个人都在谈论安装 php5-memcached 但令人震惊的是,当我尝试安装 php5-memcached 时,我得到了这个:
跑完之后 sudo apt-get update
!
我什至在输入后得到这个sudo service memcached status
:
在所有这些之后,当我将 CACHE_DRIVER 更改为 memcached 时,它一直显示此错误:
虽然我仍在为此苦苦挣扎,但对这些家伙有什么想法吗?我将不胜感激!
php - phpunit ErrorException:试图获取非对象的属性(Laravel/Entrust 项目)
当我在基于 Laravel 的项目上运行 phpunit 时,出现错误:ErrorException: Trying to get property of non-object
但仅在 phpunit 上,页面呈现良好。
这是我的刀片模板中导致错误的代码行:
当我用以下(丑陋的)代码替换它时,phpunit 测试运行正常:
角色急切地加载到控制器中:
知道为什么 phpunit 会抛出这个错误(而 laravel 不会)以及如何以更好的方式解决这个问题?
来自 phpunit 的堆栈跟踪:https ://paste.ee/p/dyMVs#
php - entrust delete() 错误类名必须是有效的对象或字符串
我使用以下代码从角色表中删除一条记录:
但是,发生错误,消息是:
类名必须是有效的对象或字符串
我用谷歌搜索它!,对于一些答案,我不得不说 config/entrust.php 文件存在。
redirect - 带有 Entrust 的 Laravel 5.3 - 始终重定向到主页,但身份验证页面除外
我试图解决这个问题大约需要 13 个小时,但没有运气。我已经用Entrust设置了 Laravel 5.3 。它工作正常。我在控制器中设置了一个条件来检查用户是否有权访问他/她试图访问的页面。如果不是,那么只需重定向到主页。它也运行良好,但经过一些刷新和浏览后,它出现了一个奇怪的故障——一切都将进入主页(例如http://mysite.dev/)。只有身份验证页面是可以的(登录/注册等)。
所以为了确认,我已经从那个控制器中删除了授权检查,但没有运气。然后删除了中间件“auth”,但仍然是相同的重定向。太奇怪了:(下面给出了一些代码-
路线/web.php
应用程序/Http/Controllers/Controller.php
应用程序/Http/Controllers/HomeController.php
我对 Laravel 很陌生,这是我的第一个项目,所以学习和做,但在这里我只是卡住了......
php - Laravel 5.3 Entrust - 类名必须是有效的对象或字符串
我目前正在delete
为我的角色开发一个功能。
每次我尝试删除时:
我该如何解决?
laravel - Laravel - 为 Zizaco Entrust 添加访问器
我正在使用 Laravel 和 Zizaco Entrust 包。我的表 role_user 有两列,role_id 和 user_id。现在我要添加第三列,比如 company_id,这样同一个用户可以在不同的公司担任不同的角色。
在 RoleUser 模型中,我添加了一个访问器,例如:
因此,在访问器中,我可以检索正确的 role_id,而无需修改包的源。这是正确的方法吗?像这样的访问器不起作用,即使我返回一个随机数,我也总是得到 db 值。
你能帮助我吗?谢谢!
php - 播种时未找到 Laravel 委托 5.2.x 类权限
如上面的标题,我按照教程在 laravel 5.2 中创建 ACL 模式,当我为 PermissionTableSeeder 播种类时,该错误命中为附件。
好吧,我希望有人可以在这个问题上帮助我。
这是错误:
laravel - Laravel DataTables 查询和委托
我正在将 Laravel 5.3 与 Laravel Datatables 和 Entrust 一起使用
在我的索引操作中,我显示数据表中的记录列表。现在我需要将委托融入其中。如果用户是管理员,他们可以看到所有潜在客户。但是,如果用户是普通用户,则只能看到属于他们的记录。
我不知道如何处理这个问题,我是把这个查询放在 if 语句中检查角色还是有更好的方法?