]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.java
fix: pootle does not like translations in line number 0
[gigi.git] / src / org / cacert / gigi / pages / admin / support / SupportUserDetailsForm.java
index 685adf3d7ce2398141f00b35438c2dad06f1587f..a85952f658d5afacbf89e8c5687e6fb4ad89985a 100644 (file)
@@ -3,7 +3,9 @@ package org.cacert.gigi.pages.admin.support;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.net.URLEncoder;
+import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -15,7 +17,9 @@ import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.email.Sendmail;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.DateSelector;
+import org.cacert.gigi.output.GroupSelector;
 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.Page;
 import org.cacert.gigi.pages.PasswordResetPage;
@@ -30,6 +34,8 @@ public class SupportUserDetailsForm extends Form {
 
     private DateSelector dobSelector;
 
+    private GroupSelector value = new GroupSelector("groupToModify");
+
     static {
         t = new Template(FindDomainForm.class.getResource("SupportUserDetailsForm.templ"));
     }
@@ -45,6 +51,19 @@ public class SupportUserDetailsForm extends Form {
         if (user.getTicket() == null) {
             return false;
         }
+        if ((req.getParameter("detailupdate") != null ? 1 : 0) + (req.getParameter("grant") != null ? 1 : 0) + (req.getParameter("deny") != null ? 1 : 0) + (req.getParameter("resetPass") != null ? 1 : 0) != 1) {
+            throw new GigiApiException("More than one action requested!");
+        }
+        if (req.getParameter("grant") != null || req.getParameter("deny") != null) {
+            value.update(req);
+            Group toMod = value.getGroup();
+            if (req.getParameter("grant") != null) {
+                user.grant(toMod);
+            } else {
+                user.revoke(toMod);
+            }
+            return true;
+        }
         if (req.getParameter("resetPass") != null) {
             String aword = req.getParameter("aword");
             if (aword == null || aword.equals("")) {
@@ -56,7 +75,8 @@ public class SupportUserDetailsForm extends Form {
                 Language l = Language.getInstance(user.getTargetUser().getPreferredLocale());
                 StringBuffer body = new StringBuffer();
                 body.append(l.getTranslation("Hi,") + "\n\n");
-                body.append(l.getTranslation("A password reset was triggered. Please enter the required text sent to you by support on this page: \nhttps://"));
+                body.append(l.getTranslation("A password reset was triggered. Please enter the required text sent to you by support on this page:"));
+                body.append("\n\nhttps://");
                 body.append(ServerConstants.getWwwHostNamePortSecure() + PasswordResetPage.PATH);
                 body.append("?id=");
                 body.append(id);
@@ -66,8 +86,8 @@ public class SupportUserDetailsForm extends Form {
                 body.append("\n");
                 body.append(l.getTranslation("Best regards"));
                 body.append("\n");
-                body.append(l.getTranslation("CAcert.org Support!"));
-                Sendmail.getInstance().sendmail(user.getTargetUser().getEmail(), "[CAcert.org] " + l.getTranslation("Password reset by support."), body.toString(), "support@cacert.org", null, null, null, null, false);
+                body.append(l.getTranslation("SomeCA.org Support!"));
+                Sendmail.getInstance().sendmail(user.getTargetUser().getEmail(), "[SomeCA.org] " + l.getTranslation("Password reset by support."), body.toString(), "support@cacert.org", null, null, null, null, false);
                 out.println(Page.getLanguage(req).getTranslation("Password reset successful."));
             } catch (IOException e) {
                 e.printStackTrace();
@@ -86,8 +106,10 @@ public class SupportUserDetailsForm extends Form {
             throw new GigiApiException("Invalid date of birth!");
         }
         Name newName = new Name(fname, lname, mname, suffix);
-        if (user.setDob(dobSelector.getDate()) | user.setName(newName)) {
-            user.submitSupportAction();
+        synchronized (user.getTargetUser()) {
+            if (user.setDob(dobSelector.getDate()) | user.setName(newName)) {
+                user.submitSupportAction();
+            }
         }
         return true;
     }
@@ -103,16 +125,25 @@ public class SupportUserDetailsForm extends Form {
         vars.put("suffix", name.getSuffix());
         vars.put("assurer", user.canAssure());
         vars.put("dob", dobSelector);
-        vars.put("blockedassurer", user.isInGroup(Group.BLOCKEDASSURER));
-        vars.put("codesign", user.isInGroup(Group.CODESIGNING));
-        vars.put("orgassurer", user.isInGroup(Group.ORGASSURER));
         vars.put("assurancepoints", user.getAssurancePoints());
-        vars.put("blockedassuree", user.isInGroup(Group.BLOCKEDASSUREE));
-        vars.put("ttpassurer", user.isInGroup(Group.TTP_ASSURER));
-        vars.put("ttpapplicant", user.isInGroup(Group.TTP_APPLICANT));
-        vars.put("blockedlogin", user.isInGroup(Group.BLOCKEDLOGIN));
-        vars.put("supporter", user.isInGroup(Group.SUPPORTER));
+        vars.put("exppoints", user.getExperiencePoints());
         vars.put("id", user.getId());
+        final Set<Group> gr = user.getGroups();
+        vars.put("groups", new IterableDataset() {
+
+            Iterator<Group> i = gr.iterator();
+
+            @Override
+            public boolean next(Language l, Map<String, Object> vars) {
+                if ( !i.hasNext()) {
+                    return false;
+                }
+                Group g = i.next();
+                vars.put("group_name", g.getName());
+                return true;
+            }
+        });
+        vars.put("groupSelector", value);
         t.output(out, l, vars);
     }