Commit 0b9646f7b64af429afd6935347b02c64e1f99a37

Authored by Leonardo Merlin
1 parent aa1560ed

Add forgot_password

src/app/components/auth/auth.service.js
... ... @@ -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 113 return $http
111 114 .post(url, encodedData)
... ... @@ -114,11 +117,14 @@
114 117  
115 118 // 'Verifique seu email para efetuar a troca da senha.'
116 119 $rootScope.$broadcast(AUTH_EVENTS.forgotPasswordSuccess, response);
  120 +
117 121 return response;
118 122 }, function(response) {
119 123 // 'Não foi possível requisitar a troca de senha para os dados informados.'
120 124 $log.debug('AuthService.forgotPassword [FAIL] response', response);
121 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 123 margin-left: -2px;
124 124 }
125 125  
  126 +.vertical-padding {
  127 + padding-top: 15px;
  128 + padding-bottom: 15px;
  129 +}
  130 +
126 131 .no-space-left { margin-left: 0; padding-left: 0;}
127 132 .no-space-right { margin-right: 0; padding-right: 0;}
128 133  
... ...
src/app/pages/auth/auth.controller.js
... ... @@ -173,11 +173,39 @@
173 173 });
174 174 };
175 175  
176   - AuthPageController.prototype.submitRecover = function(recoverForm) {
  176 + AuthPageController.prototype.submitRecover = function($event, recoverForm) {
177 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 211 AuthPageController.prototype.redirectBack = function() {
... ...
src/app/pages/auth/recover.html
... ... @@ -9,7 +9,7 @@
9 9 </div>
10 10 </div>
11 11 </div>
12   - <section role="main" class="section-gray">
  12 + <section role="main" class="section-gray vertical-padding">
13 13 <div class="container">
14 14 <div class="row">
15 15 <div ng-if="pageSignin.successRecoverMessage">
... ... @@ -20,10 +20,15 @@
20 20 title="pageSignin.successRecoverMessageTitle || 'Pronto!'"
21 21 message="pageSignin.successRecoverMessage"
22 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 28 </div>
24 29 </div>
25 30 </div>
26   - <div ng-if="!pageSignin.currentUser">
  31 + <div ng-if="!pageSignin.successRecoverMessage">
27 32 <br>
28 33 <div class="col-sm-8 col-sm-offset-2">
29 34 <div class="row" ng-if="pageSignin.errorRecoverMessage">
... ... @@ -38,11 +43,11 @@
38 43 </div>
39 44 <div class="row">
40 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 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 51 </div>
47 52 <div class="form-group">
48 53 <div id="serpro_captcha" class="captcha">
... ... @@ -52,7 +57,7 @@
52 57 </div>
53 58 <div class="captcha">
54 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 61 </div>
57 62 </div>
58 63 <div class="form-group">
... ...