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); } }