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 void TestSupervisorComprasEEstoqueHigherRoles()
        {
            var rolesToTest = new List <ErpRole>()
            {
                ErpRolesManager.SupervisorDeCompras,
                ErpRolesManager.Estoque
            };

            var higherRole = ErpRolesManager.GetHigherRole(rolesToTest.Select(e => e.RoleName).ToList());

            Assert.AreEqual(ErpRolesManager.SupervisorDeCompras, higherRole);
        }
Exemple #5
0
        public ErpRole GetHigherRole(ApplicationUser user)
        {
            IList <Claim> claims = GetUserClaims(user);

            var roles = claims
                        .Where(c => c.Type == ClaimTypes.Role)
                        .Select(c => c.Value)
                        .ToList();

            ErpRole higherRole = ErpRolesManager.GetHigherRole(roles);

            return(higherRole);
        }
        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);
        }