--- /dev/null
+package org.cacert.gigi.output;
+
+import java.util.Iterator;
+import java.util.Map;
+
+import org.cacert.gigi.dbObjects.Group;
+import org.cacert.gigi.localisation.Language;
+import org.cacert.gigi.output.template.IterableDataset;
+
+public class GroupIterator implements IterableDataset {
+
+ private final boolean asSupport;
+
+ private final Iterator<Group> i;
+
+ public GroupIterator(Iterator<Group> i, boolean asSupport) {
+ this.asSupport = asSupport;
+ this.i = i;
+ }
+
+ private int j = 0;
+
+ @Override
+ public boolean next(Language l, Map<String, Object> vars) {
+ while (i.hasNext()) {
+ Group g = i.next();
+ if (g.isManagedBySupport() == asSupport) {
+ vars.put("group_concat", (j > 0 ? ", " : ""));
+ vars.put("group", g.getName());
+ j++;
+ return true;
+ }
+ }
+
+ return false;
+ }
+}
out.println("<select name='" + name + "'>");
for (Group g : Group.values()) {
if (supportFlag == g.isManagedBySupport()) {
- out.print("<option name='" + g.getDatabaseName());
+ out.print("<option value='" + g.getDatabaseName());
if (g.equals(value)) {
out.print(" selected");
}
- out.println("'>" + g.getDatabaseName() + "</option>");
+ out.println("'>");
+ g.getName().output(out, l, vars);
+ out.println("</option>");
}
}
out.println("</select>");
import java.io.PrintWriter;
import java.util.Map;
+import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import org.cacert.gigi.GigiApiException;
+import org.cacert.gigi.dbObjects.Group;
import org.cacert.gigi.dbObjects.Name;
import org.cacert.gigi.dbObjects.User;
import org.cacert.gigi.localisation.Language;
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.NameInput;
import org.cacert.gigi.output.template.Form;
import org.cacert.gigi.output.template.Template;
private static final Template names = new Template(MyDetailsForm.class.getResource("NamesForm.templ"));
+ private static final Template roles = new Template(MyDetailsForm.class.getResource("MyDetailsRoles.templ"));
+
private User target;
private DateSelector ds;
});
vars.put("name", ni);
+ final Set<Group> 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);
vars.put("DoB", target.getDoB());
assured.output(out, l, vars);
}
+
}
}
--- /dev/null
+<div class="panel panel-default">
+ <div class="panel-heading"><?=_Permissions / Group Assignments?></div>
+ <div class="panel-body">
+ <h4><?=_Support Managed Permissions?>:</h4>
+ <? foreach($support-groups) { ?><?=$group_concat?><?=$group?><? } ?>
+ <h4><?=_User Managed Permissions?>:</h4>
+ <? foreach($groups) { ?><?=$group_concat?><?=$group?><? } ?>
+ </div>
+</div>
\ No newline at end of file
package org.cacert.gigi.pages.admin.support;
import java.io.PrintWriter;
-import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.cacert.gigi.localisation.Language;
import org.cacert.gigi.output.ArrayIterable;
import org.cacert.gigi.output.DateSelector;
+import org.cacert.gigi.output.GroupIterator;
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.Outputable;
import org.cacert.gigi.output.template.SprintfCommand;
import org.cacert.gigi.output.template.Template;
vars.put("assurancepoints", user.getAssurancePoints());
vars.put("exppoints", user.getExperiencePoints());
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("support-groups", new GroupIterator(gr.iterator(), true));
+ vars.put("groups", new GroupIterator(gr.iterator(), false));
vars.put("groupSelector", value);
t.output(out, l, vars);
}
</tr>
<tr>
- <td><?=_Groups?>:</td>
- <td><p><? foreach($groups) { ?><?=$group_name?>, <? } ?></p>
+ <td><?=_Support Managed Groups?>:</td>
+ <td><p><? foreach($support-groups) { ?><?=$group_concat?><?=$group?><? } ?></p>
<p><?=$groupSelector?><input class="btn btn-info" type='submit' value='<?=_Grant Group?>' name='grant'> <input class="btn btn-info" type='submit' value='<?=_Deny Group?>' name='deny'></p>
</td>
</tr>
+
+ <tr>
+ <td><?=_User Managed Groups?>:</td>
+ <td><p><? foreach($groups) { ?><?=$group_concat?><?=$group?><? } ?></p>
+ </td>
+ </tr>
+
<tr>
<td><?=_Reset Password?>:</td>
<td><input type="text" name="aword"> <input class="btn btn-primary" type="submit" value="<?=_Reset Password?>" name="resetPass"></td>