diff --git a/extensions/guacamole-auth-mysql/src/main/java/net/sourceforge/guacamole/net/auth/mysql/UserDirectory.java b/extensions/guacamole-auth-mysql/src/main/java/net/sourceforge/guacamole/net/auth/mysql/UserDirectory.java index 228c64710..67ce9c38c 100644 --- a/extensions/guacamole-auth-mysql/src/main/java/net/sourceforge/guacamole/net/auth/mysql/UserDirectory.java +++ b/extensions/guacamole-auth-mysql/src/main/java/net/sourceforge/guacamole/net/auth/mysql/UserDirectory.java @@ -517,14 +517,21 @@ public class UserDirectory implements Directory permissions) { + Collection permissions) + throws GuacamoleException { // If no permissions given, stop now if (permissions.isEmpty()) return; + // Prevent self-de-adminifying + if (user_id == this.user_id) + throw new GuacamoleClientException("Removing your own administrative permissions is not allowed."); + // Build list of requested system permissions List systemPermissionTypes = new ArrayList(); for (SystemPermission permission : permissions) @@ -575,6 +582,10 @@ public class UserDirectory implements Directory