我正在创建一个portlet来grep所有访问过的url并为其创建书签条目并且没有任何问题。但是在给予某些特定角色和团队许可的同时,我遇到了问题。
任何人都可以帮助我如何以编程方式设置书签条目的权限。 我使用以下代码:
BookmarksEntry entry = BookmarksEntryLocalServiceUtil.addEntry(user.getUserId(),
GroupLocalServiceUtil.getGroup(user.getCompanyId(), "SPACE").getGroupId(),0,
wikiResource,url,wikiResource+" Accessed on "+viewedDate , new ServiceContext());
long groupId = entry.getGroupId();
long companyId = entry.getCompanyId();
String name = BookmarksEntry.class.getName();
String primKey = entry.getPrimaryKey() + "";
// For Role : "Role_XYZ"
try {
Role sp_View_Prod_role = RoleLocalServiceUtil.getRole(companyId,"Role_XYZ");
ResourcePermissionServiceUtil.setIndividualResourcePermissions(
groupId, companyId, name, primKey,
sp_View_Prod_role.getRoleId(),
new String[] { ActionKeys.VIEW });
PMLogger.logging("[INFO] Document uploaded with view permission added for sp_View Prod,sp_View All -ROLES");
} catch (Exception e) {
e.printStackTrace();
PMLogger.logging(e.getMessage());
}
提前致谢。
答案 0 :(得分:0)
代码对我来说似乎没问题。但问题可能是你在错误的地方进行验证。
由于您要为个人BookmarksEntry
添加权限,因此您可以通过以下方式对其进行验证:
ResourcePermission
表是否具有给定roleId的条目,其名称和primKey列具有与您相同的数据。范围列的值为4
。以下是您可以检查输入权限的屏幕截图:
希望这有帮助。