@Override public long getGroupId() { return _organization.getGroupId(); }
@Override public boolean isRoleAllowed(long userId, long organizationId, long roleId) throws PortalException { List<UserGroupRole> userGroupRoles = new ArrayList<>(); Organization organization = OrganizationLocalServiceUtil.getOrganization(organizationId); UserGroupRolePK userGroupRolePK = new UserGroupRolePK( userId, organization.getGroupId(), roleId); UserGroupRole userGroupRole = UserGroupRoleLocalServiceUtil.createUserGroupRole(userGroupRolePK); userGroupRoles.add(userGroupRole); try { checkRoles(userGroupRoles, null); } catch (Exception e) { return false; } return true; }
@Override public boolean isRoleRequired(long userId, long organizationId, long roleId) throws PortalException { List<UserGroupRole> userGroupRoles = new ArrayList<>(); Organization organization = OrganizationLocalServiceUtil.getOrganization(organizationId); UserGroupRolePK userGroupRolePK = new UserGroupRolePK( userId, organization.getGroupId(), roleId); UserGroupRole userGroupRole = UserGroupRoleLocalServiceUtil.createUserGroupRole(userGroupRolePK); userGroupRoles.add(userGroupRole); try { checkRoles(null, userGroupRoles); } catch (Exception e) { return true; } return false; }
@Override public void verifyPolicy() throws PortalException { ActionableDynamicQuery organizationActionableDynamicQuery = OrganizationLocalServiceUtil.getActionableDynamicQuery(); organizationActionableDynamicQuery.setPerformActionMethod( (Organization organization) -> { verifyPolicy(organization); ActionableDynamicQuery userGroupRoleActionableDynamicQuery = UserGroupRoleLocalServiceUtil.getActionableDynamicQuery(); userGroupRoleActionableDynamicQuery.setGroupId( organization.getGroupId()); userGroupRoleActionableDynamicQuery.setPerformActionMethod( (UserGroupRole userGroupRole) -> { verifyPolicy(userGroupRole.getRole()); }); userGroupRoleActionableDynamicQuery.performActions(); }); organizationActionableDynamicQuery.performActions(); }