diff --git a/datastore/src/main/java/net/jami/datastore/dao/UserProfileDao.java b/datastore/src/main/java/net/jami/datastore/dao/UserProfileDao.java
index 4e6bdd4c712ab15594e66de578c42d371adcfe18..cf346dfc6ea936ea94e5e1d9829685b6b32db7ce 100644
--- a/datastore/src/main/java/net/jami/datastore/dao/UserProfileDao.java
+++ b/datastore/src/main/java/net/jami/datastore/dao/UserProfileDao.java
@@ -24,6 +24,8 @@ package net.jami.datastore.dao;
 
 import lombok.extern.slf4j.Slf4j;
 import net.jami.datastore.main.DataStore;
+import net.jami.jams.common.dao.StatementElement;
+import net.jami.jams.common.dao.StatementList;
 import net.jami.jams.common.dao.connectivity.SQLConnection;
 import net.jami.jams.common.objects.user.UserProfile;
 
@@ -84,4 +86,25 @@ public class UserProfileDao extends AbstractDao<UserProfile> {
             DataStore.connectionPool.returnConnection(connection);
         }
     }
+
+    @Override
+    public boolean updateObject(StatementList update, StatementList constraints){
+
+        SQLConnection connection = DataStore.connectionPool.getConnection();
+        try{
+            PreparedStatement ps = connection.getConnection().prepareStatement("UPDATE local_directory SET firstname = ?, lastName = ?, email = ?, profilePicture = ?, organization = ?, phoneNumber = ?, phoneNumberExtension = ?, faxNumber = ?, mobileNumber = ? WHERE username = ?");
+            for(int i=1;i<update.getStatements().size();i++){
+                ps.setString(i, update.getStatements().get(i).getValue());
+            }
+            ps.setString(update.getStatements().size(), update.getStatements().get(0).getValue());
+            return ps.executeUpdate() != 0;
+        }
+        catch(Exception e){
+            log.error("An error has occurred while trying to update a user profile: " + e.toString());
+            return false;
+        }
+        finally {
+            DataStore.connectionPool.returnConnection(connection);
+        }
+    }
 }
diff --git a/datastore/src/main/java/net/jami/datastore/main/DataStore.java b/datastore/src/main/java/net/jami/datastore/main/DataStore.java
index c8db40ee40a89003739f5248f4affa7114fb8f51..60976153153285e48d65e394ad6da3862b785a02 100644
--- a/datastore/src/main/java/net/jami/datastore/main/DataStore.java
+++ b/datastore/src/main/java/net/jami/datastore/main/DataStore.java
@@ -91,6 +91,24 @@ public class DataStore implements AuthenticationSource {
         return userProfileDao.storeObject(userProfile);
     }
 
