package is.idega.idegaweb.member.presentation;
import is.idega.idegaweb.member.util.IWMemberConstants;
import java.rmi.RemoteException;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import com.idega.business.IBOLookup;
import com.idega.business.IBOLookupException;
import com.idega.idegaweb.IWBundle;
import com.idega.idegaweb.IWMainApplicationSettings;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.IWContext;
import com.idega.presentation.Image;
import com.idega.user.app.ToolbarElement;
import com.idega.user.business.UserBusiness;
import com.idega.user.data.Group;
import com.idega.user.data.User;
/**
* <p>Title: idegaWeb</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: idega Software</p>
* @author <a href="thomas@idega.is">Thomas Hilbig</a>
* @version 1.0
* Created on Aug 27, 2004
*/
public class ClubMemberExchangeWindowPlugin implements ToolbarElement {
private static final String IW_BUNDLE_IDENTIFIER = "is.idega.idegaweb.member";
/* (non-Javadoc)
* @see com.idega.user.app.ToolbarElement#getButtonImage(com.idega.presentation.IWContext)
*/
public Image getButtonImage(IWContext iwc) {
return null;
}
/* (non-Javadoc)
* @see com.idega.user.app.ToolbarElement#getName(com.idega.presentation.IWContext)
*/
public String getName(IWContext iwc) {
IWBundle bundle = iwc.getApplicationContext().getIWMainApplication().getBundle(IW_BUNDLE_IDENTIFIER);
IWResourceBundle resourceBundle = bundle.getResourceBundle(iwc);
return resourceBundle.getLocalizedString("button.club_member_exchange", "Club Exchange");
}
/* (non-Javadoc)
* @see com.idega.user.app.ToolbarElement#getPresentationObjectClass(com.idega.presentation.IWContext)
*/
public Class getPresentationObjectClass(IWContext iwc) {
return ClubMemberExchangeWindow.class;
}
/* (non-Javadoc)
* @see com.idega.user.app.ToolbarElement#getParameterMap(com.idega.presentation.IWContext)
*/
public Map getParameterMap(IWContext iwc) {
return null;
}
/* (non-Javadoc)
* @see com.idega.user.app.ToolbarElement#isValid(com.idega.presentation.IWContext)
*/
public boolean isValid(IWContext iwc) {
IWMainApplicationSettings settings = iwc.getApplicationSettings();
if (settings.getProperty("temp_show_is_related_stuff") == null) {
return false;
}
try {
return checkUsersPermission(iwc);
}
catch (RemoteException e) {
throw new RuntimeException("[ClubMemberExchangeWindowPlugin]: Can't check user's permission");
}
}
/* (non-Javadoc)
* @see com.idega.user.app.ToolbarElement#getPriority(com.idega.presentation.IWContext)
*/
public int getPriority(IWContext iwc) {
return 7;
}
/* (non-Javadoc)
* @see com.idega.user.app.ToolbarElement#isButton(com.idega.presentation.IWContext)
*/
public boolean isButton(IWContext iwc) {
return false;
}
private boolean checkUsersPermission(IWContext iwc) throws RemoteException {
if (iwc.isSuperAdmin()) {
return true;
}
UserBusiness userBusiness = getUserBusiness(iwc);
User user = iwc.getCurrentUser();
Collection groups = userBusiness.getUsersTopGroupNodesByViewAndOwnerPermissions(user, iwc);
Iterator iterator = groups.iterator();
while (iterator.hasNext()) {
Group group = (Group) iterator.next();
String groupType = group.getGroupType();
if (IWMemberConstants.GROUP_TYPE_FEDERATION.equals(groupType) ||
IWMemberConstants.GROUP_TYPE_LEAGUE.equals(groupType)) {
return true;
}
}
return false;
}
private UserBusiness getUserBusiness(IWContext iwc) {
try {
return (UserBusiness) IBOLookup.getServiceInstance(iwc, UserBusiness.class);
}
catch (IBOLookupException ex) {
throw new RuntimeException("[ClubMemberExchangeWindowPlugin]: Can't retrieve UserBusiness");
}
}
}