コード例 #1
0
 protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, AccessMinLevelRequirement requirement)
 {
     if (context.User.HasClaim(c => c.Type == ClaimTypes.Role))
     {
         AccessLevelUserRolesEnum userRole = (AccessLevelUserRolesEnum)Enum.Parse(typeof(AccessLevelUserRolesEnum), context.User.FindFirst(c => c.Type == ClaimTypes.Role).Value);
         if (userRole >= requirement.Role)
         {
             context.Succeed(requirement);
         }
     }
     return(Task.CompletedTask);
 }
コード例 #2
0
        public ActionResult <IEnumerable <MenuItemModel> > GetUsers()
        {
            AccessLevelUserRolesEnum role = User.HasClaim(c => c.Type == ClaimTypes.Role)
                ? (AccessLevelUserRolesEnum)Enum.Parse(typeof(AccessLevelUserRolesEnum), User.FindFirst(c => c.Type == ClaimTypes.Role).Value)
                : AccessLevelUserRolesEnum.Guest;

            switch (role)
            {
            case AccessLevelUserRolesEnum.Auth:
                return(new NestedMenuModel[] { my });

            case AccessLevelUserRolesEnum.Verified:
                return(new NestedMenuModel[] { my });

            case AccessLevelUserRolesEnum.Privileged:
                return(new NestedMenuModel[] { my });

            case AccessLevelUserRolesEnum.Manager:
                return(new NestedMenuModel[] { users, my });

            case AccessLevelUserRolesEnum.Admin:
                return(new NestedMenuModel[] { users, catalogues, my });

            case AccessLevelUserRolesEnum.ROOT:
                return(new NestedMenuModel[] { users, catalogues, server, my });

            case AccessLevelUserRolesEnum.Guest:
                return(new MenuItemModel[]
                {
                    new MenuItemModel()
                    {
                        Title = "Вход",
                        Href = "/signin/",
                        Tooltip = "Авторизация/Регистрация"
                    }
                });

            default:
                return(new MenuItemModel[]
                {
                    new MenuItemModel()
                    {
                        Title = "Ошибка",
                        Href = "#",
                        Tooltip = "Ошибка ассоциации роли с меню"
                    }
                });
            }
        }
コード例 #3
0
 public AccessMinLevelRequirement(AccessLevelUserRolesEnum role)
 {
     Role = role;
 }