X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FMyDetailsForm.java;h=813902289e623f925e5b89c2d9dad7ef10123169;hp=d6b65e01842877154e0fc1c1307881ff96b2152a;hb=3d1e7ec232f250e1ecb8180675d609b34c62b8c2;hpb=cc23db343f69bfc0c5ef72b0627254ae5389e441 diff --git a/src/org/cacert/gigi/pages/account/MyDetailsForm.java b/src/org/cacert/gigi/pages/account/MyDetailsForm.java index d6b65e01..81390228 100644 --- a/src/org/cacert/gigi/pages/account/MyDetailsForm.java +++ b/src/org/cacert/gigi/pages/account/MyDetailsForm.java @@ -15,6 +15,7 @@ import org.cacert.gigi.output.ArrayIterable; import org.cacert.gigi.output.CountrySelector; import org.cacert.gigi.output.DateSelector; import org.cacert.gigi.output.GroupIterator; +import org.cacert.gigi.output.GroupSelector; import org.cacert.gigi.output.NameInput; import org.cacert.gigi.output.template.Form; import org.cacert.gigi.output.template.Template; @@ -38,6 +39,8 @@ public class MyDetailsForm extends Form { private CountrySelector cs; + private GroupSelector selectedGroup = new GroupSelector("groupToModify", false); + public MyDetailsForm(HttpServletRequest hsr, User target) { super(hsr); this.target = target; @@ -100,6 +103,18 @@ public class MyDetailsForm extends Form { cs.update(req); target.setResidenceCountry(cs.getCountry()); } + + if ("addGroup".equals(action) || "removeGroup".equals(action)) { + selectedGroup.update(req); + Group toMod = selectedGroup.getGroup(); + if ("addGroup".equals(action)) { + target.grantGroup(target, toMod); + } else { + target.revokeGroup(target, toMod); + } + return true; + } + } catch (GigiApiException e) { e.format(out, Page.getLanguage(req)); return false; @@ -136,13 +151,8 @@ public class MyDetailsForm extends Form { }); vars.put("name", ni); - final Set gr = target.getGroups(); names.output(out, l, vars); - vars.put("support-groups", new GroupIterator(gr.iterator(), true)); - vars.put("groups", new GroupIterator(gr.iterator(), false)); - roles.output(out, l, vars); - vars.put("residenceCountry", cs); if (target.getReceivedAssurances().length == 0) { vars.put("DoB", ds); @@ -152,6 +162,11 @@ public class MyDetailsForm extends Form { assured.output(out, l, vars); } + final Set gr = target.getGroups(); + vars.put("support-groups", new GroupIterator(gr.iterator(), true)); + vars.put("groups", new GroupIterator(gr.iterator(), false)); + vars.put("groupSelector", selectedGroup); + roles.output(out, l, vars); } }