Commit 0b9646f7b64af429afd6935347b02c64e1f99a37

Authored by Leonardo Merlin
1 parent aa1560ed

Add forgot_password

src/app/components/auth/auth.service.js
@@ -102,10 +102,13 @@ @@ -102,10 +102,13 @@
102 }); 102 });
103 } 103 }
104 104
105 - function forgotPassword (form){  
106 - var url = '/api/v1/forgot_password';  
107 - var data = form.serialize();  
108 - var encodedData = data; 105 + function forgotPassword (data){
  106 + var url = 'http://hom.login.dialoga.gov.br/api/v1/forgot_password';
  107 + var encodedData = ([
  108 + 'value=' + data.login,
  109 + 'captcha_text=' + data.captcha_text,
  110 + 'txtToken_captcha_serpro_gov_br=' + data.txtToken_captcha_serpro_gov_br
  111 + ]).join('&');
109 112
110 return $http 113 return $http
111 .post(url, encodedData) 114 .post(url, encodedData)
@@ -114,11 +117,14 @@ @@ -114,11 +117,14 @@
114 117
115 // 'Verifique seu email para efetuar a troca da senha.' 118 // 'Verifique seu email para efetuar a troca da senha.'
116 $rootScope.$broadcast(AUTH_EVENTS.forgotPasswordSuccess, response); 119 $rootScope.$broadcast(AUTH_EVENTS.forgotPasswordSuccess, response);
  120 +
117 return response; 121 return response;
118 }, function(response) { 122 }, function(response) {
119 // 'Não foi possível requisitar a troca de senha para os dados informados.' 123 // 'Não foi possível requisitar a troca de senha para os dados informados.'
120 $log.debug('AuthService.forgotPassword [FAIL] response', response); 124 $log.debug('AuthService.forgotPassword [FAIL] response', response);
121 $rootScope.$broadcast(AUTH_EVENTS.forgotPasswordFailed); 125 $rootScope.$broadcast(AUTH_EVENTS.forgotPasswordFailed);
  126 +
  127 + return response;
122 }); 128 });
123 } 129 }
124 130
src/app/layout.scss
@@ -123,6 +123,11 @@ @@ -123,6 +123,11 @@
123 margin-left: -2px; 123 margin-left: -2px;
124 } 124 }
125 125
  126 +.vertical-padding {
  127 + padding-top: 15px;
  128 + padding-bottom: 15px;
  129 +}
  130 +
