import org.cacert.gigi.dbObjects.Organisation.Affiliation;
import org.cacert.gigi.dbObjects.User;
import org.cacert.gigi.localisation.Language;
-import org.cacert.gigi.output.Form;
+import org.cacert.gigi.output.template.Form;
import org.cacert.gigi.output.template.IterableDataset;
import org.cacert.gigi.output.template.Template;
import org.cacert.gigi.pages.LoginPage;
+import org.cacert.gigi.pages.Page;
public class AffiliationForm extends Form {
@Override
public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
- o.addAdmin(User.getByEmail(req.getParameter("email")), LoginPage.getUser(req), req.getParameter("master") != null);
- return true;
+ if (req.getParameter("del") != null) {
+ User toRemove = User.getByEmail(req.getParameter("del"));
+ if (toRemove != null) {
+ o.removeAdmin(toRemove, LoginPage.getUser(req));
+ return true;
+ }
+ } else if (req.getParameter("do_affiliate") != null) {
+ User byEmail = User.getByEmail(req.getParameter("email"));
+ if (byEmail != null && byEmail.canAssure()) {
+ o.addAdmin(byEmail, LoginPage.getUser(req), req.getParameter("master") != null);
+ return true;
+ } else {
+ out.println(Page.getLanguage(req).getTranslation("Requested user is not a RA Agent. We need a RA Agent here."));
+ }
+ }
+ out.println(Page.getLanguage(req).getTranslation("No action could have been carried out."));
+ return false;
}
@Override
@Override
public boolean next(Language l, Map<String, Object> vars) {
- if ( !iter.hasNext())
+ if ( !iter.hasNext()) {
return false;
+ }
Affiliation aff = iter.next();
- vars.put("name", aff.getTarget().getName());
- vars.put("master", aff.isMaster() ? l.getTranslation("master") : "");
+ vars.put("name", aff.getTarget().getPreferredName());
+ vars.put("master", aff.isMaster() ? l.getTranslation("Master") : "");
+ vars.put("e-mail", aff.getTarget().getEmail());
return true;
}
});