using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Security.Claims; namespace ManagerService.Tests.Infrastructure { // Constantes reproduisant ManagerService.Service.Security (internal) public static class Permissions { public const string SuperAdmin = "Manager.superadmin"; public const string InstanceAdmin = "Manager.instanceadmin"; public const string ContentEditor = "Manager.contenteditor"; public const string Viewer = "Manager.viewer"; } public static class ClaimTypeKeys { public const string Permission = "Permission"; public const string InstanceId = "InstanceId"; } public static class FakeUser { public static ClaimsPrincipal Create(string role, string instanceId = "inst-test") { var claims = new List { new Claim(ClaimTypeKeys.Permission, role), new Claim(ClaimTypeKeys.InstanceId, instanceId) }; // Rôles cumulatifs : SuperAdmin hérite de tout if (role == Permissions.SuperAdmin) { claims.Add(new Claim(ClaimTypeKeys.Permission, Permissions.InstanceAdmin)); claims.Add(new Claim(ClaimTypeKeys.Permission, Permissions.ContentEditor)); claims.Add(new Claim(ClaimTypeKeys.Permission, Permissions.Viewer)); } else if (role == Permissions.InstanceAdmin) { claims.Add(new Claim(ClaimTypeKeys.Permission, Permissions.ContentEditor)); claims.Add(new Claim(ClaimTypeKeys.Permission, Permissions.Viewer)); } else if (role == Permissions.ContentEditor) { claims.Add(new Claim(ClaimTypeKeys.Permission, Permissions.Viewer)); } return new ClaimsPrincipal(new ClaimsIdentity(claims, "test")); } public static void SetUser(ControllerBase controller, ClaimsPrincipal user) { controller.ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext { User = user } }; } } }