diff --git a/web/components/users/handleBanker.js b/web/components/users/handleBanker.js
index 75ff29172add96d97de1016d8095af34be0b6317..cb3a0ec438693ff6af1ef0f64ae7887833cfa8c7 100644
--- a/web/components/users/handleBanker.js
+++ b/web/components/users/handleBanker.js
@@ -87,6 +87,23 @@ class HandleBanker {
     Users.toggleModal("banker-modal", "banker-modal-card");
   }
 
+  async deleteBanker(banker) {
+    try {
+      const response = await fetch("/api/UserBankers/" + banker.ID, {
+        method: "delete",
+        headers: new Headers({
+          "XSRF-Token": current_user.xsrftoken,
+        }),
+      });
+      if (response.status !== 200) {
+        throw new Error(`Banker could not be deleted (status ${response.status})`);
+      }
+    } catch (e) {
+      Messages.Show("is-warning", e.message);
+      console.error(e);
+    }
+  }
+
   async postBanker() {
     let method;
     if (update_banker) method = "PUT";
diff --git a/web/components/users/handleClient.js b/web/components/users/handleClient.js
index d7ba8a6f72b1e82c72b337c3e9774190d1866183..9a125f9e7a77df31df2d03416f2ba1769cb2a283 100644
--- a/web/components/users/handleClient.js
+++ b/web/components/users/handleClient.js
@@ -32,7 +32,7 @@ class HandleClient {
       <div class="modal-background"></div>
       <div class="modal-card" id="client-modal-card">
         <header class="modal-card-head">
-          <p class="modal-card-title">Ajout/Supression d'un client</p>
+          <p class="modal-card-title">Ajout/Édition d'un client</p>
           <button class="delete" aria-label="close" id="client-modal-close"></button>
         </header>
         <section class="modal-card-body">
@@ -101,6 +101,23 @@ class HandleClient {
     Users.toggleModal("client-modal", "client-modal-card");
   }
 
+  async deleteClient(client) {
+    try {
+      const response = await fetch("/api/UserClients/" + client.ID, {
+        method: "delete",
+        headers: new Headers({
+          "XSRF-Token": current_user.xsrftoken,
+        }),
+      });
+      if (response.status !== 200) {
+        throw new Error(`Client could not be deleted (status ${response.status})`);
+      }
+    } catch (e) {
+      Messages.Show("is-warning", e.message);
+      console.error(e);
+    }
+  }
+
   async refreshBankers() {
     const response = await fetch("/api/UserBankers/", {
       method: "GET",
diff --git a/web/components/users/handleUser.js b/web/components/users/handleUser.js
index 49dd0ccbcbeb52ccc6e6587347e3a61b88c13e68..712cd8c8b5179afc88f07fec0f63eb68c1d9e21d 100644
--- a/web/components/users/handleUser.js
+++ b/web/components/users/handleUser.js
@@ -10,7 +10,6 @@ let idOAuth_field;
 let login_field;
 let displayName_field;
 let password_field;
-let passwordhash_field;
 let name_field;
 let surname_field;
 let role_field;
@@ -64,11 +63,6 @@ class HandleUser {
               <input class="input" type="text" id="users-modal-password" />
             </div>
           </div>
-          <div class="field" id="users-modal-password-container">
-            <div class="control">
-              <input class="input" type="hidden" id="users-modal-passwordhash" />
-            </div>
-          </div>
           <div class="field" id="users-modal-name-container">
             <label>Nom</label>
             <div class="control">
@@ -112,7 +106,6 @@ class HandleUser {
     idOAuth_field = document.getElementById("users-modal-idoauth");
     login_field = document.getElementById("users-modal-login");
     password_field = document.getElementById("users-modal-password");
-    passwordhash_field = document.getElementById("users-modal-passwordhash");
     displayName_field = document.getElementById("users-modal-displayName");
     name_field = document.getElementById("users-modal-name");
     surname_field = document.getElementById("users-modal-surname");
@@ -138,7 +131,6 @@ class HandleUser {
     id_field.value = "";
     login_field.value = "";
     password_field.value = RandomString(48);
-    passwordhash_field.value = "";
     name_field.value = "";
     displayName_field.value = "";
     surname_field.value = "";
@@ -162,6 +154,13 @@ class HandleUser {
       Messages.Show("is-warning", e.message);
       console.error(e);
     }
+    if (user.role == "BANKER") {
+      let banker = await this.getBankerByUserID(user.id);
+      if (banker != undefined) this.parent.HandleBanker.deleteBanker(banker);
+    } else if (user.role == "CLIENT") {
+      let client = await Auth.getClientByUserID(user.id, current_user);
+      if (client != undefined) this.parent.HandleClient.deleteClient(client);
+    }
   }
 
   editUser(user) {
@@ -171,7 +170,6 @@ class HandleUser {
     idOAuth_field.value = user.idOAuth;
     login_field.value = user.login;
     password_field.value = "";
-    passwordhash_field.value = user.passwordHash;
     name_field.value = user.name;
     displayName_field.value = user.displayName;
     surname_field.value = user.surname;
@@ -223,7 +221,7 @@ class HandleUser {
     else method = "POST";
 
     try {
-      if(role_field.value == ""){
+      if (role_field.value == "") {
         Messages.Show("is-warning", "Veuillez choisir un rôle pour l'utilisateur");
         return;
       }
@@ -236,7 +234,6 @@ class HandleUser {
           id: id_field.value,
           login: login_field.value,
           password: password_field.value,
-          passwordHash: passwordhash_field.value,
           name: name_field.value,
           surname: surname_field.value,
           role: role_field.value,