フォームやビューのアクションボタンで、ロールを持っている場合に表示したいって要望はよくありますよね。
接続したユーザのロールを取得するには、@UserRoles を使用します。この関数は、保持しているロールをリスト値で返します。
ボタンの表示/非表示ををコントロールするには、このリストに含まれるか判定する必要があります。
例えば、[Admin] というロールを持っている場合、ボタンを表示する、非表示式は以下の通りとなります(表示する条件を記述して、全体を否定して”非表示式”を表しています)。
!( @IsMember("[Admin]"; @UserRoles) ) |
@IsMember は、1つ目の値が2つ目のリストに含まれていた場合、True を返します。
また類似の関数である、@Contains を使用すると以下のようになります。
!( @Contains(@UserRoles; "[Admin]") ) |
ポイントは、@IsMember と @Contains では引数の並びが逆になることです。この点がいつも混乱して、ついついヘルプを見てしまいます...
また、@IsMember は完全に一致する要素がリスト値内にある場合に限られ、@Contains は要素ごとに部分一致となる点も注意が必要です。
0 件のコメント:
コメントを投稿