はじめに
以前 JPPC2023 AP-09へ登壇した際にちらっとこの話題もお伝えはしたんですが、モデル駆動型アプリのナビゲーション(ビューやカスタムページなどのリンクの部分)の表示制御ができるというお話です。
結構ニーズのある機能と思いますが、意外に知らない方は多いかと思いますので記事にしました。
★2024/2月更新 YouTubeに登壇動画アップしました! 本家のYouTube動画の紹介動画をYouTubeチャンネルを立ち上げてアップしました!併せてご視聴ください~!https://youtu.be/PUam5v9ALQk?si=JTpbU0DUCg342hle...
資料では以下のページです。
https://www.docswell.com/s/yousei/5VVE6J-2023-12-08-125936/63
以下のことがやれるという内容です。
ビュー(テーブル)やカスタムページの設定で特権で表示制御が可能!
実際にモダンなアプリデザイナーの画面ですが、テーブル(ビュー)の場合、選択すると右側の情報エリアで
「設定タブ」を開くとアプリ名などが出ますが、下のほうに「詳細設定」があります。
ここで特権:テーブルの特権で特定のテーブルおよび特権を指定すると、その特権を持つセキュリティロールのユーザーのみに表示されるという設定が可能です。
NOTEテーブル(ビュー)の対応としていますが、ナビゲーションに表示されるか否かの設定なので、一つ一つのビューに対して表示制御が出来るというものではありません。
※プルダウンで指定できるビューに対して個別の表示制御は指定できません。
NOTE公式情報を色々探してみましたが、この部分が書いてあるぺージがどっかにあった気がするのですが、見つけれませんでした。。
後々見つけたらリンクを追加しますのでご容赦ください。ご存じの方は教えてください。
以下、まずテーブルのビューを選択して設定タブを開いた状態で説明します。
初期状態ではテーブルの特権:特権が存在しません。となっています。
この部分で「テーブルの特権を追加する」をクリックします。
そうすると以下のようにどのテーブルを追加するか選択画面が出ますので、任意のテーブルを指定します。
例では見積テーブルのビューなのですが、そのまま見積テーブルを選択しています。
そうするとそのテーブルのどの特権が必要か?をチェックボックスで選択する画面になります。
ここで必要な特権にチェックを入れます。(例ではすべての権限にチェック)
TIPSここでやっと以下のようにちゃんとサブエリアを表示するかどうかを定義します。と書いてありますね!
ここまでたどり着かないとそれできるんだ!って気づかない気します。。
適用をクリックすると追加したテーブルが表示されます。
ここには複数のテーブルを指定できます。さらに明細テーブルも追加してみた例です。
カスタムページの場合も同様
カスタムページの場合も同様です。設定タブはなく下の方におなじく詳細設定があり、特権の調整が出来るようになっています。
指定されている場合はその特権がすべてないとそのナビゲーションは表示されない!
この状態でアプリを公開して確認してみてください。
反映されればその特権(が含まれているセキュリティロールのメンバー)ではない場合は
このナビゲーション(サイドリンク)は表示されなくなるはずです。
NOTE残念ながら現在検証環境で他の権限なしユーザーを作る時間を取れなかったので、結果の画面ショットは割愛しています。すいません。。(管理者ロールだとですべて見えるので)
各自の環境で実際にお試しいただければと思います。
使い道① そのテーブルにアクセスできないユーザーがアプリに含まれる場合は表示しないようにする
通常はアプリに出しているテーブルへは最低限表示のアクセスがあると思いますが、もし色々なテーブルが一アプリに含まれ、一部のテーブルは全く見れないユーザーがいる場合などは
この設定で、そもそもそのテーブルを見れない人にはナビゲーションを出さないことが可能です。
使い道② 特定ユーザー・管理者クラスのみに表示させたい場合
こっちの使い方の方が多い気がしますが、すべてのユーザーには出さずに特定のユーザーや管理者クラスのユーザーにのみ出したいテーブル(ビュー)やカスタムページの場合に設定するケースです。
例:登録用のカスタムページを作ったが、特定の役割のユーザーにのみページのリンクを表示したい
:管理者のみが見れる履歴用テーブルを管理者ロールのユーザーのみにページのリンクを表示したい
テーブルや特権を工夫して対応するユーザーに出るように調整する
上記の実現ですが、要するに出したくないユーザーのセキュリティロールで持っていない特権を適用すればOKということです。
例えば、管理者のセキュリティロールには履歴用テーブルを見れるようにしておいて(一般ユーザーはそもそもアクセス不可)として表示制御の設定でその特権が必要と定義しておく。
そうすると一般ユーザーには表示されなくなります。
特定の役割のユーザー用のセキュリティロールにのみ見せたい場合も同様で、一般ユーザーが持っていない強めの特権を付けておき、それを表示制御の設定で指定する。という感じです。
管理者クラスのセキュリティロールのみに特権を付けておけば、各ナビゲーションの表示制御にそのテーブルの特権が必要と定義しておけば共通して管理者しか見れないものと出来ますね。
テーブル特権以外での表示制御設定も出来る
▽アイコンをクリックするとテーブル以外のその他の特権を追加することができ、
以下のような特権が選択できます。この辺りの特権はイマイチ使われ方を理解していないので自分は使っていませんが、場合によってはこちらも使えるようです。
詳細設定にはその他の設定もある(未検証)
以下のように詳細設定では特権以外に、ロケール、SKU、クライアント、Outlookのショートカット
という設定があります。
自分も失念している部分が多いので説明は割愛しますが、ロケールではロケールに応じたタイトルを付けれる。
SKUはどの状態であれば表示するとか、クライアントもどのクライアントの場合は表示するなどだったと思います。
アプリの要件によってはこの辺りの設定で解消できるものもあるかもしれませんね。
おわりに
今回はモデル駆動型アプリのナビゲーション(サイドリンク)の表示制御について解説しました。
実際のビフォーアフターを載せれてないのが残念ですが、実際に試していただければ確認いただけると思います。
実運用していくなかで結構ニーズがある機能と思いますが、この部分で設定できることを同じ業界の方でも知らない方も結構いらっしゃったので記事にしました。
そもそも公式の記事が見つけれない(どこかにあった気はしますが💦)し、ちょっとわかりずらいですよね。
この辺りの情報は今後もっとわかりやすく辿り着けるようになればなーと思います。それでは!
関連記事
ナビゲーション 任意のビューの指定方法
モデル駆動型アプリ ナビゲーション 任意のビューを設定する
今回はモデル駆動型アプリのナビゲーション(サイドリンク)に任意のビューを指定する手順についてです。 また、別環境へインポートしたときにも機能する点をご紹介します。 その際のURLの挙動や個人的なオススメ設定なども書いてます。...
モデル駆動型アプリ関連
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
コメント