我需要帮助注册一个插件的权限。我的插件是“事件”,模型是“事件”。
1如何在权限键中定义特征名。
acme.blog.access_categories //I don't know how to define this feature name我需要创建一个权限来阻止一些用户在后端的事件插件中创建事件。
我增加了新的许可,但什么也没做。我创建的权限
public function registerPermissions()
{
return [
'cng.tennis.access_events' => ['tab' => 'Events', 'label' => 'Create events']
];
}发布于 2019-02-26 07:24:54
1特征名
public function registerPermissions()
{
return [
'cng.tennis.access_events' => ['tab' => 'Events', 'label' => 'Create events'],
'cng.tennis.create_events' => [ ... ],
'cng.tennis.list_events' => [ ... ],
'cng.tennis.delete_events' => [ ... ],
];
}我想您已经在添加它了,'label' => 'Create events',您可以在那里定义多个权限,这样您就可以指定每个正确的名称。
以及您可以像一样使用的密钥
2如何使用权限 为了限制
whole event controller,您可以这样添加,现在您的整个控制器都在该权限范围内
<?php namespace Cng\Events\Controllers;
use Backend\Classes\BackendController;
class Events extends BackendController
{
public $requiredPermissions = ['cng.tennis.access_events'];
}要限制
some specific features,假设create event,您需要添加限制manually。对于每个用户,您可以按下面的方式添加它们
<?php namespace Cng\Events\Controllers;
use Backend\Classes\BackendController;
class Events extends BackendController
{
// other code ...
public function create($context = null) {
// checking permission manually
if (!$this->user->hasPermission(['cng.tennis.access_events'])) {
// if user do not have permission show access restricted
return \Response::make(\View::make('backend::access_denied'), 403);
}
$this->asExtension('FormController')->create($context);
}
// ...如有任何疑问,请评论。
https://stackoverflow.com/questions/54879002
复制相似问题