From 6f3f53f0dc22d652658700793e8fd994f7fa5858 Mon Sep 17 00:00:00 2001 From: Maverick Motherfucker Date: Fri, 3 Jun 2011 21:39:18 -0700 Subject: [PATCH] Added hardcoded superadmin group --- TShockAPI/Group.cs | 37 ++++++++++++++++++++++++++++++++++++- TShockAPI/Tools.cs | 2 ++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/TShockAPI/Group.cs b/TShockAPI/Group.cs index d3b22e8a..9c226640 100644 --- a/TShockAPI/Group.cs +++ b/TShockAPI/Group.cs @@ -9,6 +9,8 @@ namespace TShockAPI { private string name; private Group parent = null; + private List permissions = new List(); + private List negatedPermissions = new List(); public Group(string groupName, Group parentGroup = null) { @@ -16,6 +18,11 @@ namespace TShockAPI parent = parentGroup; } + public Group() + { + throw new System.Exception("Called Group constructor with no parameters"); + } + public string GetName() { return name; @@ -28,7 +35,35 @@ namespace TShockAPI public bool HasPermission(string permission) { - //TODO: implement this + if (negatedPermissions.Contains(permission)) + { + return false; + } + else if (permissions.Contains(permission)) + { + return true; + } + else if (parent != null) + { + //inception + return parent.HasPermission(permission); + } + return false; + } + } + + public class SuperAdminGroup : Group + { + public SuperAdminGroup(string groupName, Group parentGroup = null) : base(groupName, parentGroup) + { + } + + public SuperAdminGroup() : base() + { + } + + new public bool HasPermission(string permission) + { return true; } } diff --git a/TShockAPI/Tools.cs b/TShockAPI/Tools.cs index c8b79911..35d635ab 100644 --- a/TShockAPI/Tools.cs +++ b/TShockAPI/Tools.cs @@ -321,6 +321,8 @@ namespace TShockAPI private static void LoadGroups() { + groups = new List(); + groups.Add(new SuperAdminGroup("superadmin")); } ///