Exemplo n.º 1
0
        public bool IsTokenAuthorized(string token, AccessLevel accessLevelRequired)
        {
            if (accessLevelRequired == AccessLevel.Public)
            {
                return(true);
            }

            var metadata = _storage.GetMetadata(token);

            if (metadata == null)
            {
                return(false);
            }

            switch (accessLevelRequired)
            {
            case AccessLevel.Admin:
                return(metadata.Role == UserRole.Admin);

            case AccessLevel.User:
                return(metadata.Role == UserRole.Admin || metadata.Role == UserRole.User);

            case AccessLevel.Public:
                return(true);

            case AccessLevel.Anonymous:
                return(metadata.Role == UserRole.Public);
            }

            return(true);
        }