package org.nemesis.forum.webapp.admin.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.nemesis.forum.ForumFactory;
import org.nemesis.forum.Group;
import org.nemesis.forum.ProfileManager;
import org.nemesis.forum.User;
import org.nemesis.forum.exception.NotFoundException;
/**
* @author dlaurent
*
* 20 f�vr. 2003
* AddGroupAction.java
*/
public class AddGroupMemberAction extends BaseAction {
static protected Log log =LogFactory.getLog(AddGroupMemberAction.class);
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
//check logon
checkUser(request);
ActionErrors errors = new ActionErrors();
try {
ForumFactory forumFactory = ForumFactory.getInstance(getAuthToken(request));
ProfileManager manager = forumFactory.getProfileManager();
User user = manager.getUser(getAuthToken(request).getUserID());
Group group = manager.getGroup((String)PropertyUtils.getSimpleProperty(form, "group"));
request.setAttribute("id",group.getID()+"") ;
User u = manager.getUser((String)PropertyUtils.getSimpleProperty(form, "username"));
//check permission
checkPermission(request,OperationConstants.ADD_GROUP_MEMBER,group);
// add user as an administrator of the group
group.addMember(u);
} catch (NotFoundException e) {
errors.add("general", new ActionError("groupUser.error.notFound"));
} catch (Exception e) {
String eid=this.getClass().getName()+"_"+System.currentTimeMillis();
log.error("eid:"+eid+"\nsessionID" +request.getSession().getId(),e) ;
errors.add("general", new ActionError("error.general","erreur id:"+eid));
}
if (!errors.isEmpty()) {
saveErrors(request, errors);
return mapping.findForward("success");
}
removeFormBean(mapping, request);
return mapping.findForward("success");
}
protected void removeFormBean(ActionMapping mapping, HttpServletRequest request) {
// Remove the obsolete form bean
if (mapping.getAttribute() != null) {
if ("request".equals(mapping.getScope())) {
request.removeAttribute(mapping.getAttribute());
} else {
HttpSession session = request.getSession();
session.removeAttribute(mapping.getAttribute());
}
}
}
}