yjacques940 / customerManager

Site web pour gestion des rendez-vous et de clients pour Carl et Mélanie Orthothérapeutes
1 stars 0 forks source link

Une variable $userId peut être assignée un customerId au lieu d'un userId #154

Closed jessyjr97 closed 5 years ago

jessyjr97 commented 5 years ago

Dans la fonction HasDoneTheSurvey() et MedicalSurveyUpdate(), les variables $userId et $_SESSION['TempCustomerId'], utilisées de nombreuses fois un peu partout dans le code peuvent être assignées un customerId ou encore un userId.

Un utilisateur standard va normalement être assigné un userId, mais un employé peut souvent envoyer un URI comprenant un customerId, qui sera assigné dans la variable $userId.

$userId est utilisé dans des fonctions utilisant un customerId et dans d'autres fonctions utilisant un customerId, donc plusieurs fonctions auront des résultat inattendus.

Extraits de code: HasDoneTheSurvey() $userId = isset($_GET['idCustomer']) ? $_GET['idCustomer'] : $_SESSION['userid']; $_SESSION['TempCustomerId'] = $userId; MedicalSurveyUpdate() $userId = isset($_SESSION['TempCustomerId']) ? $_SESSION['TempCustomerId'] : $_SESSION['userid'];

yjacques940 commented 5 years ago

$userId = isset($_SESSION['TempCustomerId']) ? GetCustomerUserId($_SESSION['TempCustomerId']) : $_SESSION['userid'];

function GetCustomerUserId($customerId) { $customer = array( 'customerId' => $customerId); return CallAPI('GET','Users/GetUserByCustomerId', $customer); }

var customer = Service.Context.Users.FirstOrDefault(c => c.customerId == customerId) if(customer != null) return Ok(customer.Id);

return NoContent();

yjacques940 commented 5 years ago

Ce qui sera utilisé es tle customerId et non le userID. Puisqu'un customer peut exister sans avoir de user de relié, il faut seulement avoir le customerID dans les call à l'api pour éviter que les infos ne soient pas existantes.