summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElgarL <ElgarL@Palmergames.com>2013-10-31 11:40:12 +0000
committerElgarL <ElgarL@Palmergames.com>2013-10-31 11:40:12 +0000
commita66b9a3ee439c14d1d21ad2bfd085b239c357c7e (patch)
tree09bf6cc35ecd61f14af2c2be8dc0f6997c0c71af
parentea824b26f4db15b696b8595644fc7b10afcb5638 (diff)
downloadEssentials-a66b9a3ee439c14d1d21ad2bfd085b239c357c7e.tar
Essentials-a66b9a3ee439c14d1d21ad2bfd085b239c357c7e.tar.gz
Essentials-a66b9a3ee439c14d1d21ad2bfd085b239c357c7e.tar.lz
Essentials-a66b9a3ee439c14d1d21ad2bfd085b239c357c7e.tar.xz
Essentials-a66b9a3ee439c14d1d21ad2bfd085b239c357c7e.zip
Prevent adding sub groups for ranks the granting player doesn't have access to.
-rw-r--r--EssentialsGroupManager/src/Changelog.txt1
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java8
2 files changed, 9 insertions, 0 deletions
diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt
index fcdd930f0..d30265810 100644
--- a/EssentialsGroupManager/src/Changelog.txt
+++ b/EssentialsGroupManager/src/Changelog.txt
@@ -222,3 +222,4 @@ v 2.0:
- Store worldSelection indexed on the senders name rather than the object (fixes commandblocks using manselect).
- Check subgroup permissions with an equal priority so no one subgroup is higher ranked than another.
- add recursive permission adding/deleting
+ - Prevent adding sub groups for ranks the granting player doesn't have access to. \ No newline at end of file
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
index 3931991f7..5bef35abf 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
@@ -611,6 +611,14 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.RED + "You can't modify a player with same permissions as you, or higher.");
return true;
}
+ if (!isConsole && !isOpOverride && (permissionHandler.hasGroupInInheritance(auxGroup, senderGroup.getName()))) {
+ sender.sendMessage(ChatColor.RED + "The sub-group can't be the same as yours, or higher.");
+ return true;
+ }
+ if (!isConsole && !isOpOverride && (!permissionHandler.inGroup(senderUser.getName(), auxUser.getGroupName()) || !permissionHandler.inGroup(senderUser.getName(), auxGroup.getName()))) {
+ sender.sendMessage(ChatColor.RED + "You can't modify a player involving a group that you don't inherit.");
+ return true;
+ }
// Seems OK
if (auxUser.addSubGroup(auxGroup))
sender.sendMessage(ChatColor.YELLOW + "You added subgroup '" + auxGroup.getName() + "' to player '" + auxUser.getName() + "'.");