簡體   English   中英

如何在Liferay中以編程方式運行“清理權限”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM