diff --git a/guacamole/src/main/webapp/admin.xhtml b/guacamole/src/main/webapp/admin.xhtml
index 17ff734b4..4b7e91fe5 100644
--- a/guacamole/src/main/webapp/admin.xhtml
+++ b/guacamole/src/main/webapp/admin.xhtml
@@ -239,6 +239,11 @@
if (password != reentered_password)
throw new Error("Passwords do not match.");
+ // Do not update password if it's just the
+ // not-changed token
+ if (password == "f12a1930-7195-11e2-bcfd-0800200c9a66")
+ password = null;
+
// Set user permissions
user_perms.read_connection = {};
var connections = fields[2];
diff --git a/guacamole/src/main/webapp/scripts/service.js b/guacamole/src/main/webapp/scripts/service.js
index 990f14c94..33cdca0f5 100644
--- a/guacamole/src/main/webapp/scripts/service.js
+++ b/guacamole/src/main/webapp/scripts/service.js
@@ -293,7 +293,7 @@ GuacamoleService.Users = {
* Updates the user having the given username.
*
* @param {String} username The username of the user to create.
- * @param {String} password The password to assign to the user.
+ * @param {String} password The password to assign to the user (optional).
* @param {GuacamoleService.PermissionSet} permissions The permissions to
* assign.
* @param {String} parameters Any parameters which should be passed to the
@@ -303,11 +303,12 @@ GuacamoleService.Users = {
"update" : function(username, password, permissions, parameters) {
// Construct request URL
- var users_url = "users/update?name=" + encodeURIComponent(username);
- if (parameters) users_url += "&" + parameters;
+ var users_url = "users/update";
+ if (parameters) users_url += "?" + parameters;
// Init POST data
- var data = "password=" + encodeURIComponent(password);
+ var data = "name=" + encodeURIComponent(username);
+ if (password) data += "&password=" + encodeURIComponent(password);
// Creation permissions
if (permissions.create_user) data += "&user=create";