/** * ESUP-Portail Helpdesk - Copyright (c) 2004-2009 ESUP-Portail consortium. */ package org.esupportail.helpdesk.domain.userManagement; import java.util.List; import java.util.Map; import org.esupportail.commons.utils.Assert; import org.esupportail.helpdesk.domain.beans.User; import org.esupportail.portal.ws.client.PortalGroup; import org.esupportail.portal.ws.client.PortalService; import org.esupportail.portal.ws.client.PortalUser; import org.esupportail.portal.ws.client.exceptions.PortalGroupNotFoundException; import org.esupportail.portal.ws.client.exceptions.PortalUserNotFoundException; /** * A user manager that can talk to a portal. */ @SuppressWarnings("serial") public abstract class AbstractPortalAwareUserManager extends AbstractUserManager { /** * {@link PortalService}. */ private PortalService portalService; /** * Constructor. */ public AbstractPortalAwareUserManager() { super(false); } /** * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet() */ @Override public void afterPropertiesSet() { super.afterPropertiesSet(); Assert.notNull(this.portalService, "property portalService of class " + this.getClass().getName() + " can not be null"); } /** * @see org.esupportail.helpdesk.domain.userManagement.UserManager#getPortalAttributes( * org.esupportail.helpdesk.domain.beans.User) */ @Override public Map<String, List<String>> getPortalAttributes(final User user) { try { return portalService.getUserAttributes(user.getRealId()); } catch (PortalUserNotFoundException e) { return null; } } /** * @see org.esupportail.helpdesk.domain.userManagement.AbstractUserManager#isMemberOfPortalGroup( * org.esupportail.helpdesk.domain.beans.User, java.lang.String) */ @Override public boolean isMemberOfPortalGroup( final User user, final String groupId) { try { PortalGroup portalGroup = portalService.getGroupById(groupId); PortalUser portalUser = portalService.getUser(user.getRealId()); return portalService.isUserMemberOfGroup(portalUser, portalGroup); } catch (PortalGroupNotFoundException e) { return false; } catch (PortalUserNotFoundException e) { return false; } } /** * @see org.esupportail.helpdesk.domain.userManagement.AbstractUserManager#isMemberOfPortalDistinguishedGroup( * org.esupportail.helpdesk.domain.beans.User, java.lang.String) */ @Override public boolean isMemberOfPortalDistinguishedGroup( final User user, final String groupName) { try { PortalGroup portalGroup = portalService.getGroupByName(groupName); PortalUser portalUser = portalService.getUser(user.getRealId()); return portalService.isUserMemberOfGroup(portalUser, portalGroup); } catch (PortalGroupNotFoundException e) { return false; } catch (PortalUserNotFoundException e) { return false; } } /** * @return the portalService */ protected PortalService getPortalService() { return portalService; } /** * @param portalService the portalService to set */ public void setPortalService(final PortalService portalService) { this.portalService = portalService; } }