1
22
23 package com.liferay.portal.model.impl;
24
25 import com.liferay.portal.kernel.util.ArrayUtil;
26 import com.liferay.portal.kernel.util.StringUtil;
27 import com.liferay.portal.model.PluginSetting;
28 import com.liferay.portal.model.RoleConstants;
29 import com.liferay.portal.model.User;
30 import com.liferay.portal.service.RoleLocalServiceUtil;
31 import com.liferay.portal.service.UserLocalServiceUtil;
32
33 import org.apache.commons.logging.Log;
34 import org.apache.commons.logging.LogFactory;
35
36
42 public class PluginSettingImpl
43 extends PluginSettingModelImpl implements PluginSetting {
44
45 public PluginSettingImpl() {
46 }
47
48 public PluginSettingImpl(PluginSetting pluginSetting) {
49 setCompanyId(pluginSetting.getCompanyId());
50 setPluginId(pluginSetting.getPluginId());
51 setPluginType(pluginSetting.getPluginType());
52 setRoles(pluginSetting.getRoles());
53 setActive(pluginSetting.getActive());
54 }
55
56
61 public void addRole(String role) {
62 setRolesArray(ArrayUtil.append(_rolesArray, role));
63 }
64
65
70 public void setRoles(String roles) {
71 _rolesArray = StringUtil.split(roles);
72
73 super.setRoles(roles);
74 }
75
76
81 public String[] getRolesArray() {
82 return _rolesArray;
83 }
84
85
90 public void setRolesArray(String[] rolesArray) {
91 _rolesArray = rolesArray;
92
93 super.setRoles(StringUtil.merge(rolesArray));
94 }
95
96
101 public boolean hasRoleWithName(String roleName) {
102 for (int i = 0; i < _rolesArray.length; i++) {
103 if (_rolesArray[i].equalsIgnoreCase(roleName)) {
104 return true;
105 }
106 }
107
108 return false;
109 }
110
111
117 public boolean hasPermission(long userId) {
118 try {
119 if (_rolesArray.length == 0) {
120 return true;
121 }
122 else if (RoleLocalServiceUtil.hasUserRoles(
123 userId, getCompanyId(), _rolesArray, true)) {
124
125 return true;
126 }
127 else if (RoleLocalServiceUtil.hasUserRole(
128 userId, getCompanyId(), RoleConstants.ADMINISTRATOR,
129 true)) {
130
131 return true;
132 }
133 else {
134 User user = UserLocalServiceUtil.getUserById(userId);
135
136 if (user.isDefaultUser() &&
137 hasRoleWithName(RoleConstants.GUEST)) {
138
139 return true;
140 }
141 }
142 }
143 catch (Exception e) {
144 _log.error(e);
145 }
146
147 return false;
148 }
149
150
153 private static Log _log = LogFactory.getLog(PluginSettingImpl.class);
154
155
158 private String[] _rolesArray;
159
160 }