001
014
015 package com.liferay.portlet.usersadmin;
016
017 import com.liferay.portal.model.Organization;
018 import com.liferay.portal.model.Portlet;
019 import com.liferay.portal.model.Role;
020 import com.liferay.portal.model.RoleConstants;
021 import com.liferay.portal.model.UserGroupRole;
022 import com.liferay.portal.security.permission.ActionKeys;
023 import com.liferay.portal.security.permission.PermissionChecker;
024 import com.liferay.portal.service.OrganizationLocalServiceUtil;
025 import com.liferay.portal.service.UserGroupRoleLocalServiceUtil;
026 import com.liferay.portal.service.permission.OrganizationPermissionUtil;
027 import com.liferay.portlet.BaseControlPanelEntry;
028
029 import java.util.List;
030
031
034 public class UsersControlPanelEntry extends BaseControlPanelEntry {
035
036 public boolean isVisible(
037 PermissionChecker permissionChecker, Portlet portlet)
038 throws Exception {
039
040 List<UserGroupRole> userGroupRoles =
041 UserGroupRoleLocalServiceUtil.getUserGroupRoles(
042 permissionChecker.getUserId());
043
044 for (UserGroupRole userGroupRole : userGroupRoles) {
045 Role role = userGroupRole.getRole();
046
047 String roleName = role.getName();
048
049 if (roleName.equals(RoleConstants.ORGANIZATION_ADMINISTRATOR) ||
050 roleName.equals(RoleConstants.ORGANIZATION_OWNER)) {
051
052 return true;
053 }
054 }
055
056 List<Organization> organizations =
057 OrganizationLocalServiceUtil.getUserOrganizations(
058 permissionChecker.getUserId());
059
060 for (Organization organization : organizations) {
061 if (OrganizationPermissionUtil.contains(
062 permissionChecker, organization.getOrganizationId(),
063 ActionKeys.MANAGE_USERS)) {
064
065 return true;
066 }
067
068 if (OrganizationPermissionUtil.contains(
069 permissionChecker, organization.getOrganizationId(),
070 ActionKeys.MANAGE_SUBORGANIZATIONS)) {
071
072 return true;
073 }
074
075
081 }
082
083 return false;
084 }
085
086 }