REST status or v2/server/status now checks for a permission to display ips to the caller. The only way to get this enabled is to use securetokenendpoint config option.
Refactored a tsplayer method.
This commit is contained in:
parent
4c5c2ba0de
commit
ec9cb09cd8
3 changed files with 52 additions and 38 deletions
|
|
@ -236,7 +236,7 @@ namespace TShockAPI
|
|||
var players = new ArrayList();
|
||||
foreach (TSPlayer tsPlayer in TShock.Players.Where(p => null != p))
|
||||
{
|
||||
var p = PlayerFilter(tsPlayer, parameters);
|
||||
var p = PlayerFilter(tsPlayer, parameters, ((tokenData.UserGroupName) != "" && TShock.Utils.GetGroup(tokenData.UserGroupName).HasPermission(RestPermissions.viewips)));
|
||||
if (null != p)
|
||||
players.Add(p);
|
||||
}
|
||||
|
|
@ -859,18 +859,22 @@ namespace TShockAPI
|
|||
return group;
|
||||
}
|
||||
|
||||
private Dictionary<string, object> PlayerFilter(TSPlayer tsPlayer, IParameterCollection parameters)
|
||||
private Dictionary<string, object> PlayerFilter(TSPlayer tsPlayer, IParameterCollection parameters, bool viewips = false)
|
||||
{
|
||||
var player = new Dictionary<string, object>
|
||||
{
|
||||
{"nickname", tsPlayer.Name},
|
||||
{"username", null == tsPlayer.UserAccountName ? "" : tsPlayer.UserAccountName},
|
||||
{"ip", tsPlayer.IP},
|
||||
{"username", tsPlayer.UserAccountName ?? ""},
|
||||
{"group", tsPlayer.Group.Name},
|
||||
{"active", tsPlayer.Active},
|
||||
{"state", tsPlayer.State},
|
||||
{"team", tsPlayer.Team},
|
||||
};
|
||||
|
||||
if (viewips)
|
||||
{
|
||||
player.Add("ip", tsPlayer.IP);
|
||||
}
|
||||
foreach (IParameter filter in parameters)
|
||||
{
|
||||
if (player.ContainsKey(filter.Name) && !player[filter.Name].Equals(filter.Value))
|
||||
|
|
|
|||
|
|
@ -83,5 +83,8 @@ namespace Rests
|
|||
|
||||
[Description("REST user can run raw TShock commands (the raw command permissions are also checked though).")]
|
||||
public static readonly string restrawcommand = "tshock.rest.command";
|
||||
|
||||
[Description("REST user can view the ips of players.")]
|
||||
public static readonly string viewips = "tshock.rest.viewips";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue