diff --git a/TShockAPI/Permissions.cs b/TShockAPI/Permissions.cs
index 82945147..e7dee2b7 100644
--- a/TShockAPI/Permissions.cs
+++ b/TShockAPI/Permissions.cs
@@ -166,9 +166,6 @@ namespace TShockAPI
[Description("User can save all the players SSI state.")]
public static readonly string savessi;
- [Description("User can use rest api calls.")]
- public static readonly string restapi;
-
[Description("User can force the server to Christmas mode.")] public static readonly string xmas;
[Description("User can use /home.")] public static readonly string home;
@@ -179,60 +176,6 @@ namespace TShockAPI
[Description("User can download updates to plugins that are currently running.")] public static readonly string updateplugins;
- #region Rest Endpoint Permissions
- [Description("Rest user can turn off / restart the server.")]
- public static readonly string restmaintenance;
-
- [Description("Rest user can reload configurations, save the world and set auto save settings.")]
- public static readonly string restcfg;
-
-
- [Description("Rest user can list and get detailed information about users.")]
- public static readonly string restviewusers;
-
- [Description("Rest user can alter users.")]
- public static readonly string restmanageusers;
-
- [Description("Rest user can list and get detailed information about bans.")]
- public static readonly string restviewbans;
-
- [Description("Rest user can alter bans.")]
- public static readonly string restmanagebans;
-
- [Description("Rest user can list and get detailed information about groups.")]
- public static readonly string restviewgroups;
-
- [Description("Rest user can alter groups.")]
- public static readonly string restmanagegroups;
-
-
- [Description("Rest user can get user information.")]
- public static readonly string restuserinfo;
-
- [Description("Rest user can kick players.")]
- public static readonly string restkick;
-
- [Description("Rest user can ban players.")]
- public static readonly string restban;
-
- [Description("Rest user can mute and unmute players.")]
- public static readonly string restmute;
-
- [Description("Rest user can kill players.")]
- public static readonly string restkill;
-
-
- [Description("Rest user can drop meteors or change bloodmoon.")]
- public static readonly string restcauseevents;
-
- [Description("Rest user can butcher npcs.")]
- public static readonly string restbutcher;
-
-
- [Description("Rest user can run raw TShock commands (the raw command permissions are also checked though).")]
- public static readonly string restrawcommand;
- #endregion
-
static Permissions()
{
foreach (var field in typeof (Permissions).GetFields())
diff --git a/TShockAPI/Rest/RestManager.cs b/TShockAPI/Rest/RestManager.cs
index 316d0cbb..bb0e136d 100644
--- a/TShockAPI/Rest/RestManager.cs
+++ b/TShockAPI/Rest/RestManager.cs
@@ -55,51 +55,51 @@ namespace TShockAPI
}
Rest.Register(new SecureRestCommand("/v2/server/broadcast", ServerBroadcast));
- Rest.Register(new SecureRestCommand("/v2/server/reload", ServerReload, Permissions.restcfg));
- Rest.Register(new SecureRestCommand("/v2/server/off", ServerOff, Permissions.restmaintenance));
- Rest.Register(new SecureRestCommand("/v2/server/restart", ServerRestart, Permissions.restmaintenance));
- Rest.Register(new SecureRestCommand("/v2/server/rawcmd", ServerCommand, Permissions.restrawcommand));
- Rest.Register(new SecureRestCommand("/v3/server/rawcmd", ServerCommandV3, Permissions.restrawcommand));
+ Rest.Register(new SecureRestCommand("/v2/server/reload", ServerReload, RestPermissions.restcfg));
+ Rest.Register(new SecureRestCommand("/v2/server/off", ServerOff, RestPermissions.restmaintenance));
+ Rest.Register(new SecureRestCommand("/v2/server/restart", ServerRestart, RestPermissions.restmaintenance));
+ Rest.Register(new SecureRestCommand("/v2/server/rawcmd", ServerCommand, RestPermissions.restrawcommand));
+ Rest.Register(new SecureRestCommand("/v3/server/rawcmd", ServerCommandV3, RestPermissions.restrawcommand));
Rest.Register(new SecureRestCommand("/tokentest", ServerTokenTest));
// User Commands
- Rest.Register(new SecureRestCommand("/v2/users/activelist", UserActiveListV2, Permissions.restviewusers));
- Rest.Register(new SecureRestCommand("/v2/users/create", UserCreateV2, Permissions.restmanageusers) { DoLog = false });
- Rest.Register(new SecureRestCommand("/v2/users/list", UserListV2, Permissions.restviewusers));
- Rest.Register(new SecureRestCommand("/v2/users/read", UserInfoV2, Permissions.restviewusers));
- Rest.Register(new SecureRestCommand("/v2/users/destroy", UserDestroyV2, Permissions.restmanageusers));
- Rest.Register(new SecureRestCommand("/v2/users/update", UserUpdateV2, Permissions.restmanageusers) { DoLog = false });
+ Rest.Register(new SecureRestCommand("/v2/users/activelist", UserActiveListV2, RestPermissions.restviewusers));
+ Rest.Register(new SecureRestCommand("/v2/users/create", UserCreateV2, RestPermissions.restmanageusers) { DoLog = false });
+ Rest.Register(new SecureRestCommand("/v2/users/list", UserListV2, RestPermissions.restviewusers));
+ Rest.Register(new SecureRestCommand("/v2/users/read", UserInfoV2, RestPermissions.restviewusers));
+ Rest.Register(new SecureRestCommand("/v2/users/destroy", UserDestroyV2, RestPermissions.restmanageusers));
+ Rest.Register(new SecureRestCommand("/v2/users/update", UserUpdateV2, RestPermissions.restmanageusers) { DoLog = false });
// Ban Commands
- Rest.Register(new SecureRestCommand("/bans/create", BanCreate, Permissions.restmanagebans));
- Rest.Register(new SecureRestCommand("/v2/bans/list", BanListV2, Permissions.restviewbans));
- Rest.Register(new SecureRestCommand("/v2/bans/read", BanInfoV2, Permissions.restviewbans));
- Rest.Register(new SecureRestCommand("/v2/bans/destroy", BanDestroyV2, Permissions.restmanagebans));
+ Rest.Register(new SecureRestCommand("/bans/create", BanCreate, RestPermissions.restmanagebans));
+ Rest.Register(new SecureRestCommand("/v2/bans/list", BanListV2, RestPermissions.restviewbans));
+ Rest.Register(new SecureRestCommand("/v2/bans/read", BanInfoV2, RestPermissions.restviewbans));
+ Rest.Register(new SecureRestCommand("/v2/bans/destroy", BanDestroyV2, RestPermissions.restmanagebans));
// World Commands
Rest.Register(new SecureRestCommand("/world/read", WorldRead));
- Rest.Register(new SecureRestCommand("/world/meteor", WorldMeteor, Permissions.restcauseevents));
- Rest.Register(new SecureRestCommand("/world/bloodmoon/{bool}", WorldBloodmoon, Permissions.restcauseevents));
- Rest.Register(new SecureRestCommand("/v2/world/save", WorldSave, Permissions.restcfg));
- Rest.Register(new SecureRestCommand("/v2/world/autosave/state/{bool}", WorldChangeSaveSettings, Permissions.restcfg));
- Rest.Register(new SecureRestCommand("/v2/world/butcher", WorldButcher, Permissions.restbutcher));
+ Rest.Register(new SecureRestCommand("/world/meteor", WorldMeteor, RestPermissions.restcauseevents));
+ Rest.Register(new SecureRestCommand("/world/bloodmoon/{bool}", WorldBloodmoon, RestPermissions.restcauseevents));
+ Rest.Register(new SecureRestCommand("/v2/world/save", WorldSave, RestPermissions.restcfg));
+ Rest.Register(new SecureRestCommand("/v2/world/autosave/state/{bool}", WorldChangeSaveSettings, RestPermissions.restcfg));
+ Rest.Register(new SecureRestCommand("/v2/world/butcher", WorldButcher, RestPermissions.restbutcher));
// Player Commands
Rest.Register(new SecureRestCommand("/lists/players", PlayerList));
Rest.Register(new SecureRestCommand("/v2/players/list", PlayerListV2));
- Rest.Register(new SecureRestCommand("/v2/players/read", PlayerReadV2, Permissions.restuserinfo));
- Rest.Register(new SecureRestCommand("/v2/players/kick", PlayerKickV2, Permissions.restkick));
- Rest.Register(new SecureRestCommand("/v2/players/ban", PlayerBanV2, Permissions.restban, Permissions.restmanagebans));
- Rest.Register(new SecureRestCommand("/v2/players/kill", PlayerKill, Permissions.restkill));
- Rest.Register(new SecureRestCommand("/v2/players/mute", PlayerMute, Permissions.restmute));
- Rest.Register(new SecureRestCommand("/v2/players/unmute", PlayerUnMute, Permissions.restmute));
+ Rest.Register(new SecureRestCommand("/v2/players/read", PlayerReadV2, RestPermissions.restuserinfo));
+ Rest.Register(new SecureRestCommand("/v2/players/kick", PlayerKickV2, RestPermissions.restkick));
+ Rest.Register(new SecureRestCommand("/v2/players/ban", PlayerBanV2, RestPermissions.restban, RestPermissions.restmanagebans));
+ Rest.Register(new SecureRestCommand("/v2/players/kill", PlayerKill, RestPermissions.restkill));
+ Rest.Register(new SecureRestCommand("/v2/players/mute", PlayerMute, RestPermissions.restmute));
+ Rest.Register(new SecureRestCommand("/v2/players/unmute", PlayerUnMute, RestPermissions.restmute));
// Group Commands
- Rest.Register(new SecureRestCommand("/v2/groups/list", GroupList, Permissions.restviewgroups));
- Rest.Register(new SecureRestCommand("/v2/groups/read", GroupInfo, Permissions.restviewgroups));
- Rest.Register(new SecureRestCommand("/v2/groups/destroy", GroupDestroy, Permissions.restmanagegroups));
- Rest.Register(new SecureRestCommand("/v2/groups/create", GroupCreate, Permissions.restmanagegroups));
- Rest.Register(new SecureRestCommand("/v2/groups/update", GroupUpdate, Permissions.restmanagegroups));
+ Rest.Register(new SecureRestCommand("/v2/groups/list", GroupList, RestPermissions.restviewgroups));
+ Rest.Register(new SecureRestCommand("/v2/groups/read", GroupInfo, RestPermissions.restviewgroups));
+ Rest.Register(new SecureRestCommand("/v2/groups/destroy", GroupDestroy, RestPermissions.restmanagegroups));
+ Rest.Register(new SecureRestCommand("/v2/groups/create", GroupCreate, RestPermissions.restmanagegroups));
+ Rest.Register(new SecureRestCommand("/v2/groups/update", GroupUpdate, RestPermissions.restmanagegroups));
}
#region RestServerMethods
diff --git a/TShockAPI/Rest/RestPermissions.cs b/TShockAPI/Rest/RestPermissions.cs
new file mode 100644
index 00000000..e1c446cf
--- /dev/null
+++ b/TShockAPI/Rest/RestPermissions.cs
@@ -0,0 +1,90 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2011-2012 The TShock Team
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+using System;
+using System.ComponentModel;
+using System.Linq;
+
+namespace Rests
+{
+ public static class RestPermissions
+ {
+ [Description("User can create REST tokens.")]
+ public static readonly string restapi;
+
+
+ [Description("REST user can turn off / restart the server.")]
+ public static readonly string restmaintenance;
+
+ [Description("REST user can reload configurations, save the world and set auto save settings.")]
+ public static readonly string restcfg;
+
+
+ [Description("REST user can list and get detailed information about users.")]
+ public static readonly string restviewusers;
+
+ [Description("REST user can alter users.")]
+ public static readonly string restmanageusers;
+
+ [Description("REST user can list and get detailed information about bans.")]
+ public static readonly string restviewbans;
+
+ [Description("REST user can alter bans.")]
+ public static readonly string restmanagebans;
+
+ [Description("REST user can list and get detailed information about groups.")]
+ public static readonly string restviewgroups;
+
+ [Description("REST user can alter groups.")]
+ public static readonly string restmanagegroups;
+
+
+ [Description("REST user can get user information.")]
+ public static readonly string restuserinfo;
+
+ [Description("REST user can kick players.")]
+ public static readonly string restkick;
+
+ [Description("REST user can ban players.")]
+ public static readonly string restban;
+
+ [Description("REST user can mute and unmute players.")]
+ public static readonly string restmute;
+
+ [Description("REST user can kill players.")]
+ public static readonly string restkill;
+
+
+ [Description("REST user can drop meteors or change bloodmoon.")]
+ public static readonly string restcauseevents;
+
+ [Description("REST user can butcher npcs.")]
+ public static readonly string restbutcher;
+
+
+ [Description("REST user can run raw TShock commands (the raw command permissions are also checked though).")]
+ public static readonly string restrawcommand;
+
+ static RestPermissions()
+ {
+ foreach (var field in typeof (RestPermissions).GetFields())
+ {
+ field.SetValue(null, field.Name);
+ }
+ }
+ }
+}
diff --git a/TShockAPI/TShockAPI.csproj b/TShockAPI/TShockAPI.csproj
index b98c1645..e21ddc8a 100644
--- a/TShockAPI/TShockAPI.csproj
+++ b/TShockAPI/TShockAPI.csproj
@@ -89,6 +89,7 @@
+
@@ -191,7 +192,7 @@
-
+