[英]How to run “clean up permissions” programmatically in Liferay
當我以編程方式更改角色時,直到從控制面板運行清理權限后,更新的角色才會立即發生。
有沒有辦法通過程序本身調用一些API來做同樣的事情?
這樣做的方法是CleanUpPermissionsUtil.cleanUpAddToPagePermissions(ActionRequest)
但問題是它是一個內部實用程序,無法在插件中調用。 它在PortalContext中執行。
您可以在鏈接上看到類的源代碼,並嘗試在邏輯中復制代碼https://github.com/liferay/liferay-portal/blob/6.2.x/portal-impl/src/com/liferay /portlet/admin/util/CleanUpPermissionsUtil.java
這是應該用來從更新角色重新加載權限的方法:
Role role = RoleLocalServiceUtil.getRole(companyId, RoleConstants.USER);
List<ResourcePermission> roleResourcePermissions = ResourcePermissionLocalServiceUtil.getRoleResourcePermissions(role.getRoleId());
for(ResourcePermission permission : roleResourcePermissions )
ResourcePermissionLocalServiceUtil.reassignPermissions(permission.getResourcePermissionId(),role.getRoleId());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.