From 4bcadac53bba9eccd621bc0cf80d66d8641718d9 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Mon, 4 Mar 2013 00:09:30 -0800 Subject: [PATCH] Prevent foot shooting. --- .../guacamole/net/auth/mysql/UserDirectory.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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