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