Authorization
in package
フォーム機能の認可判定を集約する。
ロール運用時は form_view / form_edit ロール、未使用時はコンフィグ設定 form_admin_authority に応じた編集者権限・管理者権限で判定する。 各ハンドラ(ACMS_POST_Form_* / ACMS_GET_Admin_Form_*)から共通利用する。
判定対象のユーザーは引数で受け取り、テスト時に任意のユーザーを差し込めるようにする。 ロール運用時はロールガードを直接利用し(Auth ファサードはガード選択がセッション ユーザー(SUID)基準になるため)、引数で受け取ったユーザーを基準に評価する。 ロール未使用時は sessionWithFormAdministration / sessionWithAdministration の 第3引数 userId に引数のユーザーを渡して評価する(cache は無効化し、判定対象 ユーザーが呼び出しごとに変わることを反映する)。sessionWith* 側が isPermissionOfEditor・isPermissionOfAdministrator・timemachineMode の判定を まとめて持つため、ここで同じ判定ロジックを再実装せずに済み、将来 sessionWith* 側にガードが追加された場合も自動的に追従できる (Authorization と同じ設計方針)。
Table of Contents
Methods
- canDeleteLog() : bool
- フォームの投稿ログ削除が許可されているか
- canEdit() : bool
- フォームの編集・作成・削除・複製・インポートが許可されているか
- canView() : bool
- フォームの閲覧・エクスポートが許可されているか
- canViewLog() : bool
- フォームの投稿ログ閲覧が許可されているか
- roleGuard() : Guard
- ロールベースの権限判定ガードを取得する。
Methods
canDeleteLog()
フォームの投稿ログ削除が許可されているか
public
canDeleteLog(int $userId, int $blogId) : bool
編集系(canEdit)と異なり、ロール未使用時はフォーム管理権限ではなく ブログ管理者権限(sessionWithAdministration)を要求する。
Parameters
- $userId : int
-
判定対象のユーザーID(通常はログイン中のユーザー SUID)
- $blogId : int
-
対象ブログID
Return values
boolcanEdit()
フォームの編集・作成・削除・複製・インポートが許可されているか
public
canEdit(int $userId, int $blogId) : bool
Parameters
- $userId : int
-
判定対象のユーザーID(通常はログイン中のユーザー SUID)
- $blogId : int
-
対象ブログID
Return values
boolcanView()
フォームの閲覧・エクスポートが許可されているか
public
canView(int $userId, int $blogId) : bool
Parameters
- $userId : int
-
判定対象のユーザーID(通常はログイン中のユーザー SUID)
- $blogId : int
-
対象ブログID
Return values
boolcanViewLog()
フォームの投稿ログ閲覧が許可されているか
public
canViewLog(int $userId, int $blogId) : bool
閲覧系(canView)と異なり、ロール運用時は form_view 権限のみで判定する (form_edit だけのユーザーにはログを開放しない)。
Parameters
- $userId : int
-
判定対象のユーザーID(通常はログイン中のユーザー SUID)
- $blogId : int
-
対象ブログID
Return values
boolroleGuard()
ロールベースの権限判定ガードを取得する。
private
roleGuard() : Guard
Auth ファサードはガード選択をセッションユーザー(SUID)基準で行うため、 引数で受け取ったユーザーを基準に判定するにはロールガードを直接利用する。 roleAvailableUser() が真のユーザーに対してのみ呼ばれるため、本番では Auth ファサード経由(ロールユーザーは同じくロールガードに振られる)と同一の結果になる。