Add ability to check permissions by player name
This commit is contained in:
@@ -27,6 +27,11 @@ public class BPermissionsHandler implements PermissionHandler {
|
||||
return ApiLayer.hasPermission(player.getWorld().getName(), CalculableType.USER, player.getName(), node.getNode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String name, PermissionNode node) {
|
||||
return ApiLayer.hasPermission(null, CalculableType.USER, name, node.getNode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInGroup(Player player, String group) {
|
||||
return ApiLayer.hasGroup(player.getWorld().getName(), CalculableType.USER, player.getName(), group);
|
||||
|
||||
@@ -3,6 +3,7 @@ package fr.xephi.authme.permission.handlers;
|
||||
import fr.xephi.authme.permission.PermissionNode;
|
||||
import fr.xephi.authme.permission.PermissionsSystemType;
|
||||
import org.anjocaido.groupmanager.GroupManager;
|
||||
import org.anjocaido.groupmanager.data.User;
|
||||
import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -35,6 +36,13 @@ public class GroupManagerHandler implements PermissionHandler {
|
||||
return handler != null && handler.has(player, node.getNode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String name, PermissionNode node) {
|
||||
final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissionsByPlayerName(name);
|
||||
List<String> perms = handler.getAllPlayersPermissions(name);
|
||||
return perms.contains(node.getNode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInGroup(Player player, String group) {
|
||||
final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player);
|
||||
|
||||
@@ -38,6 +38,17 @@ public interface PermissionHandler {
|
||||
*/
|
||||
boolean hasPermission(Player player, PermissionNode node);
|
||||
|
||||
/**
|
||||
* Check if a player has permission by their name.
|
||||
* Used to check an offline player's permission.
|
||||
*
|
||||
* @param name The player's name.
|
||||
* @param node The permission node.
|
||||
*
|
||||
* @return True if the player has permission.
|
||||
*/
|
||||
boolean hasPermission(String name, PermissionNode node);
|
||||
|
||||
/**
|
||||
* Check whether the player is in the specified group.
|
||||
*
|
||||
|
||||
@@ -25,6 +25,11 @@ public class PermissionsBukkitHandler implements PermissionHandler {
|
||||
return player.hasPermission(node.getNode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String name, PermissionNode node) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInGroup(Player player, String group) {
|
||||
List<String> groupNames = getGroups(player);
|
||||
|
||||
@@ -42,6 +42,12 @@ public class PermissionsExHandler implements PermissionHandler {
|
||||
return user.has(node.getNode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String name, PermissionNode node) {
|
||||
PermissionUser user = permissionManager.getUser(name);
|
||||
return user.has(node.getNode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInGroup(Player player, String group) {
|
||||
PermissionUser user = permissionManager.getUser(player);
|
||||
|
||||
@@ -31,6 +31,11 @@ public class VaultHandler implements PermissionHandler {
|
||||
return vaultProvider.has(player, node.getNode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String name, PermissionNode node) {
|
||||
return vaultProvider.has("", name, node.getNode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInGroup(Player player, String group) {
|
||||
return vaultProvider.playerInGroup(player, group);
|
||||
|
||||
@@ -4,6 +4,7 @@ import fr.xephi.authme.permission.PermissionNode;
|
||||
import fr.xephi.authme.permission.PermissionsSystemType;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.meta.BookMeta;
|
||||
import org.tyrannyofheaven.bukkit.zPermissions.ZPermissionsService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -37,6 +38,15 @@ public class ZPermissionsHandler implements PermissionHandler {
|
||||
return node.getDefaultPermission().evaluate(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String name, PermissionNode node) {
|
||||
Map<String, Boolean> perms = zPermissionsService.getPlayerPermissions(null, null, name);
|
||||
if (perms.containsKey(node.getNode()))
|
||||
return perms.get(node.getNode());
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInGroup(Player player, String group) {
|
||||
return getGroups(player).contains(group);
|
||||
|
||||
Reference in New Issue
Block a user