001
014
015 package com.liferay.portlet.sitesadmin.search;
016
017 import com.liferay.portal.kernel.dao.search.EmptyOnClickRowChecker;
018 import com.liferay.portal.kernel.log.Log;
019 import com.liferay.portal.kernel.log.LogFactoryUtil;
020 import com.liferay.portal.model.Group;
021 import com.liferay.portal.model.User;
022 import com.liferay.portal.security.membershippolicy.SiteMembershipPolicyUtil;
023 import com.liferay.portal.service.UserLocalServiceUtil;
024
025 import javax.portlet.RenderResponse;
026
027
030 public class UserSiteMembershipChecker extends EmptyOnClickRowChecker {
031
032 public UserSiteMembershipChecker(
033 RenderResponse renderResponse, Group group) {
034
035 super(renderResponse);
036
037 _group = group;
038 }
039
040 @Override
041 public boolean isChecked(Object obj) {
042 User user = null;
043
044 if (obj instanceof User) {
045 user = (User)obj;
046 }
047 else if (obj instanceof Object[]) {
048 user = (User)((Object[])obj)[0];
049 }
050 else {
051 throw new IllegalArgumentException(obj + " is not a user");
052 }
053
054 try {
055 return UserLocalServiceUtil.hasGroupUser(
056 _group.getGroupId(), user.getUserId());
057 }
058 catch (Exception e) {
059 _log.error(e, e);
060
061 return false;
062 }
063 }
064
065 @Override
066 public boolean isDisabled(Object obj) {
067 User user = (User)obj;
068
069 try {
070 if (isChecked(user)) {
071 return true;
072 }
073
074 if (!SiteMembershipPolicyUtil.isMembershipAllowed(
075 user.getUserId(), _group.getGroupId())) {
076
077 return true;
078 }
079 }
080 catch (Exception e) {
081 _log.error(e, e);
082 }
083
084 return super.isDisabled(obj);
085 }
086
087 private static final Log _log = LogFactoryUtil.getLog(
088 UserSiteMembershipChecker.class);
089
090 private final Group _group;
091
092 }