1919 using Microsoft . AspNetCore . Identity ;
2020 using Microsoft . EntityFrameworkCore ;
2121 using Requests ;
22+ using SecurityService . Models ;
2223 using Shared . Exceptions ;
2324 using Shared . General ;
2425 using Shared . Logger ;
2728 public class UserRequestHandler : IRequestHandler < CreateUserRequest > ,
2829 IRequestHandler < GetUserRequest , UserDetails > ,
2930 IRequestHandler < GetUsersRequest , List < UserDetails > > ,
30- IRequestHandler < ChangeUserPasswordRequest , ( Boolean , String ) > ,
31+ IRequestHandler < ChangeUserPasswordRequest , ChangeUserPasswordResult > ,
3132 IRequestHandler < ConfirmUserEmailAddressRequest , Boolean > ,
3233 IRequestHandler < ProcessPasswordResetConfirmationRequest , String > ,
3334 IRequestHandler < ProcessPasswordResetRequest > ,
@@ -229,15 +230,15 @@ public async Task<List<UserDetails>> Handle(GetUsersRequest request, Cancellatio
229230 return response ;
230231 }
231232
232- public async Task < ( Boolean , String ) > Handle ( ChangeUserPasswordRequest request , CancellationToken cancellationToken ) {
233+ public async Task < ChangeUserPasswordResult > Handle ( ChangeUserPasswordRequest request , CancellationToken cancellationToken ) {
233234 // Find the user based on the user name passed in
234235 IdentityUser user = await this . UserManager . FindByNameAsync ( request . UserName ) ;
235236
236237 if ( user == null ) {
237238 // TODO: Redirect to a success page so the user doesnt know if the username is correct or not,
238239 // this prevents giving away info to a potential hacker...
239240 // TODO: maybe log something here...
240- return ( false , String . Empty ) ;
241+ return new ChangeUserPasswordResult { IsSuccessful = false } ;
241242 }
242243
243244 IdentityResult result = await this . UserManager . ChangePasswordAsync ( user ,
@@ -246,39 +247,39 @@ public async Task<List<UserDetails>> Handle(GetUsersRequest request, Cancellatio
246247
247248 if ( result . Succeeded == false ) {
248249 // Log any errors
249- Logger . LogWarning ( $ "Errors during password change for user [{ request . UserName } and Client [{ request . ClientId } ]") ;
250+ Logger . LogInformation ( $ "Errors during password change for user [{ request . UserName } and Client [{ request . ClientId } ]") ;
250251 foreach ( IdentityError identityError in result . Errors ) {
251- Logger . LogWarning ( $ "Code { identityError . Code } Description { identityError . Description } ") ;
252+ Logger . LogInformation ( $ "Code { identityError . Code } Description { identityError . Description } ") ;
252253 }
253254 }
254255
255256 // build the redirect uri
256257 Client client = await this . ConfigurationDbContext . Clients . SingleOrDefaultAsync ( c => c . ClientId == request . ClientId , cancellationToken : cancellationToken ) ;
257258
258259 if ( client == null ) {
259- Logger . LogWarning ( $ "Client not found for clientId { request . ClientId } ") ;
260+ Logger . LogInformation ( $ "Client not found for clientId { request . ClientId } ") ;
260261 // TODO: need to redirect somewhere...
261- return ( false , String . Empty ) ;
262+ return new ChangeUserPasswordResult { IsSuccessful = false } ;
262263 }
263264
264- Logger . LogWarning ( $ "Client uri { client . ClientUri } ") ;
265- return ( true , client . ClientUri ) ;
265+ Logger . LogDebug ( $ "Client uri { client . ClientUri } ") ;
266+ return new ChangeUserPasswordResult { IsSuccessful = true , RedirectUri = client . ClientUri } ;
266267 }
267268
268269 public async Task < Boolean > Handle ( ConfirmUserEmailAddressRequest request , CancellationToken cancellationToken ) {
269270 IdentityUser identityUser = await this . UserManager . FindByNameAsync ( request . UserName ) ;
270271
271272 if ( identityUser == null ) {
272- Logger . LogWarning ( $ "No user found with username { request . UserName } ") ;
273+ Logger . LogInformation ( $ "No user found with username { request . UserName } ") ;
273274 return false ;
274275 }
275276
276277 IdentityResult result = await this . UserManager . ConfirmEmailAsync ( identityUser , request . ConfirmEmailToken ) ;
277278
278279 if ( result . Succeeded == false ) {
279- Logger . LogWarning ( $ "Errors during confirm email for user [{ request . UserName } ") ;
280+ Logger . LogInformation ( $ "Errors during confirm email for user [{ request . UserName } ") ;
280281 foreach ( IdentityError identityError in result . Errors ) {
281- Logger . LogWarning ( $ "Code { identityError . Code } Description { identityError . Description } ") ;
282+ Logger . LogInformation ( $ "Code { identityError . Code } Description { identityError . Description } ") ;
282283 }
283284 }
284285
@@ -293,7 +294,7 @@ public async Task<String> Handle(ProcessPasswordResetConfirmationRequest request
293294 // TODO: Redirect to a success page so the user doesnt know if the username is correct or not,
294295 // this prevents giving away info to a potential hacker...
295296 // TODO: maybe log something here...
296- Logger . LogWarning ( $ "user not found for username { request . Username } ") ;
297+ Logger . LogInformation ( $ "user not found for username { request . Username } ") ;
297298 return String . Empty ;
298299 }
299300
@@ -302,17 +303,17 @@ public async Task<String> Handle(ProcessPasswordResetConfirmationRequest request
302303 // handle the result...
303304 if ( result . Succeeded == false ) {
304305 // Log any errors
305- Logger . LogWarning ( $ "Errors during password reset for user [{ request . Username } and Client [{ request . ClientId } ]") ;
306+ Logger . LogInformation ( $ "Errors during password reset for user [{ request . Username } and Client [{ request . ClientId } ]") ;
306307 foreach ( IdentityError identityError in result . Errors ) {
307- Logger . LogWarning ( $ "Code { identityError . Code } Description { identityError . Description } ") ;
308+ Logger . LogInformation ( $ "Code { identityError . Code } Description { identityError . Description } ") ;
308309 }
309310 }
310311
311312 // build the redirect uri
312313 Client client = await this . ConfigurationDbContext . Clients . SingleOrDefaultAsync ( c => c . ClientId == request . ClientId , cancellationToken : cancellationToken ) ;
313314
314315 if ( client == null ) {
315- Logger . LogWarning ( $ "Client not found for clientId { request . ClientId } ") ;
316+ Logger . LogInformation ( $ "Client not found for clientId { request . ClientId } ") ;
316317 // TODO: need to redirect somewhere...
317318 return String . Empty ;
318319 }
0 commit comments