RoleのPublicを設定できるようになった(2024/11/16時点では、Release Notesにはまだ載っていないが、恐らくODC Studio 1.4.31から)。
環境情報
ODC Studio(Version 1.4.31)
ODCにおけるRole(これまでとこれから)
これまでは、RoleをPublicにできなかったため、複数のAppで共通のRoleを使いたい場合、
- 同名のRoleをそれぞれに作成する
- Roleをユーザーに付与する際、Roleが存在する全Appで付与するロジックを作成する
- 同様にRevokeのロジックも全App対象
と面倒だった(参考:[OutSystems]Architecture Specialization (ODC)のサンプル問題について解説 1/2 (#1-#5) #outsystems - Qiitaの1 Deployments and Configurations)。
(ただし、End-user groupsを使うならこの対応は必要ない)
これからは、権限の管理ロジックを1箇所で作成(あるいはODC Portal上で1 Appのみを対象に操作)すれば良くなる。
動作確認
RoleのPublic=Yesに設定
これまでは無かったPublicプロパティが増えている。以下、テストのためYesに設定してPublish。以降の動作確認は、他のAppからこのRoleを参照して行う。
参照した他AppのRoleもScreenの権限チェックに利用可能
他AppのRoleも、ScreenのAuthorization下で選択可能。ただ、どのAppのものか、という情報は表示されない。
Human ActivityのAssign先にもRoleを指定できるようになった (詳細は別の記事で見る)
Action(Checkは使えるがGrant・Revokeは使えない)
Roleを作成するとCheck(ClientとServer)、Grant、RevokeのActionが自動で用意される。
他AppのRoleを参照する場合、このうち、Checkは使えるが、Grant・Revokeは使えない。
Built-In FunnctionにCheckEndUserRoleが追加
以前はなかったはずの、CheckEndUserRole Built-in functionが追加されていた。
RoleIdを渡すことで、ログインユーザーがそのRoleを持っているかを判定する。
ただし、このRoleIdが現時点(2024/11/18)では取れない気がする。
ODC Portalでは見当たらないし、Action Flow中でも、Id項目を参照できるわけではなさそう。
OutSystems 11の頃なら、メタデータのEntityなど取れる方法はあったが。
今回、WorkflowのHumanActivity関連で追加されたEntity,(System)/HumanActivityRoleには含まれているので、WorkflowでHuman Activityを配置 → Assignを対象Roleにする → データをプレビューして取得、という手はありそうだが。流石にそのうち、正式な取得手順が公開されるはず。