001    /**
002     * Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.security.membershippolicy;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.exception.SystemException;
019    import com.liferay.portal.model.Organization;
020    import com.liferay.portal.model.Role;
021    import com.liferay.portal.model.UserGroupRole;
022    import com.liferay.portal.security.permission.PermissionChecker;
023    import com.liferay.portlet.asset.model.AssetCategory;
024    import com.liferay.portlet.asset.model.AssetTag;
025    
026    import java.io.Serializable;
027    
028    import java.util.List;
029    import java.util.Map;
030    
031    /**
032     * @author Roberto D??az
033     */
034    public class OrganizationMembershipPolicyUtil {
035    
036            public static void checkMembership(
037                            long[] userIds, long[] addOrganizationIds,
038                            long[] removeOrganizationIds)
039                    throws PortalException, SystemException {
040    
041                    OrganizationMembershipPolicy organizationMembershipPolicy =
042                            OrganizationMembershipPolicyFactoryUtil.
043                                    getOrganizationMembershipPolicy();
044    
045                    organizationMembershipPolicy.checkMembership(
046                            userIds, addOrganizationIds, removeOrganizationIds);
047            }
048    
049            public static void checkRoles(
050                            List<UserGroupRole> addUserGroupRoles,
051                            List<UserGroupRole> removeUserGroupRoles)
052                    throws PortalException, SystemException {
053    
054                    OrganizationMembershipPolicy organizationMembershipPolicy =
055                            OrganizationMembershipPolicyFactoryUtil.
056                                    getOrganizationMembershipPolicy();
057    
058                    organizationMembershipPolicy.checkRoles(
059                            addUserGroupRoles, removeUserGroupRoles);
060            }
061    
062            public static boolean isMembershipAllowed(long userId, long organizationId)
063                    throws PortalException, SystemException {
064    
065                    OrganizationMembershipPolicy organizationMembershipPolicy =
066                            OrganizationMembershipPolicyFactoryUtil.
067                                    getOrganizationMembershipPolicy();
068    
069                    return organizationMembershipPolicy.isMembershipAllowed(
070                            userId, organizationId);
071            }
072    
073            public static boolean isMembershipProtected(
074                            PermissionChecker permissionChecker, long userId,
075                            long organizationId)
076                    throws PortalException, SystemException {
077    
078                    OrganizationMembershipPolicy organizationMembershipPolicy =
079                            OrganizationMembershipPolicyFactoryUtil.
080                                    getOrganizationMembershipPolicy();
081    
082                    return organizationMembershipPolicy.isMembershipProtected(
083                            permissionChecker, userId, organizationId);
084            }
085    
086            public static boolean isMembershipRequired(long userId, long organizationId)
087                    throws PortalException, SystemException {
088    
089                    OrganizationMembershipPolicy organizationMembershipPolicy =
090                            OrganizationMembershipPolicyFactoryUtil.
091                                    getOrganizationMembershipPolicy();
092    
093                    return organizationMembershipPolicy.isMembershipRequired(
094                            userId, organizationId);
095            }
096    
097            public static boolean isRoleAllowed(
098                            long userId, long organizationId, long roleId)
099                    throws PortalException, SystemException {
100    
101                    OrganizationMembershipPolicy organizationMembershipPolicy =
102                            OrganizationMembershipPolicyFactoryUtil.
103                                    getOrganizationMembershipPolicy();
104    
105                    return organizationMembershipPolicy.isRoleAllowed(
106                            userId, organizationId, roleId);
107            }
108    
109            public static boolean isRoleProtected(
110                            PermissionChecker permissionChecker, long userId,
111                            long organizationId, long roleId)
112                    throws PortalException, SystemException {
113    
114                    OrganizationMembershipPolicy organizationMembershipPolicy =
115                            OrganizationMembershipPolicyFactoryUtil.
116                                    getOrganizationMembershipPolicy();
117    
118                    return organizationMembershipPolicy.isRoleProtected(
119                            permissionChecker, userId, organizationId, roleId);
120            }
121    
122            public static boolean isRoleRequired(
123                            long userId, long organizationId, long roleId)
124                    throws PortalException, SystemException {
125    
126                    OrganizationMembershipPolicy organizationMembershipPolicy =
127                            OrganizationMembershipPolicyFactoryUtil.
128                                    getOrganizationMembershipPolicy();
129    
130                    return organizationMembershipPolicy.isRoleRequired(
131                            userId, organizationId, roleId);
132            }
133    
134            public static void propagateMembership(
135                            long[] userIds, long[] addOrganizationIds,
136                            long[] removeOrganizationIds)
137                    throws PortalException, SystemException {
138    
139                    OrganizationMembershipPolicy organizationMembershipPolicy =
140                            OrganizationMembershipPolicyFactoryUtil.
141                                    getOrganizationMembershipPolicy();
142    
143                    organizationMembershipPolicy.propagateMembership(
144                            userIds, addOrganizationIds, removeOrganizationIds);
145            }
146    
147            public static void propagateRoles(
148                            List<UserGroupRole> addUserGroupRoles,
149                            List<UserGroupRole> removeUserGroupRoles)
150                    throws PortalException, SystemException {
151    
152                    OrganizationMembershipPolicy organizationMembershipPolicy =
153                            OrganizationMembershipPolicyFactoryUtil.
154                                    getOrganizationMembershipPolicy();
155    
156                    organizationMembershipPolicy.propagateRoles(
157                            addUserGroupRoles, removeUserGroupRoles);
158            }
159    
160            public static void verifyPolicy() throws PortalException, SystemException {
161                    OrganizationMembershipPolicy organizationMembershipPolicy =
162                            OrganizationMembershipPolicyFactoryUtil.
163                                    getOrganizationMembershipPolicy();
164    
165                    organizationMembershipPolicy.verifyPolicy();
166            }
167    
168            public static void verifyPolicy(Organization organization)
169                    throws PortalException, SystemException {
170    
171                    OrganizationMembershipPolicy organizationMembershipPolicy =
172                            OrganizationMembershipPolicyFactoryUtil.
173                                    getOrganizationMembershipPolicy();
174    
175                    organizationMembershipPolicy.verifyPolicy(organization);
176            }
177    
178            public static void verifyPolicy(
179                            Organization organization, Organization oldOrganization,
180                            List<AssetCategory> oldAssetCategories, List<AssetTag> oldAssetTags,
181                            Map<String, Serializable> oldExpandoAttributes)
182                    throws PortalException, SystemException {
183    
184                    OrganizationMembershipPolicy organizationMembershipPolicy =
185                            OrganizationMembershipPolicyFactoryUtil.
186                                    getOrganizationMembershipPolicy();
187    
188                    organizationMembershipPolicy.verifyPolicy(
189                            organization, oldOrganization, oldAssetCategories, oldAssetTags,
190                            oldExpandoAttributes);
191            }
192    
193            public static void verifyPolicy(Role role)
194                    throws PortalException, SystemException {
195    
196                    OrganizationMembershipPolicy organizationMembershipPolicy =
197                            OrganizationMembershipPolicyFactoryUtil.
198                                    getOrganizationMembershipPolicy();
199    
200                    organizationMembershipPolicy.verifyPolicy(role);
201            }
202    
203            public static void verifyPolicy(
204                            Role role, Role oldRole,
205                            Map<String, Serializable> oldExpandoAttributes)
206                    throws PortalException, SystemException {
207    
208                    OrganizationMembershipPolicy organizationMembershipPolicy =
209                            OrganizationMembershipPolicyFactoryUtil.
210                                    getOrganizationMembershipPolicy();
211    
212                    organizationMembershipPolicy.verifyPolicy(
213                            role, oldRole, oldExpandoAttributes);
214            }
215    
216    }