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.kernel.util.UnicodeProperties;
019    import com.liferay.portal.model.Group;
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     * @author Sergio Gonz??lez
034     */
035    public class SiteMembershipPolicyUtil {
036    
037            public static void checkMembership(
038                            long[] userIds, long[] addGroupIds, long[] removeGroupIds)
039                    throws PortalException {
040    
041                    SiteMembershipPolicy siteMembershipPolicy =
042                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
043    
044                    siteMembershipPolicy.checkMembership(
045                            userIds, addGroupIds, removeGroupIds);
046            }
047    
048            public static void checkRoles(
049                            List<UserGroupRole> addUserGroupRoles,
050                            List<UserGroupRole> removeUserGroupRoles)
051                    throws PortalException {
052    
053                    SiteMembershipPolicy siteMembershipPolicy =
054                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
055    
056                    siteMembershipPolicy.checkRoles(
057                            addUserGroupRoles, removeUserGroupRoles);
058            }
059    
060            public static boolean isMembershipAllowed(long userId, long groupId)
061                    throws PortalException {
062    
063                    SiteMembershipPolicy siteMembershipPolicy =
064                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
065    
066                    return siteMembershipPolicy.isMembershipAllowed(userId, groupId);
067            }
068    
069            public static boolean isMembershipProtected(
070                            PermissionChecker permissionChecker, long userId, long groupId)
071                    throws PortalException {
072    
073                    SiteMembershipPolicy siteMembershipPolicy =
074                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
075    
076                    return siteMembershipPolicy.isMembershipProtected(
077                            permissionChecker, userId, groupId);
078            }
079    
080            public static boolean isMembershipRequired(long userId, long groupId)
081                    throws PortalException {
082    
083                    SiteMembershipPolicy siteMembershipPolicy =
084                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
085    
086                    return siteMembershipPolicy.isMembershipRequired(userId, groupId);
087            }
088    
089            public static boolean isRoleAllowed(long userId, long groupId, long roleId)
090                    throws PortalException {
091    
092                    SiteMembershipPolicy siteMembershipPolicy =
093                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
094    
095                    return siteMembershipPolicy.isRoleAllowed(userId, groupId, roleId);
096            }
097    
098            public static boolean isRoleProtected(
099                            PermissionChecker permissionChecker, long userId, long groupId,
100                            long roleId)
101                    throws PortalException {
102    
103                    SiteMembershipPolicy siteMembershipPolicy =
104                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
105    
106                    return siteMembershipPolicy.isRoleProtected(
107                            permissionChecker, userId, groupId, roleId);
108            }
109    
110            public static boolean isRoleRequired(long userId, long groupId, long roleId)
111                    throws PortalException {
112    
113                    SiteMembershipPolicy siteMembershipPolicy =
114                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
115    
116                    return siteMembershipPolicy.isRoleRequired(userId, groupId, roleId);
117            }
118    
119            public static void propagateMembership(
120                            long[] userIds, long[] addGroupIds, long[] removeGroupIds)
121                    throws PortalException {
122    
123                    SiteMembershipPolicy siteMembershipPolicy =
124                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
125    
126                    siteMembershipPolicy.propagateMembership(
127                            userIds, addGroupIds, removeGroupIds);
128            }
129    
130            public static void propagateRoles(
131                            List<UserGroupRole> addUserGroupRoles,
132                            List<UserGroupRole> removeUserGroupRoles)
133                    throws PortalException {
134    
135                    SiteMembershipPolicy siteMembershipPolicy =
136                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
137    
138                    siteMembershipPolicy.propagateRoles(
139                            addUserGroupRoles, removeUserGroupRoles);
140            }
141    
142            public static void verifyPolicy() throws PortalException {
143                    SiteMembershipPolicy siteMembershipPolicy =
144                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
145    
146                    siteMembershipPolicy.verifyPolicy();
147            }
148    
149            public static void verifyPolicy(Group group) throws PortalException {
150                    SiteMembershipPolicy siteMembershipPolicy =
151                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
152    
153                    siteMembershipPolicy.verifyPolicy(group);
154            }
155    
156            public static void verifyPolicy(
157                            Group group, Group oldGroup, List<AssetCategory> oldAssetCategories,
158                            List<AssetTag> oldAssetTags,
159                            Map<String, Serializable> oldExpandoAttributes,
160                            UnicodeProperties oldTypeSettingsProperties)
161                    throws PortalException {
162    
163                    SiteMembershipPolicy siteMembershipPolicy =
164                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
165    
166                    siteMembershipPolicy.verifyPolicy(
167                            group, oldGroup, oldAssetCategories, oldAssetTags,
168                            oldExpandoAttributes, oldTypeSettingsProperties);
169            }
170    
171            public static void verifyPolicy(Role role) throws PortalException {
172                    SiteMembershipPolicy siteMembershipPolicy =
173                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
174    
175                    siteMembershipPolicy.verifyPolicy(role);
176            }
177    
178            public static void verifyPolicy(
179                            Role role, Role oldRole,
180                            Map<String, Serializable> oldExpandoAttributes)
181                    throws PortalException {
182    
183                    SiteMembershipPolicy siteMembershipPolicy =
184                            SiteMembershipPolicyFactoryUtil.getSiteMembershipPolicy();
185    
186                    siteMembershipPolicy.verifyPolicy(role, oldRole, oldExpandoAttributes);
187            }
188    
189    }