Do not grant any permissions (nort update Bukkit) if the server is in

offline mode and the player has the permission node
'groupmanager.noofflineperms'.
This commit is contained in:
ElgarL 2013-01-13 16:39:53 +00:00
parent 24f56892ad
commit ad7009c77e
4 changed files with 30 additions and 5 deletions

View File

@ -206,4 +206,5 @@ v 2.0:
- Prevent GM commands from being used on CommandBlocks.
- Clear our attachment map upon a manload so we correctly reconfigure a players new permissions.
- Synchronize the raising of GroupManager events to Bukkit.getServer() (should prevent deadlocks).
- Synchronize pushing to Bukkit perms to prevent any ConcurrentModificationException.
- Synchronize pushing to Bukkit perms to prevent any ConcurrentModificationException.
- Do not grant any permissions (nort update Bukkit) if the server is in offline mode and the player has the permission node 'groupmanager.noofflineperms'.

View File

@ -16,6 +16,7 @@ import org.anjocaido.groupmanager.data.Group;
import org.anjocaido.groupmanager.dataholder.WorldDataHolder;
import org.anjocaido.groupmanager.data.User;
import org.anjocaido.groupmanager.utils.PermissionCheckResult;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
/**
@ -784,6 +785,15 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface {
if (user == null || targetPermission == null || targetPermission.isEmpty()) {
return result;
}
/*
* Do not push any perms to bukkit if...
* We are in offline mode
* and the player has the 'groupmanager.noofflineperms' permission.
*/
if (!Bukkit.getServer().getOnlineMode()
&& (checkFullGMPermission(user, "groupmanager.noofflineperms", true).resultType == PermissionCheckResult.Type.FOUND))
return result;
if (checkBukkit) {
// Check Bukkit perms to support plugins which add perms via code

View File

@ -31,7 +31,6 @@ import java.util.WeakHashMap;
import org.anjocaido.groupmanager.GroupManager;
import org.anjocaido.groupmanager.data.User;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@ -183,6 +182,18 @@ public class BukkitPermissions {
value = (!permission.startsWith("-"));
newPerms.put((value ? permission : permission.substring(1)), value);
}
/*
* Do not push any perms to bukkit if...
* We are in offline mode
* and the player has the 'groupmanager.noofflineperms' permission.
*/
if (!Bukkit.getServer().getOnlineMode()
&& (newPerms.containsKey("groupmanager.noofflineperms") && (newPerms.get("groupmanager.noofflineperms") == true))) {
removeAttachment(name);
return;
}
/**
* This is put in place until such a time as Bukkit pull 466 is

View File

@ -3,13 +3,16 @@ users:
snowleo:
group: Builder
subgroups: []
permissions: []
permissions:
- groupmanager.noofflineperms
KHobbits:
group: Moderator
subgroups: []
permissions: []
permissions:
- groupmanager.noofflineperms
ElgarL:
group: Moderator
subgroups: []
permissions: []
permissions:
- groupmanager.noofflineperms