package controllers.account.settings;
import controllers.Secured;
import models.Token;
import models.User;
import play.Logger;
import play.i18n.Messages;
import play.mvc.Controller;
import play.mvc.Result;
import play.mvc.Security;
import views.html.account.settings.password;
import play.libs.mailer.Email;
import play.libs.mailer.MailerClient;
import javax.inject.Inject;
import java.net.MalformedURLException;
/**
* User: yesnault
* Date: 15/05/12
*/
@Security.Authenticated(Secured.class)
public class Password extends Controller {
@Inject
MailerClient mailerClient;
/**
* Password Page. Ask the user to change his password.
*
* @return index settings
*/
public Result index() {
return ok(password.render(User.findByEmail(request().username())));
}
/**
* Send a mail with the reset link.
*
* @return password page with flash error or success
*/
public Result runPassword() {
User user = User.findByEmail(request().username());
try {
Token t = new Token();
t.sendMailResetPassword(user,mailerClient);
flash("success", Messages.get("resetpassword.mailsent"));
return ok(password.render(user));
} catch (MalformedURLException e) {
Logger.error("Cannot validate URL", e);
flash("error", Messages.get("error.technical"));
}
return badRequest(password.render(user));
}
}