public async Task <IActionResult> UpdatePassword(ChangePasswordRequest request) { //user identifier var userId = PlatformUtils.GetIdentityUserId(User); var user = AuthorizationLayer.GetUserById(userId); //Tento il signin ed ottengo l'utente se è completato var result = await AuthorizationLayer.SignIn(user.Username, request.OldPassword); //Se non ho utente, unauthorized if (result == null) { return(Unauthorized()); } // recupero il profilo var validations = AuthorizationLayer.UpdateUserPassword(result, request.Password); //controllo risultato if (validations.Count > 0) { return(BadRequest(validations)); } //Se è tutto ok, serializzo e restituisco return(Ok(new StringResponse { Value = request.Password })); }
public IActionResult UpdateUserPassword(UserPasswordUpdateRequest request) { //User id corrente var userId = PlatformUtils.GetIdentityUserId(User); //modifica solo se admin o se sè stesso o è autorizzato if (request.UserId != userId) { return(Unauthorized()); } //Recupero l'elemento dal business layer var entity = AuthorizationLayer.GetUserById(request.UserId); if (entity == null) { return(NotFound()); } //Salvataggio var validations = AuthorizationLayer.UpdateUserPassword(entity, request.Password); if (validations.Count > 0) { return(BadRequest(validations)); } //Confermo return(Ok(new BooleanResponse() { Value = true })); }