From cf968c40694d7fa3ce6bf85c955d6aa186a5b80e Mon Sep 17 00:00:00 2001 From: Cyberboss Date: Mon, 16 Apr 2018 15:54:02 -0400 Subject: [PATCH] Fix role distribution --- .../Controllers/ApiController.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Tgstation.Server.Host/Controllers/ApiController.cs b/src/Tgstation.Server.Host/Controllers/ApiController.cs index 2df14a9d56..a75f026057 100644 --- a/src/Tgstation.Server.Host/Controllers/ApiController.cs +++ b/src/Tgstation.Server.Host/Controllers/ApiController.cs @@ -85,12 +85,15 @@ namespace Tgstation.Server.Host.Controllers var authenticationContext = authenticationContextFactory.CurrentAuthenticationContext; var enumerator = Enum.GetValues(typeof(RightsType)); - var claims = new List - { - Capacity = enumerator.Length - }; + var claims = new List(); foreach (RightsType I in enumerator) - claims.Add(new Claim(ClaimTypes.Role, RightsHelper.RoleName(I, authenticationContext.GetRight(I)))); + { + var rightInt = authenticationContext.GetRight(I); + var right = (Enum)(ValueType)authenticationContext.GetRight(I); + foreach(Enum J in Enum.GetValues(RightsHelper.RightToType(I))) + if(right.HasFlag(J)) + claims.Add(new Claim(ClaimTypes.Role, RightsHelper.RoleName(I, rightInt))); + } context.Principal.AddIdentity(new ClaimsIdentity(claims)); }