126 .no-space-left { margin-left: 0; padding-left: 0;} 131 .no-space-left { margin-left: 0; padding-left: 0;}
127 .no-space-right { margin-right: 0; padding-right: 0;} 132 .no-space-right { margin-right: 0; padding-right: 0;}
128 133
src/app/pages/auth/auth.controller.js
@@ -173,11 +173,39 @@ @@ -173,11 +173,39 @@
173 }); 173 });
174 }; 174 };
175 175
176 - AuthPageController.prototype.submitRecover = function(recoverForm) { 176 + AuthPageController.prototype.submitRecover = function($event, recoverForm) {
177 var vm = this; 177 var vm = this;
178 178
179 - vm.$log.debug('submitRecover');  
180 - vm.$log.debug('recoverForm', recoverForm); 179 + // get form data
  180 + var data = {
  181 + login: recoverForm.login.$modelValue,
  182 + captcha_text: recoverForm.captcha_text.$modelValue
  183 + };
  184 +
  185 + // get captcha token
  186 + var target = $event.target;
  187 + var $target = angular.element(target);
  188 + var $captcha = $target.find('[name="txtToken_captcha_serpro_gov_br"]');
  189 + data.txtToken_captcha_serpro_gov_br = $captcha.val();
  190 +
  191 + vm.AuthService.forgotPassword(data).then(function(response) {
  192 + vm.$log.debug('recover success.response', response);
  193 +
  194 + vm.successRecoverMessageTitle = 'Pedido enviado sucesso!';
  195 + vm.successRecoverMessage = 'Verifique seu e-mail. Em instantes você receberá um e-mail com um link para redefinir sua senha.';
  196 + // vm.redirectBack();
  197 + }, function(response){
  198 + vm.$log.debug('recover error.response', response);
  199 +
  200 + var message = response.data.message;
  201 + vm.errorRecoverMessage = message;
  202 +
  203 + if(response.data.code === 500){
  204 + vm.internalError = true;
  205 + }
  206 + }).catch(function(error){
  207 + vm.$log.debug('recover catch.error', error);
  208 + });
181 }; 209 };
182 210
183 AuthPageController.prototype.redirectBack = function() { 211 AuthPageController.prototype.redirectBack = function() {
src/app/pages/auth/recover.html
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 </div> 9 </div>
10 </div> 10 </div>
11 </div> 11 </div>
12 - <section role="main" class="section-gray"> 12 + <section role="main" class="section-gray vertical-padding">
13 <div class="container"> 13 <div class="container">
14 <div class="row"> 14 <div class="row">
15 <div ng-if="pageSignin.successRecoverMessage"> 15 <div ng-if="pageSignin.successRecoverMessage">
@@ -20,10 +20,15 @@ @@ -20,10 +20,15 @@
20 title="pageSignin.successRecoverMessageTitle || 'Pronto!'" 20 title="pageSignin.successRecoverMessageTitle || 'Pronto!'"
21 message="pageSignin.successRecoverMessage" 21 message="pageSignin.successRecoverMessage"
22 ></show-message> 22 ></show-message>
  23 + <div class="row">
  24 + <div class="col-sm-8 col-sm-offset-4">
  25 + <p><a ui-sref="inicio">Ir para página inicial</a></p>
  26 + </div>
  27 + </div>
23 </div> 28 </div>
24 </div> 29 </div>
25 </div> 30 </div>
26 - <div ng-if="!pageSignin.currentUser"> 31 + <div ng-if="!pageSignin.successRecoverMessage">
27 <br> 32 <br>
28 <div class="col-sm-8 col-sm-offset-2"> 33 <div class="col-sm-8 col-sm-offset-2">
29 <div class="row" ng-if="pageSignin.errorRecoverMessage"> 34 <div class="row" ng-if="pageSignin.errorRecoverMessage">
@@ -38,11 +43,11 @@ @@ -38,11 +43,11 @@
38 </div> 43 </div>
39 <div class="row"> 44 <div class="row">
40 <div class="col-md-12"> 45 <div class="col-md-12">
41 - <form name="recoverPassForm" ng-submit="pageSignin.submitRecover(pageSignin.credentials)"> 46 + <form name="recoverPassForm" ng-submit="pageSignin.submitRecover($event, recoverPassForm)">
42 <div class="form-group"> 47 <div class="form-group">
43 - <label for="inputUsername">E-mail*</label>  
44 - <input type="email" id="inputUsername" name="inputUsername" class="form-control input-lg" ng-class="{ 'has-error' : recoverPassForm.inputUsername.$invalid && recoverPassForm.inputUsername.$touched }" ng-model="pageSignin.credentials.username" required />  
45 - <validation-messages field=" recoverPassForm.inputUsername"></validation-messages> 48 + <label for="recover-login">E-mail*</label>
  49 + <input type="email" id="recover-login" name="login" class="form-control input-lg" ng-class="{ 'has-error' : recoverPassForm.login.$invalid && recoverPassForm.login.$touched }" ng-model="pageSignin.credentials.username" required />
  50 + <validation-messages field=" recoverPassForm.login"></validation-messages>
46 </div> 51 </div>
47 <div class="form-group"> 52 <div class="form-group">
48 <div id="serpro_captcha" class="captcha"> 53 <div id="serpro_captcha" class="captcha">
@@ -52,7 +57,7 @@ @@ -52,7 +57,7 @@
52 </div> 57 </div>
53 <div class="captcha"> 58 <div class="captcha">
54 <input type="text" name="captcha_text" id="captcha_text" aria-label="Escreva os caracteres do captcha aqui" ng-model="pageSignin.signup.captcha_text" ng-minlength="" ng-maxlength="" required> 59 <input type="text" name="captcha_text" id="captcha_text" aria-label="Escreva os caracteres do captcha aqui" ng-model="pageSignin.signup.captcha_text" ng-minlength="" ng-maxlength="" required>
55 - <validation-messages field="signupForm.captcha_text"></validation-messages> 60 + <validation-messages field="recoverPassForm.captcha_text"></validation-messages>
56 </div> 61 </div>
57 </div> 62 </div>
58 <div class="form-group"> 63 <div class="form-group">