タスクによる権限
concrete5.4でタスクによる権限が実装されました。これらの権限は通常のコンテンツ(コンテンツの特定のインスタンスやタイプ)による権限とは対照的に、特定のタスクに対する権限を設定できます。これらのタスク権限は管理画面からアクセスできます。開発者は独自のタスク権限をインストールすることができ、またパッケージを通してインストールすることもできます。
タスクによる権限の例
- 誰がページのデフォルトを編集できるか
- 誰がユーザーとしてログインが使えるか
- 誰がパッケージのアンインストールを行なえるか
ログインしているユーザーによってタスク権限を確認する
$tp = TaskPermission::getByHandle('page_defaults'); if ($tp->can()) { print 'yes'; }
マジックメソッドの使用
"canAccess"のあとにタスク権限のハンドルをキャメルケースに変換したものを追加したメソッドを使用できます。
$tp = new TaskPermission(); if ($tp->canAcessPageDefaults()) { print 'yes'; }
他のユーザー、またはグループによってタスク権限を確認する
シンプルに can() メソッドにGroupまたはUserInfoオブジェクトを渡してください。
$ui = UserInfo::getByUserName('johndoe'); $tp = TaskPermission::getByHandle('page_defaults'); if ($tp->can($ui)) { print 'johndoe can access'; }
メソッド
$tp = TaskPermission::getByID($tpID)
$tpIDによって取得したTaskPermissionオブジェクトを返します。
$tp = TaskPermission::getByHandle($tpHandle)
ハンドルによって取得したTaskPermissionオブジェクトを返します。
$tp->getTaskPermissionID()
タスク権限オブジェクトのIDを取得します。
$tp->getTaskPermissionName()
タスク権限オブジェクトの名前を取得します。
$tp->getTaskPermissionHandle()
タスク権限オブジェクトのハンドルを取得します。
$tp->getTaskPermissionDescription()
タスク権限オブジェクトの説明を取得します。
$tp->getPackageID()
タスク権限オブジェクトのパッケージIDを返します。
$tp->getPackageHandle()
タスク権限オブジェクトのパッケージハンドルを返します。
$tp->delete()
タスク権限を削除します。
$tp->clearPermissions()
タスクに関連する全ての権限設定を削除します。
$tp->addAccess($obj)
UserInfoまたはGroupオブジェクトを渡します。渡されたオブジェクトに対するアクセス権を追加します。
$tp->removeAccess($obj)
UserInfoまたはGroupオブジェクトを渡します。渡されたオブジェクトに対するアクセス権を剥奪します。
$tp->can($obj = false)
タスクにアクセス可能かどうかをチェックします。$obj に false が渡された場合は、現在ログイン中のユーザーがチェックされます。