\PermissionComponent

Permission Component

リクエストされたController、もしくは、actionのアクセス許可を、
Currentオブジェクト の権限から判定します。
チェックタイプと許可アクションリストを指定してください。

チェックタイプ
許可アクションリスト

Summary

Methods
Properties
Constants
initialize()
startup()
checkSpaceAccess()
checkBlockAccess()
$type
$allow
$SpaceComponent
READABLE_PERMISSION
CHECK_TYPE_GENERAL_PLUGIN
CHECK_TYPE_CONTROL_PANEL
CHECK_TYPE_SYSTEM_PLUGIN
CHECK_TYPE_NOCHECK_PLUGIN
No protected methods found
No protected properties found
N/A
__allowAction()
No private properties found
N/A

Constants

READABLE_PERMISSION

READABLE_PERMISSION = 'content_readable' : string

コンテンツReadableの定数

CHECK_TYPE_GENERAL_PLUGIN

CHECK_TYPE_GENERAL_PLUGIN = 'general_plugin' : string

チェックタイプの定数

CHECK_TYPE_CONTROL_PANEL

CHECK_TYPE_CONTROL_PANEL = 'control_panel' : string

チェックタイプの定数

CHECK_TYPE_SYSTEM_PLUGIN

CHECK_TYPE_SYSTEM_PLUGIN = 'system_plugin' : string

チェックタイプの定数

CHECK_TYPE_NOCHECK_PLUGIN

CHECK_TYPE_NOCHECK_PLUGIN = 'no_check' : string

チェックタイプの定数

Properties

$type

$type : string

チェックタイプ

  • CHECK_TYEP_GENERAL_PLUGIN
    ページに配置するプラグインの場合に指定します。(デフォルト)
    許可アクションリストに指定された権限から判定します。

  • CHECK_TYEP_CONTROL_PANEL
    コントロールパネルを表示する際に指定します。
    コントロールパネルで動作するプラグインの有無で判定します。

  • CHECK_TYEP_SYSTEM_PLUGIN
    管理プラグインを表示・設定する際に指定します。
    ユーザーが使用できる管理プラグインか否かで判定します。

  • CHECK_TYEP_NOCHECK_PLUGIN
    チェックをスキップする。主にusersプラグインで使用する。

Type

string

$allow

$allow : array

許可アクションリスト

チェックタイプがCHECK_TYEP_GENERAL_PLUGINの場合に使用される判定リストです。
アクション名 => 権限名の形式で指定してください。
デフォルトでは、indexアクション、viewアクションを許可しています。

サンプルコード

Controller
public $components = array(
    'NetCommons.Permission' => array(
        'allow' => array(
            'add,edit,delete' => 'content_creatable',
            'reply' => 'content_comment_creatable',
            'approve' => 'content_comment_publishable',
        )
    )
)

アクション名に'*'を指定するとコントローラ内すべてのアクションが対象になります。

public $components = array(
    'NetCommons.Permission' => array(
        'allow' => array(
            '*' => 'content_creatable'
        )
    )
)

権限名にnullを指定するとアクセスが許可されます。

public $components = array(
    'NetCommons.Permission' => array(
        'allow' => array(
            'add,edit,delete' => 'null'
        )
    )
)

Type

array

$SpaceComponent

$SpaceComponent : string|object

SpaceComponent

Type

string|object

Methods

initialize()

initialize(\Controller  $controller) : void

Called before the Controller::beforeFilter().

Parameters

\Controller $controller

Instantiating controller

startup()

startup(\Controller  $controller) : void

Called after the Controller::beforeFilter() and before the controller action

Parameters

\Controller $controller

Controller with components to startup

Throws

\ForbiddenException

checkSpaceAccess()

checkSpaceAccess(\Controller  $controller) : boolean

スペースへのアクセスチェック

Parameters

\Controller $controller

Controller with components to startup

Returns

boolean

checkBlockAccess()

checkBlockAccess(\Controller  $controller) : boolean

ブロックへのアクセスチェック

Parameters

\Controller $controller

Controller with components to startup

Returns

boolean

__allowAction()

__allowAction(\Controller  $controller) : boolean

アクションの許可チェック

Parameters

\Controller $controller

Controller with components to startup

Returns

boolean