@@ -76,54 +76,58 @@ export class PasswdService extends AbstractService {
7676 const padd = await this . getPaddingForCode ( ) ;
7777 const mailAttribute = params . emailAttribute ;
7878 const mail = < string > get ( identity . toObject ( ) , mailAttribute ) ;
79- const token = await this . askToken ( { mail : mail , uid : initDto . uid } , padd + k . toString ( 16 ) , params . resetCodeTTL ) ;
80- this . logger . log ( 'Token :' + token + ' int : ' + k . toString ( 10 ) ) ;
81- if ( initDto . type === 0 ) {
82- this . logger . log ( 'Reset password asked by mail for : ' + initDto . uid ) ;
83- const smtpParams = await this . mailadmService . getParams ( ) ;
84- if ( mailAttribute !== '' ) {
85- const displayName = identity . inetOrgPerson . displayName ;
86- this . mailer
87- . sendMail ( {
88- from : smtpParams . sender ,
89- to : mail ,
90- subject : 'Reinitialisation de votre mot de passe' ,
91- template : 'resetaccount' ,
92- context : {
93- uid : identity . inetOrgPerson . uid ,
94- displayName : displayName ,
95- code : k ,
96- } ,
97- } )
98- . then ( ( ) => {
99- this . logger . log ( 'reset compte envoyé pour uid' + initDto . uid + ' à ' + mail ) ;
100- } )
101- . catch ( ( ) => {
102- throw new BadRequestException ( {
103- message : 'Erreur serveur lors de l envoi du mail' ,
104- error : 'Bad Request' ,
105- statusCode : 400 ,
79+ if ( mail ) {
80+ const token = await this . askToken ( { mail : mail , uid : initDto . uid } , padd + k . toString ( 16 ) , params . resetCodeTTL ) ;
81+ this . logger . log ( 'Token :' + token + ' int : ' + k . toString ( 10 ) ) ;
82+ if ( initDto . type === 0 ) {
83+ this . logger . log ( 'Reset password asked by mail for : ' + initDto . uid ) ;
84+ const smtpParams = await this . mailadmService . getParams ( ) ;
85+ if ( mailAttribute !== '' ) {
86+ this . mailer
87+ . sendMail ( {
88+ from : smtpParams . sender ,
89+ to : mail ,
90+ subject : 'Reinitialisation de votre mot de passe' ,
91+ template : 'resetaccount' ,
92+ context : {
93+ uid : identity . inetOrgPerson . uid ,
94+ displayName : identity . inetOrgPerson . displayName ,
95+ code : k ,
96+ } ,
97+ } )
98+ . then ( ( ) => {
99+ this . logger . log ( 'reset compte envoyé pour uid' + initDto . uid + ' à ' + mail ) ;
100+ } )
101+ . catch ( ( ) => {
102+ throw new BadRequestException ( {
103+ message : 'Erreur serveur lors de l envoi du mail' ,
104+ error : 'Bad Request' ,
105+ statusCode : 400 ,
106+ } ) ;
106107 } ) ;
107- } ) ;
108- return token ;
109- } else {
110- return false ;
111- }
112- } else {
113- //envoi par SMS si c est possible
114- const policies = new PasswordPoliciesDto ( ) ;
115- if ( policies . resetBySms === true ) {
116- this . logger . log ( 'Reset password asked by SMS for : ' + initDto . uid ) ;
117- const smsAttribute = params . mobileAttribute ;
118- if ( smsAttribute !== '' ) {
119- const numTel = < string > get ( identity . toObject ( ) , smsAttribute ) ;
120- await this . smsadmService . send ( numTel , 'Votre code de reinitialisation : ' + k . toString ( 10 ) ) ;
108+ return token ;
109+ } else {
110+ return false ;
121111 }
122- return token ;
123112 } else {
124- return false ;
113+ //envoi par SMS si c est possible
114+ const policies = new PasswordPoliciesDto ( ) ;
115+ if ( policies . resetBySms === true ) {
116+ this . logger . log ( 'Reset password asked by SMS for : ' + initDto . uid ) ;
117+ const smsAttribute = params . mobileAttribute ;
118+ if ( smsAttribute !== '' ) {
119+ const numTel = < string > get ( identity . toObject ( ) , smsAttribute ) ;
120+ await this . smsadmService . send ( numTel , 'Votre code de reinitialisation : ' + k . toString ( 10 ) ) ;
121+ }
122+ return token ;
123+ } else {
124+ return false ;
125+ }
125126 }
127+ } else {
128+ this . logger . error ( 'Error while reset identityMailAttribute Empty' ) ;
126129 }
130+
127131 } catch ( e ) {
128132 this . logger . error ( 'Error while reseting password. ' + e + ` (uid=${ initDto ?. uid } )` ) ;
129133 //on retoune un token qui ne sert à rien pour ne pas divulguer que l uid n existe pas
@@ -143,36 +147,42 @@ export class PasswdService extends AbstractService {
143147 this . logger . log ( 'mailer.identityMailAttribute : ' + mailAttribute ) ;
144148 if ( mailAttribute !== '' ) {
145149 const mail = < string > get ( identity . toObject ( ) , mailAttribute ) ;
146- const smtpParams = await this . mailadmService . getParams ( ) ;
147- //demande du token
148- const k = crypto . randomBytes ( PasswdService . RANDOM_BYTES_K ) . toString ( 'hex' ) ;
149- const token = await this . askToken ( { mail : mail , uid : initDto . uid } , k , params . initTokenTTL ) ;
150- //envoi du token
151- this . mailer
152- . sendMail ( {
153- from : smtpParams . sender ,
154- to : mail ,
155- subject : 'Activation de votre compte' ,
156- template : 'initaccount' ,
157- context : {
158- uid : initDto . uid ,
159- url : this . config . get ( 'frontPwd.url' ) + '/initaccount/' + token ,
160- } ,
161- } )
162- . then ( ( ) => {
163- this . logger . log ( 'Init compte envoyé pour uid' + initDto . uid + ' à ' + mail ) ;
164- this . setInitState ( identity , InitStatesEnum . SENT ) ;
165- } )
166- . catch ( ( e ) => {
167- this . logger . error ( 'Erreur serveur lors de l envoi du mail' + e ) ;
168- throw new BadRequestException ( {
169- message : 'Erreur serveur lors de l envoi du mail' + e ,
170- error : 'Bad Request' ,
171- statusCode : 400 ,
150+ if ( mail ) {
151+ const smtpParams = await this . mailadmService . getParams ( ) ;
152+ //demande du token
153+ const k = crypto . randomBytes ( PasswdService . RANDOM_BYTES_K ) . toString ( 'hex' ) ;
154+ const token = await this . askToken ( { mail : mail , uid : initDto . uid } , k , params . initTokenTTL ) ;
155+ //envoi du token
156+ this . mailer
157+ . sendMail ( {
158+ from : smtpParams . sender ,
159+ to : mail ,
160+ subject : 'Activation de votre compte' ,
161+ template : 'initaccount' ,
162+ context : {
163+ displayName : identity . inetOrgPerson . displayName ,
164+ uid : initDto . uid ,
165+ url : this . config . get ( 'frontPwd.url' ) + '/initaccount/' + token ,
166+ } ,
167+ } )
168+ . then ( ( ) => {
169+ this . logger . log ( 'Init compte envoyé pour uid' + initDto . uid + ' à ' + mail ) ;
170+ this . setInitState ( identity , InitStatesEnum . SENT ) ;
171+ } )
172+ . catch ( ( e ) => {
173+ this . logger . error ( 'Erreur serveur lors de l envoi du mail' + e ) ;
174+ throw new BadRequestException ( {
175+ message : 'Erreur serveur lors de l envoi du mail' + e ,
176+ error : 'Bad Request' ,
177+ statusCode : 400 ,
178+ } ) ;
172179 } ) ;
173- } ) ;
174180
175- return true ;
181+ return true ;
182+ } else {
183+ this . logger . error ( 'Error while initAccount identityMailAttribute Empty' ) ;
184+ return false
185+ }
176186 } else {
177187 this . logger . error ( 'Error while initAccount identityMailAttribute not defined' ) ;
178188 return false ;
0 commit comments