Restore password, need senmail

This commit is contained in:
JoseluCross
2018-10-18 20:19:30 +02:00
parent 8e5d88cd3f
commit cb7a16984b
3 changed files with 53 additions and 4 deletions

View File

@@ -30,9 +30,10 @@
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="col-sm-offset-2 col-sm-10"> <div class="col-sm-offset-2 col-sm-8">
<button type="submit" class="btn btn-success">Submit</button> <button type="submit" class="btn btn-success">Submit</button>
</div> </div>
<div><a class="text-info" href="{{ path('restore') }}">Restore Password</a> </div>
</div> </div>
<div class="col-sm-offset-1 col-sm-12"> <div class="col-sm-offset-1 col-sm-12">
<button onclick="nowRegister()" id="registerbtn" class="btn btn-primary">Don't have an account yet? Sing up</button> <button onclick="nowRegister()" id="registerbtn" class="btn btn-primary">Don't have an account yet? Sing up</button>

View File

@@ -0,0 +1,35 @@
{% extends app.fronthtml~"/base.twig" %}
{% block content %}
<div id="register" style="">
<form class="form-horizontal" method="post" id="restore">
<div class="form-group">
<label class="control-label"><strong>Restore your password</strong></label>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="emailre">Email:</label>
<div class="col-sm-10">
<input class="form-control" required="required" name="emailre" id="emailre" placeholder="Enter email" type="email">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-success">Send me an email</button>
</div>
</div>
</form>
</div>
{% endblock %}
{% block js %}
<script>
$(document).ready(function() {
var options = {success: function(data){
console.log(data);
},
url: '{{ path("restore")}}',
} ;
$("#restore").ajaxForm(options);
});
</script>
{% endblock %}

View File

@@ -415,14 +415,26 @@ $app->get('/add', function(Request $request) use($app){
})->bind('add')->method('GET|POST'); })->bind('add')->method('GET|POST');
$app->get('/restore', function(Request $request) use($app){
if($request->getMethod()=="POST"){
return $app['data']->createRestoreToken($request->get('emailre'));
}
$page = array("title"=>"Restore your password",
"description"=>"None",
"page" =>"None");
return $app['twig']->render($app['fronthtml']."/restore.twig",array("page" => $page));
})->bind('restore')->method('GET|POST');
$app->get('/restore/{nick}/{token}-{timestamp}', function(Request $request, $nick, $token, $timestamp) use($app){ $app->get('/restore/{nick}/{token}-{timestamp}', function(Request $request, $nick, $token, $timestamp) use($app){
$time = 3600; //An hour $time = 3600; //An hour
$now = time(); $now = time();
if($now - $timestamp > $time){ if($now - $timestamp > $time){
$app->abort(401); $app->abort(408);
}else{ }else{
if(!$app['data']->checkRestoreToken($nick,$token,$timestamp)) if(!$app['data']->checkRestoreToken($nick,$token,$timestamp))
$app->abort(408); $app->abort(401);
if($request->getMethod()=='POST'){ if($request->getMethod()=='POST'){
$pass = $request->get('pwdre'); $pass = $request->get('pwdre');
$passre = $request->get('pwdre-re'); $passre = $request->get('pwdre-re');
@@ -430,12 +442,13 @@ $app->get('/restore/{nick}/{token}-{timestamp}', function(Request $request, $nic
return "NO_MATCH"; return "NO_MATCH";
} }
else{ else{
$idu = $app['daata']->loadIDU($request->get('emailre')); $idu = $app['data']->loadIDU($request->get('emailre'));
$iduC = $app['data']->loadIDU($nick,'nick'); $iduC = $app['data']->loadIDU($nick,'nick');
if($idu != $iduC) if($idu != $iduC)
return "BAD_EMAIL"; return "BAD_EMAIL";
$app['data']->updatePass($idu,$pass); $app['data']->updatePass($idu,$pass);
} }
$app['data']->setToken($idu,"");
return "UPDATE"; return "UPDATE";
}else{ }else{
$page = array( $page = array(