/** * $RCSfile$ * $Revision$ * $Date$ * * Copyright (C) 2004 Jive Software. All rights reserved. * * This software is published under the terms of the GNU Public License (GPL), * a copy of which is included in this distribution. */ package org.jivesoftware.messenger.spi; import org.jivesoftware.messenger.XMPPAddress; import org.jivesoftware.messenger.auth.AuthToken; import org.jivesoftware.messenger.auth.Permissions; import org.jivesoftware.messenger.auth.UnauthorizedException; import org.jivesoftware.messenger.user.RosterItem; import java.util.List; /** * Standard security proxy * * @author Iain Shigeoka */ public class RosterItemProxy implements RosterItem { private RosterItem item; private AuthToken authToken; private Permissions permissions; public RosterItemProxy(RosterItem item, AuthToken authToken, Permissions permissions) { this.authToken = authToken; this.permissions = permissions; this.item = item; } public SubType getSubStatus() { return item.getSubStatus(); } public void setSubStatus(SubType subStatus) throws UnauthorizedException { if (permissions.hasPermission(Permissions.SYSTEM_ADMIN | Permissions.USER_ADMIN)) { item.setSubStatus(subStatus); } else { throw new org.jivesoftware.messenger.auth.UnauthorizedException(); } } public AskType getAskStatus() { return item.getAskStatus(); } public void setAskStatus(AskType askStatus) throws UnauthorizedException { if (permissions.hasPermission(Permissions.SYSTEM_ADMIN | Permissions.USER_ADMIN)) { item.setAskStatus(askStatus); } else { throw new UnauthorizedException(); } } public RecvType getRecvStatus() { return item.getRecvStatus(); } public void setRecvStatus(RecvType recvStatus) throws UnauthorizedException { if (permissions.hasPermission(Permissions.SYSTEM_ADMIN | Permissions.USER_ADMIN)) { item.setRecvStatus(recvStatus); } else { throw new UnauthorizedException(); } } public XMPPAddress getJid() { return item.getJid(); } public String getNickname() { return item.getNickname(); } public void setNickname(String nickname) throws UnauthorizedException { if (permissions.hasPermission(Permissions.SYSTEM_ADMIN | Permissions.USER_ADMIN)) { item.setNickname(nickname); } else { throw new UnauthorizedException(); } } public List getGroups() { return item.getGroups(); } public void setGroups(List groups) throws UnauthorizedException { if (permissions.hasPermission(Permissions.SYSTEM_ADMIN | Permissions.USER_ADMIN)) { item.setGroups(groups); } else { throw new UnauthorizedException(); } } }