diff --git a/datastore/src/main/java/net/jami/datastore/dao/DeviceDao.java b/datastore/src/main/java/net/jami/datastore/dao/DeviceDao.java
index bf3ab3fe8788a0f87e30c852fda8cb9f87b22b1e..08d61c6a117041bb563b757f006f47e71fd3d27f 100644
--- a/datastore/src/main/java/net/jami/datastore/dao/DeviceDao.java
+++ b/datastore/src/main/java/net/jami/datastore/dao/DeviceDao.java
@@ -79,6 +79,25 @@ public class DeviceDao extends AbstractDao<Device> {
 
     @Override
     public boolean updateObject(StatementList update, StatementList constraints) {
-        return false;
+        String deviceName = update.getStatements().get(0).getValue();
+        String user = update.getStatements().get(1).getValue();
+        String deviceId = update.getStatements().get(2).getValue();
+
+        SQLConnection connection = DataStore.connectionPool.getConnection();
+
+        try{
+            PreparedStatement ps = connection.getConnection().prepareStatement("UPDATE devices SET displayName = ? WHERE owner = ? AND deviceId = ?");
+            ps.setString(1, deviceName);
+            ps.setString(2, user);
+            ps.setString(3, deviceId);
+            return ps.executeUpdate() != 0;
+        }
+        catch (Exception e){
+            log.error("An error has occurred while trying to update a user: " + e.toString());
+            return false;
+        }
+        finally {
+            DataStore.connectionPool.returnConnection(connection);
+        }
     }
 }
diff --git a/jams-server/src/main/resources/webapp/js/api.js b/jams-server/src/main/resources/webapp/js/api.js
index 76d0e802317ffb7e5f39ded1ba7fc8280eac9d0f..7622cd3ce9cba74f689170ce902101d4b63c9643 100644
--- a/jams-server/src/main/resources/webapp/js/api.js
+++ b/jams-server/src/main/resources/webapp/js/api.js
@@ -38,7 +38,8 @@ var api_path_delete_admin_user_revoke = '/api/admin/user';
 var api_path_delete_auth_user_revoke = '/api/auth/user';
 var api_path_delete_admin_device_revoke = '/api/admin/device';
 var api_path_delete_auth_device_revoke = '/api/auth/device';
-var api_path_rename_device = '/api/auth/device';
+var api_path_admin_rename_device = '/api/admin/device';
+var api_path_auth_rename_device = '/api/auth/device';
 var api_path_get_server_status = '/api/info';
 var api_path_get_post_configuration_auth_service = '/api/configuration/authservice';
 var api_path_get_post_configuration_global_settings = '/api/configuration/globalsettings';
diff --git a/jams-server/src/main/resources/webapp/js/user.js b/jams-server/src/main/resources/webapp/js/user.js
index b870f349f52b0e6cd2539eb199d4edd7144d5377..27bfd7a69b65caaa1e752d741c54a1de73a5f5a5 100644
--- a/jams-server/src/main/resources/webapp/js/user.js
+++ b/jams-server/src/main/resources/webapp/js/user.js
@@ -143,7 +143,10 @@ $(document).ready(function() {
             deviceId = $('input[name="deviceId"]').val();
             deviceName = $('input[name="deviceName"]').val();
             $('.loading').show();
-            ajaxApiCall(api_path_rename_device + "?deviceId=" + deviceId + "&deviceName=" +  deviceName, 'PUT', null, null, renameDeviceHandler);
+            if (getAdminStatus())
+                ajaxApiCall(api_path_admin_rename_device + "?username=" + username + "&deviceId=" + deviceId + "&deviceName=" +  deviceName, 'PUT', null, null, renameDeviceHandler);
+            else
+                ajaxApiCall(api_path_auth_rename_device + "?deviceId=" + deviceId + "&deviceName=" +  deviceName, 'PUT', null, null, renameDeviceHandler);
         });
 
         // revoke user device
@@ -398,20 +401,20 @@ function revokeDeviceHandler(data, statusCode, jqXHR) {
 }
 
 // callback for renaming a device
-function renameDeviceHandler(data, statusCode, jqXHR) {
-    var button = $("button[data-device-id='" + deviceId + "']");
+function renameDeviceHandler(data) {
+
     var deviceName = $("input[name='deviceName']").val();
-    if (jqXHR.status == 200) {
+    if (data.status == 200) {
         setTimeout(function () {
             $('.loading').hide();
             $("tr[data-device-id='" + deviceId + "']").find(".device-name").text(deviceName);
-        }, 1000); // in milliseconds
+        }, 100); // in milliseconds
     }
     else {
         setTimeout(function () {
             $('.loading').hide();
             $('.loading').before('<div class="configMessage" id="configMessageError"><i class="fa fa-exclamation-circle" aria-hidden="true"></i>An error has occured, please try again...</div>');
-        }, 1000);
+        }, 100);
     }
 }