package de.flower.rmt.ui.page.login;
import de.flower.common.ui.ajax.markup.html.form.AjaxSubmitLink;
import de.flower.rmt.model.db.entity.User;
import de.flower.rmt.service.IUserManager;
import de.flower.rmt.ui.markup.html.panel.SimpleFeedbackPanel;
import de.flower.rmt.ui.page.base.AbstractBasePage;
import de.flower.rmt.ui.page.base.AnonymousNavigationPanel;
import org.apache.commons.lang.math.RandomUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.link.ExternalLink;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
/**
* @author flowerrrr
*/
public class PasswordForgottenPage extends AbstractBasePage {
@SpringBean
private IUserManager userManager;
private static String[] links = new String[]{
"http://www.buerlecithin.de/",
"http://www.dr-poehlmann.de/poehlmann/taiginseng/",
// "http://www.gedaechtnistraining.net/",
// "http://www.oekotest.de/cgi/index.cgi?artnr=38460;bernr=06;co=",
// "http://www.lizzynet.de/wws/32371748.php",
"http://keepass.info/",
};
private String email;
public PasswordForgottenPage() {
add(new AnonymousNavigationPanel());
// a bit of a hack, this form.
Form form = new Form("form", new CompoundPropertyModel(this));
form.setOutputMarkupId(true);
add(form);
form.add(new SimpleFeedbackPanel(null));
form.add(new TextField("email").setRequired(true));
form.add(new ExternalLink("emailForgottenLink", getLinkModel()));
AjaxSubmitLink submitButton;
form.add(submitButton = new AjaxSubmitLink("submitButton") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
User user = userManager.findByUsername(email);
if (user == null) {
// unknown email address
warn("Unbekannte E-Mail-Adresse.");
} else {
userManager.resetPassword(user, true);
// generate feedback message
info("E-Mail mit neuem Passwort wurde versendet.");
}
target.add(form);
}
});
// enable form submit by hitting RETURN
form.setDefaultButton(submitButton);
}
public String getEmail() {
return email;
}
public void setEmail(final String email) {
this.email = email;
}
private IModel<String> getLinkModel() {
return new AbstractReadOnlyModel<String>() {
@Override
public String getObject() {
return links[RandomUtils.nextInt(links.length)];
}
};
}
}