首页 > 解决方案 > 注册权限十月 cms

问题描述

我需要有关注册插件权限的帮助。我的插件是“事件”,模型是“事件”

1 如何在权限键中定义功能名称。

acme.blog.access_categories //I don't know how to define this feature name

2 我需要创建一个权限以防止某些用户在我的后端事件插件中创建事件。

我添加了新权限,但它什么也没做。 我创建的权限

 public function registerPermissions()
{
    return [
        'cng.tennis.access_events' => ['tab' => 'Events', 'label' => 'Create events']
    ];
}

标签: octobercmsoctobercms-pluginsoctobercms-backend

解决方案


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);
    }

    // ...

如有任何疑问,请发表评论。


推荐阅读