【发布时间】:2021-03-24 05:28:10
【问题描述】:
问题: 尝试在后端获取当前经过身份验证的用户(具有一定权限的管理员),OctoberCMS 平台。 我通过自定义插件(在 boot() 方法中)扩展了一个插件,并且当用户无权访问它时,我想从菜单中删除一个 sideMenuItem . (我成功地做到了——用户无法访问该项目(拒绝访问)——但我想从 sideMenu 中删除该项目。
以下代码在 MyPlugin 中,我想扩展 OtherAuthor 插件。
public function boot()
{
/** Extends plugin */
$this->otherAuthorPluginExtend();
}
public function registerPermissions()
{
return [
/** Permissions for accessing sidemenuItems from OtherAuthor plugin */
'author.plugin.plugin_access' => [
'roles' => ['Developer'],
],
];
}
public function otherAuthorPluginExtend(){
//>>>THIS NOT WORK
$user = \Backend\Facades\BackendAuth::getUser();
var_dump($user);
/*this hide sideMenu item based on permission level*/
if(array_key_exists('author.plugin.plugin_access', $user->permissions)) {
//>>>THIS WORKS FINE, but for all backend users
Event::listen('backend.menu.extendItems', function ($manager) {
$manager->removeSideMenuItem('OtherAuthor.Plugin', 'Plugin', 'sideMenuItem');
});
}
//>>>THIS WORKS FINE
/*this restrict access to that page from sideMenu*/
\OtherAuthor\Plugin\Controllers\SideMenuItemController::extend(function ($controller){
$controller->requiredPermissions = ['author.plugin.plugin_access'];
});
}
为什么 $user 得到 NULL? 有其他访问方式吗?
提前谢谢你!
【问题讨论】:
标签: octobercms