コンテンツにスキップ

アクセスコントロールリスト (ACL)

Omeka Sは、権限管理のためにアクセスコントロールリストを使用します。

ユーザーロール

以下の六つの明確なユーザーロールがあり、基本的には前のものよりも大きなアクセス権を持っています:

  • 研究者: researcher
  • 作成者: author
  • レビュアー: reviewer
  • 編集者: editor
  • サイト管理者: site_admin
  • グローバル管理者: global_admin

パーミッションの確認

パーミッション確認を行う方法は三つあります。

ACLサービス

ACLサービスが利用可能な場所では、userIsAllowed(), isAdmin(), そして isAllowed() の三つのメソッドがあります。詳細はサービスとファクトリーをご覧ください。

userIsAllowed($resource, $privilege)は、現在のユーザーがリソースと権限にアクセスできるかどうかをチェックします。

isAllowed($user, $resource, $privilege)は、任意のユーザーの同じアクセスをチェックするのに使えます。

isAdminRole($role)は、ユーザーロールが管理権限を持つもの(すなわち、site_admin または global_admin)の中にあるかどうかをチェックします。 php // ACLサービスを取得: $acl = $this->getServiceLocator()->get('Omeka\Acl'); if ($acl->userIsAllowed($resource, $privilege)) { // 現在のユーザーには許可されています }

if ($acl->isAllowed($user, $resource, $privilege)) { // 指定されたユーザーには許可されています }

$role = $user->getRole(); if ($acl->isAdminRole($role) { // 管理者アクセスを許可する }

リソース表現の内部から

リソース表現を扱っている場合、userIsAllowed() を使ってそれに対する権限をチェックします。 php // APIマネージャーを通じてリソース表現を取得: $api = $this->getServiceLocator()->get('Omeka\ApiManager'); $item = $api->read('items', 1)->getContent(); if ($item->userIsAllowed($privilege)) { // 現在のユーザーには許可されています }

ビューまたはコントローラーの内部から

ビューまたはコントローラーの内部からは、userIsAllowed() ヘルパーが利用可能です: php // ビュースクリプトの中で: if ($this->userIsAllowed($resource, $privilege)) { // 現在のユーザーには許可されています }