2023/03/23

ロールを持っているユーザだけに表示

フォームやビューのアクションボタンで、ロールを持っている場合に表示したいって要望はよくありますよね。

接続したユーザのロールを取得するには、@UserRoles を使用します。この関数は、保持しているロールをリスト値で返します。

ボタンの表示/非表示ををコントロールするには、このリストに含まれるか判定する必要があります。

例えば、[Admin] というロールを持っている場合、ボタンを表示する、非表示式は以下の通りとなります(表示する条件を記述して、全体を否定して”非表示式”を表しています)。

!(
  @IsMember("[Admin]"; @UserRoles)
)

@IsMember は、1つ目の値が2つ目のリストに含まれていた場合、True を返します。

また類似の関数である、@Contains を使用すると以下のようになります。

!(
  @Contains(@UserRoles; "[Admin]")
)

ポイントは、@IsMember と @Contains では引数の並びが逆になることです。この点がいつも混乱して、ついついヘルプを見てしまいます...

また、@IsMember は完全に一致する要素がリスト値内にある場合に限られ、@Contains は要素ごとに部分一致となる点も注意が必要です。

0 件のコメント:

コメントを投稿