「一般ユーザーには業務画面だけ見せる」「管理者にはマスタ管理画面を別 URL で提供する」というよくある構成。PageFrame を 2 つ用意して、サイドバーで切り替えるパターン。
- 一般ユーザー (alice 等): サイドバーの「認証・権限」グループに「マイプロフィール / 個人メモ / 自分宛タスク / 削除監査 / 管理画面へ」、「承認」グループに「経費精算 / 休暇申請 / 承認待ち / 承認状況」が表示
- 「管理画面へ」リンクをクリック → 管理画面 PageFrame (
AdminFrame) に遷移 - 管理画面のサイドバーは「ユーザー管理 / 削除監査 (管理) / 承認経路マスタ / メインへ戻る」
- 管理画面は
UserReadConditionで管理者のみ閲覧可 に絞ってある → 一般ユーザーが直接 URL を叩いても弾かれる
PageFrame の分割で実現するため、モジュール側というよりは PageFrame の構成パターン:
| PageFrame | サイドバー | 主なリンク |
|---|---|---|
Main |
一般ユーザー向け | マイプロフィール / 個人メモ / 自分宛タスク / 経費精算 / 休暇申請 / 承認待ち / 管理画面へ |
AdminFrame |
管理者向け (UserReadCondition で制限) | ユーザー管理 / 削除監査 (管理) / 承認経路マスタ / メインへ戻る |
AdminHome モジュール |
管理画面のホーム | UserReadCondition に「CurrentUser.IsAdmin == true」等を書いて、管理者だけアクセス可 |
PageFrames/Main.frm.json─ 一般ユーザー用 (デフォルト)PageFrames/AdminFrame.frm.json─ 管理者用 (色テーマ・配色を変えて視覚的にも区別すると親切)
Main.frm.jsonの Link「管理画面へ」:PageFrame: "AdminFrame"+Module: "AdminHome"を指定AdminFrame.frm.jsonの Link「メインへ戻る」:PageFrame: "Main"+Module: "Home"を指定
管理画面の入口モジュール (AdminHome) の UserReadCondition に FieldValueMatchCondition で「CurrentUser.IsAdmin == true」のような条件を書く。これで権限なしのユーザーは URL 直接アクセスしても画面が出ない。
サイドバーリンクの出し分けは Link の UserReadCondition でも制御可能。
- サイドバー
認証・権限/管理画面へ (admin 限定)→Main→AdminFrameへの切替リンク - 管理画面サイドバー
ユーザー管理/削除監査 (管理)/承認経路マスタ→AdminFrame配下のリンク - 一般用に戻る
メインへ戻る→AdminFrame→Mainへの切替リンク
- 一般ユーザーから管理画面のサイドバーリンクは非表示にしたい場合、遷移先モジュールの
UserReadCondition(Module 側) を絞ると Link が自動的に非表示になる。PageFrame の Link 側だけ絞ると「リンクは見えるがクリックすると拒否」される (= 見える + 弾かれるの組み合わせなのでイマイチ) - フレーム切替の Link は
PageFrameプロパティ +Moduleプロパティ両方の指定が必要 (片方だけだと正しく遷移しない)
