通过自定义防护程序登录时,Bouncer无法获得这些功能

我正在使用JosephSilber/bouncer Laravel软件包

以超级管理员身份登录时,他具有所有功能“ *” 然后我跑

xattr -d com.apple.quarantine

在全局级别(创建此用户的位置),我得到了:

通过自定义防护程序登录时,Bouncer无法获得这些功能

并且在租户级别,当我使用同一用户登录时,我运行相同的命令: 我得到一个空集合

通过自定义防护程序登录时,Bouncer无法获得这些功能

好像没有在正确的数据库表中查找

更有趣的是,当我对角色执行相同的操作时=> dump(Auth::user()->getabilities()) 它可以正确地在全局和租户这两个级别上获得角色

也许有人对保镖有更多的经验?为什么这样做不像使用角色那样工作?


更新:

我终于在我的应用中找到了引起此问题的原因和原因。因为我有一个多租户应用程序,并且我的用户保存在不同的数据库中,所以Bouncer在当前数据库上查找功能,但是这些功能存储在经过身份验证的用户数据库上,因此什么也找不到...

我只需要覆盖此方法:

Auth::user()->getRoles()

Silber\Bouncer\Database\Queries\Abilities.php

但是我不知道如何或在哪里编写代码。

这是我需要放在此处的行

public static function forauthority(Model $authority,$allowed = true) { return Models::ability()->where(function ($query) use ($authority,$allowed) { $query->whereExists(static::getRoleConstraint($authority,$allowed)); $query->orWhereExists(static::getauthorityConstraint($authority,$allowed)); $query->orWhereExists(static::getEveryoneConstraint($allowed)); }); }

shuangpingye 回答:通过自定义防护程序登录时,Bouncer无法获得这些功能

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3144040.html

大家都在问