001
014
015 package com.liferay.portal.model.impl;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.kernel.util.ArrayUtil;
020 import com.liferay.portal.kernel.util.StringUtil;
021 import com.liferay.portal.model.PluginSetting;
022 import com.liferay.portal.model.RoleConstants;
023 import com.liferay.portal.model.User;
024 import com.liferay.portal.service.RoleLocalServiceUtil;
025 import com.liferay.portal.service.UserLocalServiceUtil;
026
027
030 public class PluginSettingImpl extends PluginSettingBaseImpl {
031
032 public PluginSettingImpl() {
033 }
034
035 public PluginSettingImpl(PluginSetting pluginSetting) {
036 setCompanyId(pluginSetting.getCompanyId());
037 setPluginId(pluginSetting.getPluginId());
038 setPluginType(pluginSetting.getPluginType());
039 setRoles(pluginSetting.getRoles());
040 setActive(pluginSetting.getActive());
041 }
042
043
046 public void addRole(String role) {
047 setRolesArray(ArrayUtil.append(_rolesArray, role));
048 }
049
050
055 public String[] getRolesArray() {
056 return _rolesArray;
057 }
058
059
065 public boolean hasPermission(long userId) {
066 try {
067 if (_rolesArray.length == 0) {
068 return true;
069 }
070 else if (RoleLocalServiceUtil.hasUserRoles(
071 userId, getCompanyId(), _rolesArray, true)) {
072
073 return true;
074 }
075 else if (RoleLocalServiceUtil.hasUserRole(
076 userId, getCompanyId(), RoleConstants.ADMINISTRATOR,
077 true)) {
078
079 return true;
080 }
081 else {
082 User user = UserLocalServiceUtil.getUserById(userId);
083
084 if (user.isDefaultUser() &&
085 hasRoleWithName(RoleConstants.GUEST)) {
086
087 return true;
088 }
089 }
090 }
091 catch (Exception e) {
092 _log.error(e);
093 }
094
095 return false;
096 }
097
098
106 public boolean hasRoleWithName(String roleName) {
107 for (int i = 0; i < _rolesArray.length; i++) {
108 if (_rolesArray[i].equalsIgnoreCase(roleName)) {
109 return true;
110 }
111 }
112
113 return false;
114 }
115
116
119 @Override
120 public void setRoles(String roles) {
121 _rolesArray = StringUtil.split(roles);
122
123 super.setRoles(roles);
124 }
125
126
129 public void setRolesArray(String[] rolesArray) {
130 _rolesArray = rolesArray;
131
132 super.setRoles(StringUtil.merge(rolesArray));
133 }
134
135
138 private static Log _log = LogFactoryUtil.getLog(PluginSettingImpl.class);
139
140
143 private String[] _rolesArray;
144
145 }