]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/orga/AffiliationForm.java
add: Allow multiple names, name-schemes, multi-name-assurance, etc.
[gigi.git] / src / org / cacert / gigi / pages / orga / AffiliationForm.java
index b9a42e7acbfc368d7badc2ca593678e18f42fbcc..6ffc8822d142ace91992f4b171ede427bb72e338 100644 (file)
@@ -12,10 +12,11 @@ import org.cacert.gigi.dbObjects.Organisation;
 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 {
 
@@ -30,16 +31,23 @@ public class AffiliationForm extends Form {
 
     @Override
     public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
-        User toRemove = User.getByEmail(req.getParameter("del"));
-        if (toRemove != null) {
-            o.removeAdmin(toRemove, LoginPage.getUser(req));
-        }
-
-        User byEmail = User.getByEmail(req.getParameter("email"));
-        if (byEmail != null) {
-            o.addAdmin(byEmail, LoginPage.getUser(req), req.getParameter("master") != null);
+        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."));
+            }
         }
-        return true;
+        out.println(Page.getLanguage(req).getTranslation("No action could have been carried out."));
+        return false;
     }
 
     @Override
@@ -51,10 +59,11 @@ public class AffiliationForm extends Form {
 
             @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("name", aff.getTarget().getPreferredName());
                 vars.put("master", aff.isMaster() ? l.getTranslation("master") : "");
                 vars.put("e-mail", aff.getTarget().getEmail());
                 return true;