1

現在サインインしているユーザーが「myRole」などのロールを持っている場合、6.1.1 GA2 の Liferay-Theme をチェックインします。

この役割が割り当てられているグループにユーザーを追加することにより、役割が定義され、ユーザーに割り当てられます。

コントロール パネルでユーザー ロールを確認すると、ユーザー リストでそのユーザーのグループが正しく表示されます。ユーザーを編集すると、役割パネルの「継承された役割」に割り当てられたグループが表示されます。

テーマはシンプルに

#set ($usrRoles = $user.getRoles())
#foreach( $usrRole in $usrRoles )
    <p>$usrRole.getName()</p>
#end

グループから継承されたロールではなく、直接割り当てられたロールのみを返します。

これらの役割を取得する別の方法はありますか? それとも、これは Liferay のもう 1 つのバグですか?

4

1 に答える 1

2

liferay ユーザーグループを使用している場合は、関連するロールを UserGroupRoleLocalService から取得できます。

次のコードを次の後に追加します。

#set($userGroupRoleLocalService= $serviceLocator.findService("com.liferay.portal.service.UserGroupRoleLocalService"))

#set($ugUsrRoles = $userGroupRoleLocalService.getUserGroupRoles($user.getUserId()))

#foreach( $ugUsrRole in $ugUsrRoles )
    <p>$ugUsrRole.getRole().getName()</p>
#end

これは、Velocity で使用できるすべての liferay オブジェクトの興味深いリストです: Access Objects from Velocity

于 2013-09-25T21:49:36.067 に答える