+    public boolean updateUserProfile(UserProfile userProfile){
+
+        StatementList update = new StatementList();
+        StatementList constraints = new StatementList();
+        update.addStatement(new StatementElement("username","=",userProfile.getUsername(),""));
+        update.addStatement(new StatementElement("firstName","=",userProfile.getFirstName(),""));
+        update.addStatement(new StatementElement("lastName","=",userProfile.getLastName(),""));
+        update.addStatement(new StatementElement("email","=",userProfile.getEmail(),""));
+        update.addStatement(new StatementElement("profilePicture","=",userProfile.getProfilePicture(),""));
+        update.addStatement(new StatementElement("organization","=",userProfile.getOrganization(),""));
+        update.addStatement(new StatementElement("phoneNumber","=",userProfile.getPhoneNumber(),""));
+        update.addStatement(new StatementElement("phoneNumberExtension","=",userProfile.getPhoneNumberExtension(),""));
+        update.addStatement(new StatementElement("faxNumber","=",userProfile.getFaxNumber(),""));
+        update.addStatement(new StatementElement("mobileNumber","=",userProfile.getMobileNumber(),""));
+
+        return userProfileDao.updateObject(update, constraints);
+    }
+
     @Override
     public boolean authenticate(String username, String password) {
         StatementList statementList = new StatementList();
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/directory/DirectoryEntryServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/directory/DirectoryEntryServlet.java
index 9d277f688c4cd0edb355fa296f7f8648ca89e40a..8aa3c8e38e271c8fb83b54b74659e2f1e2faba25 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/directory/DirectoryEntryServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/directory/DirectoryEntryServlet.java
@@ -30,14 +30,19 @@ import jakarta.servlet.http.HttpServlet;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
+import net.jami.datastore.main.DataStore;
 import net.jami.jams.common.authentication.AuthenticationSourceType;
 import net.jami.jams.common.authmodule.AuthModuleKey;
+import net.jami.jams.common.dao.StatementElement;
+import net.jami.jams.common.dao.StatementList;
 import net.jami.jams.common.objects.user.UserProfile;
 
 import java.io.IOException;
 import java.util.HashMap;
 
 import static net.jami.jams.server.Server.userAuthenticationModule;
+import static net.jami.jams.server.Server.dataStore;
+
 
 @WebServlet("/api/admin/directory/entry")
 @Slf4j
@@ -67,6 +72,22 @@ public class DirectoryEntryServlet extends HttpServlet {
     @Override
     protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         //Update a user's profile.
+        try{
+            //Check if he is AD/LDAP - then return a 500, because we can't update those profile datas.
+            UserProfile userProfile = JsonIterator.deserialize(req.getInputStream().readAllBytes(), UserProfile.class);
+            StatementList select = new StatementList();
+            StatementElement st = new StatementElement("username","=",userProfile.getUsername(),"");
+            select.addStatement(st);
+            if(dataStore.getUserDao().getObjects(select).get(0).getUserType() != AuthenticationSourceType.LOCAL){
+                resp.sendError(500,"The user is not a local user, therefore we cannot change his data!");
+                return;
+            }
+            if(dataStore.updateUserProfile(userProfile))
+                resp.setStatus(200);
+            else resp.sendError(500,"could not update the users's profile information");
+        }
+        catch(Exception e){}
+
     }
 
     @Override
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UsersServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UsersServlet.java
index d0ba9762ae8ed335b0db6c1abdd6f293c44d5a29..179f241dea351936e98d0fcb38018f8f3eadca86 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UsersServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/users/UsersServlet.java
@@ -39,6 +39,6 @@ public class UsersServlet extends HttpServlet {
     //Returns a list of users.
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
-        resp.getOutputStream().write(JsonStream.serialize(dataStore.getDeviceDao().getObjects(null).get(0)).getBytes());
+        resp.getOutputStream().write(JsonStream.serialize(dataStore.getUserDao().getObjects(null).get(0)).getBytes());
     }
 }
diff --git a/jams-server/src/main/resources/webapp/js/search.js b/jams-server/src/main/resources/webapp/js/search.js
index bf89f26ce8d910865c58385fd0a90fb1bbaa24b4..1f993cf7dd57dee1c3f5fef94443c401bc5ffdbc 100644
--- a/jams-server/src/main/resources/webapp/js/search.js
+++ b/jams-server/src/main/resources/webapp/js/search.js
@@ -195,20 +195,20 @@ function addListenersForActions() {
             e.preventDefault();
 
             var data = {
-                'givenName': $('#input-givenName-update').val(),
-                'sn': $('#input-sn-update').val(),
-                'CN': userEdit,
-                'mail': $('#input-mail-update').val(),
-                'jpegPhoto': b64,
-                'o': $('#input-o-update').val(),
-                'facsimileTelephoneNumber': $('#input-facsimileTelephoneNumber-update').val(),
-                'telephoneNumber': $('#input-telephoneNumber-update').val(),
-                'extension': $('#input-extension-update').val(),
-                'mobile': $('#input-mobile-update').val()
+                'firstName': $('#input-givenName-update').val(),
+                'lastName': $('#input-sn-update').val(),
+                'username': userEdit,
+                'email': $('#input-mail-update').val(),
+                'profilePicture': b64,
+                'organization': $('#input-o-update').val(),
+                'faxNumber': $('#input-facsimileTelephoneNumber-update').val(),
+                'phoneNumber': $('#input-telephoneNumber-update').val(),
+                'phoneNumberExtension': $('#input-extension-update').val(),
+                'mobileNumber': $('#input-mobile-update').val()
             }
 
             // send post request
-            ajaxApiCall(api_path_post_update_user, 'POST', data, null, handleUserUpdate);
+            ajaxApiCall(api_path_put_update_user_profile, 'PUT', data, null, handleUserUpdate);
         });
 
     });