001
014
015 package com.liferay.portal.service.permission;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.log.Log;
019 import com.liferay.portal.kernel.log.LogFactoryUtil;
020 import com.liferay.portal.model.Role;
021 import com.liferay.portal.model.RoleConstants;
022 import com.liferay.portal.security.auth.CompanyThreadLocal;
023 import com.liferay.portal.service.RoleLocalServiceUtil;
024
025 import java.util.Map;
026
027 import javax.portlet.PortletRequest;
028
029 import javax.servlet.http.HttpServletRequest;
030
031
034 public class ModelPermissionsFactory {
035
036 public static final String MODEL_PERMISSIONS_PREFIX = "modelPermissions";
037
038 public static ModelPermissions create(HttpServletRequest request) {
039 Map<String, String[]> parameterMap = request.getParameterMap();
040
041 return create(parameterMap);
042 }
043
044 public static ModelPermissions create(Map<String, String[]> parameterMap) {
045 ModelPermissions modelPermissions = new ModelPermissions();
046
047 for (String parameterName : parameterMap.keySet()) {
048 if (!parameterName.startsWith(MODEL_PERMISSIONS_PREFIX)) {
049 continue;
050 }
051
052 String roleName = parameterName.substring(
053 MODEL_PERMISSIONS_PREFIX.length());
054
055 Role role = null;
056
057 try {
058 role = RoleLocalServiceUtil.getRole(
059 CompanyThreadLocal.getCompanyId(), roleName);
060 }
061 catch (PortalException pe) {
062 if (_log.isInfoEnabled()) {
063 _log.info("Unable to get role " + roleName);
064 }
065
066 continue;
067 }
068
069 String[] actionIds = parameterMap.get(parameterName);
070
071 modelPermissions.addRolePermissions(role.getName(), actionIds);
072 }
073
074 return modelPermissions;
075 }
076
077 public static ModelPermissions create(PortletRequest portletRequest) {
078 Map<String, String[]> parameterMap = portletRequest.getParameterMap();
079
080 return create(parameterMap);
081 }
082
083 public static ModelPermissions create(
084 String[] groupPermissions, String[] guestPermissions) {
085
086 ModelPermissions modelPermissions = new ModelPermissions();
087
088 if ((groupPermissions != null) && (groupPermissions.length > 0)) {
089 modelPermissions.addRolePermissions(
090 RoleConstants.PLACEHOLDER_DEFAULT_GROUP_ROLE, groupPermissions);
091 }
092
093 if ((guestPermissions != null) && (guestPermissions.length > 0)) {
094 modelPermissions.addRolePermissions(
095 RoleConstants.GUEST, guestPermissions);
096 }
097
098 return modelPermissions;
099 }
100
101 private static final Log _log = LogFactoryUtil.getLog(
102 ModelPermissionsFactory.class);
103
104 }