public static void updateRoleUIPermission(String roleName, String[] rawPermissions)
throws UserAdminException {
Permission[] permissions = null;
UserStoreManager userStoreManager = null;
try {
String[] optimizedList = UserCoreUtil.optimizePermissions(rawPermissions);
UserRealm realm = AdminServicesUtil.getUserRealm();
AuthorizationManager authMan = realm.getAuthorizationManager();
authMan.clearRoleActionOnAllResources(roleName, UserMgtConstants.EXECUTE_ACTION);
permissions = new Permission[optimizedList.length];
for (int i = 0; i < optimizedList.length; i++) {
authMan.authorizeRole(roleName, optimizedList[i], UserMgtConstants.EXECUTE_ACTION);
permissions[i] = new Permission(optimizedList[i], UserMgtConstants.EXECUTE_ACTION);
}
userStoreManager = realm.getUserStoreManager();
handlePostUpdatePermissionsOfRole(roleName, permissions, userStoreManager);
} catch (UserStoreException e) {
handleOnUpdatePermissionsOfRoleFailure(e.getMessage(), roleName, permissions, userStoreManager);
throw new UserAdminException(e.getMessage(), e);
} catch (CarbonException e) {
handleOnUpdatePermissionsOfRoleFailure(e.getMessage(), roleName, null, null);
throw new UserAdminException(e.getMessage(), e);
}
}