【发布时间】:2017-07-23 06:07:54
【问题描述】:
我正在使用基于 Laravel 的 OctoberCMS。
我有一个后端用户,Matt 在群组中owners,administrators。
如何检查用户是否属于特定组以允许身份验证?
有人告诉我需要传递一个组对象,但我不知道那是什么。
use Auth;
use BackendAuth;
use Backend\Models\User;
if (BackendAuth::check()) {
// get current backend user
$backend_user = BackendAuth::getUser();
// get current backend user's groups
$backend_user_groups = Backend::getUser()->groups;
// authenticate
if ($backend_user->inGroup('administrators') {
}
}
错误
public function inGroup($group)
Call to a member function getKey() on string
我尝试过的另一种方法
if (User::inGroup('administrators') {
}
错误
Non-static method October\Rain\Auth\Models\User::inGroup() should not be called statically
文档
https://octobercms.com/docs/backend/users
https://github.com/octobercms/library/blob/master/src/Auth/Models/User.php
【问题讨论】:
-
您是否有理由检查组而不是权限?
-
@dragontree 在OctoberCMS 中,我创建了拥有一组权限的后端用户组。我将用户添加到管理员或版主,然后在 php 中检查当前用户的组以允许访问某个功能。我应该换一种方式吗?
-
您应该为此使用
hasAccess或hasPermission()函数。它记录在这里:octobercms.com/docs/backend/users#features -
我在我制作的一个自定义组件上使用了认证组,我不确定我是否知道如何为该组件设置权限。
-
registerPermissions()函数示例在文档的同一页上给出。像这样注册权限后,它们将显示在后端组页面中,您可以在其中添加或删除组或用户。
标签: php laravel laravel-5 octobercms