public void TestSupervisorEstoqueAsHigherRole() { var rolesToTest = ErpRolesManager.GetAllRoles(Departamento.Estoque); var higherRole = ErpRolesManager.GetHigherRole(rolesToTest.Select(e => e.RoleName).ToList()); Assert.AreEqual(ErpRolesManager.SupervisorDeEstoque, higherRole); }
public void TestSuperAdminHigherRole() { var rolesToTest = ErpRolesManager.GetAllRoles(); var higherRole = ErpRolesManager.GetHigherRole(rolesToTest.Select(e => e.RoleName).ToList()); Assert.AreEqual(ErpRolesManager.SuperAdmin, higherRole); }
public void TestAvailableRoles() { var superAdminRole = ErpRolesManager.SuperAdmin; var availableRoles = superAdminRole.AuthorizedRolesToCreate(); var allRoles = ErpRolesManager.GetAllRoles(); allRoles.ForEach(e => Assert.Contains(e, availableRoles)); }
public static List <ErpRole> AuthorizedRolesToCreate(this ErpRole role) { var allRoles = ErpRolesManager.GetAllRoles(); if (role.RoleName == ErpRoleNames.SuperAdmin) { return(allRoles); } var authorizedRoles = allRoles .Where(e => e.Departamento == role.Departamento && e.Nivel >= role.Nivel) .ToList(); return(authorizedRoles); }
public static List <ErpRole> AuthorizedRolesToCreate(this IList <ErpRole> roles) { var allRoles = ErpRolesManager.GetAllRoles(); if (roles.Contains(ErpRolesManager.SuperAdmin)) { return(allRoles); } var authorizedRoles = new List <ErpRole>(); foreach (var role in roles.GroupBy(e => e.Departamento)) { var higherRoleInDep = ErpRolesManager.GetHigherRole(role.Select(e => e.RoleName).ToList()); authorizedRoles.AddRange(higherRoleInDep.AuthorizedRolesToCreate()); } return(authorizedRoles); }