001    /**
002     * Copyright (c) 2000-present 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.model.Organization;
019    import com.liferay.portal.model.Role;
020    import com.liferay.portal.model.UserGroupRole;
021    import com.liferay.portal.security.permission.PermissionChecker;
022    import com.liferay.portlet.asset.model.AssetCategory;
023    import com.liferay.portlet.asset.model.AssetTag;
024    
025    import java.io.Serializable;
026    
027    import java.util.List;
028    import java.util.Map;
029    
030    /**
031     * @author Roberto D??az
032     */
033    public class OrganizationMembershipPolicyUtil {
034    
035            public static void checkMembership(
036                            long[] userIds, long[] addOrganizationIds,
037                            long[] removeOrganizationIds)
038                    throws PortalException {
039    
040                    OrganizationMembershipPolicy organizationMembershipPolicy =
041                            OrganizationMembershipPolicyFactoryUtil.
042                                    getOrganizationMembershipPolicy();
043    
044                    organizationMembershipPolicy.checkMembership(
045                            userIds, addOrganizationIds, removeOrganizationIds);
046            }
047    
048            public static void checkRoles(
049                            List<UserGroupRole> addUserGroupRoles,
050                            List<UserGroupRole> removeUserGroupRoles)
051                    throws PortalException {
052    
053                    OrganizationMembershipPolicy organizationMembershipPolicy =
054                            OrganizationMembershipPolicyFactoryUtil.
055                                    getOrganizationMembershipPolicy();
056    
057                    organizationMembershipPolicy.checkRoles(
058                            addUserGroupRoles, removeUserGroupRoles);
059            }
060    
061            public static boolean isMembershipAllowed(long userId, long organizationId)
062                    throws PortalException {
063    
064                    OrganizationMembershipPolicy organizationMembershipPolicy =
065                            OrganizationMembershipPolicyFactoryUtil.
066                                    getOrganizationMembershipPolicy();
067    
068                    return organizationMembershipPolicy.isMembershipAllowed(
069                            userId, organizationId);
070            }
071    
072            public static boolean isMembershipProtected(
073                            PermissionChecker permissionChecker, long userId,
074                            long organizationId)
075                    throws PortalException {
076    
077                    OrganizationMembershipPolicy organizationMembershipPolicy =
078                            OrganizationMembershipPolicyFactoryUtil.
079                                    getOrganizationMembershipPolicy();
080    
081                    return organizationMembershipPolicy.isMembershipProtected(
082                            permissionChecker, userId, organizationId);
083            }
084    
085            public static boolean isMembershipRequired(long userId, long organizationId)
086                    throws PortalException {
087    
088                    OrganizationMembershipPolicy organizationMembershipPolicy =
089                            OrganizationMembershipPolicyFactoryUtil.
090                                    getOrganizationMembershipPolicy();
091    
092                    return organizationMembershipPolicy.isMembershipRequired(
093                            userId, organizationId);
094            }
095    
096            public static boolean isRoleAllowed(
097                            long userId, long organizationId, long roleId)
098                    throws PortalException {
099    
100                    OrganizationMembershipPolicy organizationMembershipPolicy =
101                            OrganizationMembershipPolicyFactoryUtil.
102                                    getOrganizationMembershipPolicy();
103    
104                    return organizationMembershipPolicy.isRoleAllowed(
105                            userId, organizationId, roleId);
106            }
107    
108            public static boolean isRoleProtected(
109                            PermissionChecker permissionChecker, long userId,
110                            long organizationId, long roleId)
111                    throws PortalException {
112    
113                    OrganizationMembershipPolicy organizationMembershipPolicy =
114                            OrganizationMembershipPolicyFactoryUtil.
115                                    getOrganizationMembershipPolicy();
116    
117                    return organizationMembershipPolicy.isRoleProtected(
118                            permissionChecker, userId, organizationId, roleId);
119            }
120    
121            public static boolean isRoleRequired(
122                            long userId, long organizationId, long roleId)
123                    throws PortalException {
124    
125                    OrganizationMembershipPolicy organizationMembershipPolicy =
126                            OrganizationMembershipPolicyFactoryUtil.
127                                    getOrganizationMembershipPolicy();
128    
129                    return organizationMembershipPolicy.isRoleRequired(
130                            userId, organizationId, roleId);
131            }
132    
133            public static void propagateMembership(
134                            long[] userIds, long[] addOrganizationIds,
135                            long[] removeOrganizationIds)
136                    throws PortalException {
137    
138                    OrganizationMembershipPolicy organizationMembershipPolicy =
139                            OrganizationMembershipPolicyFactoryUtil.
140                                    getOrganizationMembershipPolicy();
141    
142                    organizationMembershipPolicy.propagateMembership(
143                            userIds, addOrganizationIds, removeOrganizationIds);
144            }
145    
146            public static void propagateRoles(
147                            List<UserGroupRole> addUserGroupRoles,
148                            List<UserGroupRole> removeUserGroupRoles)
149                    throws PortalException {
150    
151                    OrganizationMembershipPolicy organizationMembershipPolicy =
152                            OrganizationMembershipPolicyFactoryUtil.
153                                    getOrganizationMembershipPolicy();
154    
155                    organizationMembershipPolicy.propagateRoles(
156                            addUserGroupRoles, removeUserGroupRoles);
157            }
158    
159            public static void verifyPolicy() throws PortalException {
160                    OrganizationMembershipPolicy organizationMembershipPolicy =
161                            OrganizationMembershipPolicyFactoryUtil.
162                                    getOrganizationMembershipPolicy();
163    
164                    organizationMembershipPolicy.verifyPolicy();
165            }
166    
167            public static void verifyPolicy(Organization organization)
168                    throws PortalException {
169    
170                    OrganizationMembershipPolicy organizationMembershipPolicy =
171                            OrganizationMembershipPolicyFactoryUtil.
172                                    getOrganizationMembershipPolicy();
173    
174                    organizationMembershipPolicy.verifyPolicy(organization);
175            }
176    
177            public static void verifyPolicy(
178                            Organization organization, Organization oldOrganization,
179                            List<AssetCategory> oldAssetCategories, List<AssetTag> oldAssetTags,
180                            Map<String, Serializable> oldExpandoAttributes)
181                    throws PortalException {
182    
183                    OrganizationMembershipPolicy organizationMembershipPolicy =
184                            OrganizationMembershipPolicyFactoryUtil.
185                                    getOrganizationMembershipPolicy();
186    
187                    organizationMembershipPolicy.verifyPolicy(
188                            organization, oldOrganization, oldAssetCategories, oldAssetTags,
189                            oldExpandoAttributes);
190            }
191    
192            public static void verifyPolicy(Role role) throws PortalException {
193                    OrganizationMembershipPolicy organizationMembershipPolicy =
194                            OrganizationMembershipPolicyFactoryUtil.
195                                    getOrganizationMembershipPolicy();
196    
197                    organizationMembershipPolicy.verifyPolicy(role);
198            }
199    
200            public static void verifyPolicy(
201                            Role role, Role oldRole,
202                            Map<String, Serializable> oldExpandoAttributes)
203                    throws PortalException {
204    
205                    OrganizationMembershipPolicy organizationMembershipPolicy =
206                            OrganizationMembershipPolicyFactoryUtil.
207                                    getOrganizationMembershipPolicy();
208    
209                    organizationMembershipPolicy.verifyPolicy(
210                            role, oldRole, oldExpandoAttributes);
211            }
212    
213    }