summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2013-01-18 01:01:23 +0100
committersnowleo <schneeleo@gmail.com>2013-01-18 01:01:23 +0100
commit6fdeddd96b74cfe66815cca6fafa1f62486ea4a6 (patch)
treef2fb5cf8fa38d754e83090b974bb63d606c5ed5b /EssentialsGroupManager
parent8082508db927040e1e7b5130750d225ab63bdb9f (diff)
parent04c833f6486ed8da1fed0431f7aaa5cd5769c797 (diff)
downloadEssentials-6fdeddd96b74cfe66815cca6fafa1f62486ea4a6.tar
Essentials-6fdeddd96b74cfe66815cca6fafa1f62486ea4a6.tar.gz
Essentials-6fdeddd96b74cfe66815cca6fafa1f62486ea4a6.tar.lz
Essentials-6fdeddd96b74cfe66815cca6fafa1f62486ea4a6.tar.xz
Essentials-6fdeddd96b74cfe66815cca6fafa1f62486ea4a6.zip
Merge remote-tracking branch 'origin/groupmanager' into 2.9
Diffstat (limited to 'EssentialsGroupManager')
-rw-r--r--EssentialsGroupManager/src/globalgroups.yml5
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java44
2 files changed, 33 insertions, 16 deletions
diff --git a/EssentialsGroupManager/src/globalgroups.yml b/EssentialsGroupManager/src/globalgroups.yml
index 2419d4273..7bfa512a3 100644
--- a/EssentialsGroupManager/src/globalgroups.yml
+++ b/EssentialsGroupManager/src/globalgroups.yml
@@ -242,15 +242,10 @@ groups:
g:towny_default:
permissions:
- - towny.chat.general
- towny.chat.local
g:towny_builder:
permissions:
- - towny.town.*
- - towny.nation.*
- - towny.chat.town
- - towny.chat.nation
- towny.wild.build.6
- towny.wild.destroy.6
- towny.wild.destroy.14
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java
index 59efb33dc..7396f3f70 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java
@@ -768,6 +768,9 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface {
}
/**
+ * Wrapper for offline server checks.
+ * Looks for the 'groupmanager.noofflineperms' permissions and reports no permissions on servers set to offline.
+ *
* Check user and groups with inheritance and Bukkit if bukkit = true return
* a PermissionCheckResult.
*
@@ -778,23 +781,42 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface {
*/
public PermissionCheckResult checkFullGMPermission(User user, String targetPermission, Boolean checkBukkit) {
- PermissionCheckResult result = new PermissionCheckResult();
- result.accessLevel = targetPermission;
- result.resultType = PermissionCheckResult.Type.NOTFOUND;
-
- if (user == null || targetPermission == null || targetPermission.isEmpty()) {
- return result;
- }
-
/*
- * Do not push any perms to bukkit if...
+ * Report no permissions under the following conditions.
+ *
* 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))
+ if (user == null || targetPermission == null || targetPermission.isEmpty() ||
+ (!Bukkit.getServer().getOnlineMode()
+ && (checkPermission(user, "groupmanager.noofflineperms", true).resultType == PermissionCheckResult.Type.FOUND))) {
+
+ PermissionCheckResult result = new PermissionCheckResult();
+ result.accessLevel = targetPermission;
+ result.resultType = PermissionCheckResult.Type.NOTFOUND;
+
return result;
+ }
+
+ return checkPermission(user, targetPermission, checkBukkit);
+ }
+
+ /**
+ *
+ * Check user and groups with inheritance and Bukkit if bukkit = true return
+ * a PermissionCheckResult.
+ *
+ * @param user
+ * @param targetPermission
+ * @param checkBukkit
+ * @return PermissionCheckResult
+ */
+ private PermissionCheckResult checkPermission(User user, String targetPermission, Boolean checkBukkit) {
+ PermissionCheckResult result = new PermissionCheckResult();
+ result.accessLevel = targetPermission;
+ result.resultType = PermissionCheckResult.Type.NOTFOUND;
+
if (checkBukkit) {
// Check Bukkit perms to support plugins which add perms via code
// (Heroes).