import org.cacert.gigi.dbObjects.SupportedUser;
import org.cacert.gigi.dbObjects.User;
import org.cacert.gigi.localisation.Language;
+import org.cacert.gigi.output.ArrayIterable;
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.Outputable;
+import org.cacert.gigi.output.template.SprintfCommand;
import org.cacert.gigi.output.template.Template;
+import org.cacert.gigi.output.template.TranslateCommand;
import org.cacert.gigi.pages.PasswordResetPage;
public class SupportUserDetailsForm extends Form {
- private static Template t;
+ private static final Template t = new Template(FindUserByDomainForm.class.getResource("SupportUserDetailsForm.templ"));
private SupportedUser user;
private GroupSelector value = new GroupSelector("groupToModify");
- static {
- t = new Template(FindDomainForm.class.getResource("SupportUserDetailsForm.templ"));
- }
-
public SupportUserDetailsForm(HttpServletRequest hsr, SupportedUser user) {
super(hsr);
this.user = user;
throw new GigiApiException("More than one action requested!");
}
if (req.getParameter("grant") != null || req.getParameter("deny") != null) {
+ String actionType = "granted";
value.update(req);
Group toMod = value.getGroup();
if (req.getParameter("grant") != null) {
user.grant(toMod);
} else {
+ actionType = "revoked";
user.revoke(toMod);
}
+ String subject = "Change Group Permissions";
+ Outputable message = SprintfCommand.createSimple("The group permission {0} was {1}.", toMod.getDatabaseName(), actionType);
+ user.sendSupportNotification(subject, message);
return true;
}
if (req.getParameter("resetPass") != null) {
String method = l.getTranslation("A password reset was triggered. Please enter the required text sent to you by support on this page:");
String subject = l.getTranslation("Password reset by support.");
PasswordResetPage.initPasswordResetProcess(out, user.getTargetUser(), req, aword, l, method, subject);
+ Outputable message = new TranslateCommand("A password reset was triggered and an email was sent to user.");
+ user.sendSupportNotification(subject, message);
return true;
}
dobSelector.update(req);
- String fname = req.getParameter("fname");
- String mname = req.getParameter("mname");
- String lname = req.getParameter("lname");
- String suffix = req.getParameter("suffix");
- if (fname == null || mname == null || lname == null | suffix == null) {
- throw new GigiApiException("Incomplete request!");
- }
if ( !dobSelector.isValid()) {
throw new GigiApiException("Invalid date of birth!");
}
- Name newName = new Name(fname, lname, mname, suffix);
- synchronized (user.getTargetUser()) {
- if (user.setDob(dobSelector.getDate()) | user.setName(newName)) {
- user.submitSupportAction();
- }
- }
+ user.setDob(dobSelector.getDate());
+
+ String subject = "Change Account Data";
+ Outputable message = new TranslateCommand("The account data was changed.");
+ user.sendSupportNotification(subject, message);
return true;
}
@Override
protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
User user = this.user.getTargetUser();
- Name name = user.getName();
vars.put("mail", user.getEmail());
- vars.put("fname", name.getFname());
- vars.put("mname", name.getMname());
- vars.put("lname", name.getLname());
- vars.put("suffix", name.getSuffix());
+ vars.put("status", l.getTranslation(user.isValidEmail(user.getEmail()) ? "verified" : "not verified"));
+ vars.put("exNames", new ArrayIterable<Name>(user.getNames()) {
+
+ @Override
+ public void apply(Name t, Language l, Map<String, Object> vars) {
+ vars.put("name", t);
+ vars.put("points", Integer.toString(t.getAssurancePoints()));
+ }
+
+ });
vars.put("assurer", user.canAssure());
vars.put("dob", dobSelector);
vars.put("assurancepoints", user.getAssurancePoints());
vars.put("exppoints", user.getExperiencePoints());
- vars.put("id", user.getId());
final Set<Group> gr = user.getGroups();
vars.put("groups", new IterableDataset() {