diff --git a/Request_Test/testHTTP.http b/Request_Test/testHTTP.http
index 4f99b02..b6ac60f 100644
--- a/Request_Test/testHTTP.http
+++ b/Request_Test/testHTTP.http
@@ -52,3 +52,11 @@ test = "coucou"
###
+POST http://serveur-projet-s4.felix/src/API/requests.php/api/login/patient
+Content-Type: application/x-www-form-urlencoded
+
+mail = "nicolasgrenier@example.com" &
+password = "a"
+
+###
+
diff --git a/index.php b/index.php
index c630bae..eb15669 100644
--- a/index.php
+++ b/index.php
@@ -13,20 +13,6 @@
-
Annuaire des médecins du CNOM • Annuaire des chirurgiens-dentistes de l'ONCD • Ordre National des Médecins • Ordre National des Chirurgiens-Dentistes
`;
attachSearchEventListener();
+ attachLoginUserDisplayEventListener();
displayAlert("Rendez-vous pris avec succès");
}
@@ -279,6 +280,271 @@ function performSearch(event) {
}
}
+function displayLoginUser() {
+ let container = document.getElementById("content");
+ container.innerHTML = "";
+ container.className = 'd-flex flex-column justify-content-center text-center w-100 login-ui';
+ container.innerHTML = `
+
+
+
+
J'ai déjà un compte Doct'ISEN
+
+
+
+
+
Nouveau sur Doct'ISEN?
+
+
+
+
+
+
`;
+ document.getElementById("user-login-button").addEventListener("click", function(event) {
+ event.preventDefault();
+ let mail = document.getElementById("user-login-mail").value;
+ let password = document.getElementById("user-login-password").value;
+ let data = "mail=" + mail + "&password=" + password;
+ ajaxRequest('POST', "src/API/requests.php/api/login/patient", function (data) {
+ if (data.success) {
+ sessionStorage.setItem("user_id", data.id);
+ sessionStorage.setItem("user_type", "patient");
+ sessionStorage.setItem("user_mail", mail);
+ sessionStorage.setItem("user_name", data.name);
+ sessionStorage.setItem("user_surname", data.surname);
+ displayHome();
+ } else {
+ alert("Erreur lors de la connexion");
+ }
+ }, data);
+ });
+ document.getElementById("signup-user").addEventListener("click", function(event) {
+ displaySignUpUser();
+ });
+}
+
+function displayLoginPraticien() {
+ let container = document.getElementById("content");
+ container.innerHTML = "";
+ container.className = 'd-flex flex-column justify-content-center text-center w-100 login-ui';
+ container.innerHTML = `
+
+
+
+
J'ai déjà un compte praticien Doct'ISEN
+
+
+
+
+
Nouveau praticien sur Doct'ISEN?
+
+
+
+
+
+
`;
+ document.getElementById("praticien-login-button").addEventListener("click", function(event) {
+ event.preventDefault();
+ let mail = document.getElementById("praticien-login-mail").value;
+ let password = document.getElementById("praticien-login-password").value;
+ let data = "mail=" + mail + "&password=" + password;
+ ajaxRequest('POST', "src/API/requests.php/api/login/praticien", function (data) {
+ if (data.success) {
+ sessionStorage.setItem("user_id", data.id);
+ sessionStorage.setItem("user_type", "praticien");
+ sessionStorage.setItem("user_mail", mail);
+ sessionStorage.setItem("user_name", data.name);
+ sessionStorage.setItem("user_surname", data.surname);
+ displayHome();
+ } else {
+ alert("Erreur lors de la connexion");
+ }
+ }, data);
+ });
+ document.getElementById("signup-praticien").addEventListener("click", function(event) {
+ displaySignUpPraticien();
+ });
+}
+
+function displaySignUpPraticien() {
+ let container = document.getElementById("content");
+ container.innerHTML = "";
+ container.className = 'd-flex flex-column justify-content-center text-center w-100 signup-ui-praticien';
+ container.innerHTML = `
+
+
+
+
Inscription praticien sur Doct'ISEN
+
+
+
+
+
Déjà inscrit en tant que praticien ?
+
+
+
+
+
+
+
`;
+ document.getElementById("login-praticien2").addEventListener("click", function(event) {
+ displayLoginPraticien();
+ });
+}
+
+function displaySignUpUser() {
+ let container = document.getElementById("content");
+ container.innerHTML = "";
+ container.className = 'd-flex flex-column justify-content-center text-center w-100 signup-ui';
+ container.innerHTML = `
+
`;
+ document.getElementById("login-user2").addEventListener("click", function(event) {
+ displayLoginUser();
+ });
+ document.getElementById("user-signup-button").addEventListener("click", function(event) {
+ event.preventDefault();
+ let name = document.getElementById("user-signup-name").value;
+ let surname = document.getElementById("user-signup-surname").value;
+ let mail = document.getElementById("user-signup-mail").value;
+ let mailConfirm = document.getElementById("user-signup-mail-confirm").value;
+ let password = document.getElementById("user-signup-password").value;
+ let passwordConfirm = document.getElementById("user-signup-password-confirm").value;
+ let phone = document.getElementById("user-signup-phone").value;
+ if (mail !== mailConfirm) {
+ alert("Les adresses mail ne correspondent pas");
+ return;
+ }
+ if (password !== passwordConfirm) {
+ alert("Les mots de passe ne correspondent pas");
+ return;
+ }
+ let data = "name=" + name + "&surname=" + surname + "&mail=" + mail + "&password=" + password + "&phone=" + phone;
+ ajaxRequest('POST', "src/API/requests.php/api/signup/patient", function (data) {
+ if (data.success) {
+ sessionStorage.setItem("user_id", data.id);
+ sessionStorage.setItem("user_type", "patient");
+ sessionStorage.setItem("user_mail", mail);
+ sessionStorage.setItem("user_name", name);
+ sessionStorage.setItem("user_surname", surname);
+ displayHome();
+ } else {
+ alert("Erreur lors de l'inscription");
+ }
+ }, data);
+ });
+}
+
function attachSearchEventListener() {
try{
document.getElementById("recherche").addEventListener("click", function (event) {
@@ -322,6 +588,31 @@ function attachPrendreRDVEventListener() {
});
}
+function attachLoginUserDisplayEventListener() {
+ try {
+ document.getElementById("login-user").addEventListener("click", function (event) {
+ displayLoginUser();
+ });
+ }
+ catch (e) {
+ //Do nothing
+ //console.error(e);
+ }
+}
+
+function attachLoginPraticienDisplayEventListener() {
+ try {
+ document.getElementById("login-praticien").addEventListener("click", function (event) {
+ displayLoginPraticien();
+ });
+ }
+ catch (e) {
+ //Do nothing
+ //console.error(e);
+ }
+}
+
+
//Yanis Part
function DisplayRDVPraticient(rdv){
@@ -383,4 +674,6 @@ function ButtonShowRdvPraticient() {
//End Call
ButtonShowRdvPraticient();
-attachSearchEventListener();
\ No newline at end of file
+attachSearchEventListener();
+attachLoginUserDisplayEventListener();
+attachLoginPraticienDisplayEventListener();
\ No newline at end of file
diff --git a/src/js/AJAX/lib.js b/src/js/AJAX/lib.js
new file mode 100644
index 0000000..18c047e
--- /dev/null
+++ b/src/js/AJAX/lib.js
@@ -0,0 +1,14 @@
+console.log("lib.js loaded");
+
+function TokenDecode(token){
+ let decodedToken = atob(token);
+ decodedToken = decodedToken.split(":");
+ return {
+ type: decodedToken[0],
+ id: decodedToken[1],
+ name: decodedToken[2],
+ surname: decodedToken[3],
+ mail: decodedToken[4]
+
+ };
+}
\ No newline at end of file
diff --git a/src/php/components/user-login.php b/src/php/components/user-login.php
index c97b6fb..07b4130 100644
--- a/src/php/components/user-login.php
+++ b/src/php/components/user-login.php
@@ -24,7 +24,7 @@
echo '
Mon calendrier';
}
} else {
- echo '
';
+ echo '
';
}
}
?>
\ No newline at end of file
diff --git a/src/php/db/Login.php b/src/php/db/Login.php
index 58fd748..ce3ec13 100644
--- a/src/php/db/Login.php
+++ b/src/php/db/Login.php
@@ -101,15 +101,15 @@ class LoginPatient {
public static function Login($pdo,$mail,$password) : void
{
if(LoginPatient::checkMail($pdo,$mail)){
- $query = $pdo->prepare("SELECT p_id,p_password FROM patient where p_mail = :mail");
+ $query = $pdo->prepare("SELECT p_id,p_password,p_name,p_surname,p_mail FROM patient where p_mail = :mail");
$query->bindParam(':mail', $mail);
$query->execute();
$result = $query->fetch(PDO::FETCH_ASSOC);
if(password_verify($password,$result['p_password'])){
- Response::HTTP200(['message' => 'Login success', 'id' => $result['p_id']]);
+ Response::HTTP200(['message' => 'Login success', 'token' => base64_encode("patient:".strval($result['p_id']).":".$result['p_name'].":".$result['p_surname'].":".$result['p_mail'])]);
} else {
- Response::HTTP401(['message' => 'Login failed', 'id' => 0]);
+ Response::HTTP401(['message' => 'Login failed', 'token' => 0]);
}
}
}
@@ -133,15 +133,15 @@ class LoginMedecin {
public static function Login($pdo,$mail,$password) : void
{
if(LoginMedecin::checkMail($pdo,$mail)){
- $query = $pdo->prepare("SELECT m_id, m_password FROM medecin where m_mail = :mail");
+ $query = $pdo->prepare("SELECT m_id, m_password,m_name,m_surname,m_mail FROM medecin where m_mail = :mail");
$query->bindParam(':mail', $mail);
$query->execute();
$result = $query->fetch(PDO::FETCH_ASSOC);
if(password_verify($password,$result['m_password'])){
- Response::HTTP200(['message' => 'Login success', 'id' => $result['m_id']]);
+ Response::HTTP200(['message' => 'Login success', 'token' => base64_encode("medecin:".strval($result['m_id']).":".$result['m_name'].":".$result['m_surname'].":".$result['m_mail'])]);
} else {
- Response::HTTP401(['message' => 'Login failed', 'id' => 0]);
+ Response::HTTP401(['message' => 'Login failed', 'token' => 0]);
}
}
}