Пример #1
0
        public static bool CanAdmin(this Article article, IPrincipal principal)
        {
            if (article == null)
            {
                throw new ArgumentNullException("article");
            }

            var accessLevel = principal.GetAccessLevel();

            return(accessLevel >= article.ArticleAccess.CanAdmin);
        }
Пример #2
0
        private IEnumerable <string> GetRoles(IPrincipal principal, WikiDownUser user)
        {
            var userRoles = ArticleAccessHelper.GetRoles(this.AccessLevel);

            if (user != null)
            {
                var userAccessLevel      = ArticleAccessHelper.GetAccessLevel(user.Roles);
                var principalAccessLevel = principal.GetAccessLevel();
                if (userAccessLevel > principalAccessLevel)
                {
                    throw new HttpResponseException(HttpStatusCode.Forbidden);
                }
            }

            return(userRoles);
        }
Пример #3
0
        public Repository(IDocumentStore documentStore, IPrincipal principal)
        {
            if (documentStore == null)
            {
                throw new ArgumentNullException("documentStore");
            }
            if (principal == null)
            {
                throw new ArgumentNullException("principal");
            }

            this.documentStore = documentStore;
            this.principal     = principal;

            this.principalId          = (principal.Identity != null) ? principal.Identity.Name : null;
            this.principalAccessLevel = new Lazy <int>(() => (int)principal.GetAccessLevel());

            this.currentAsyncSessionLazy = new Lazy <IAsyncDocumentSession>(() => this.documentStore.OpenAsyncSession());
            this.currentSessionLazy      = new Lazy <IDocumentSession>(() => this.documentStore.OpenSession());
        }
Пример #4
0
 public bool GetCanRead(IPrincipal principal)
 {
     var accessLevel = principal.GetAccessLevel();
     return accessLevel >= this.CanRead;
 }
Пример #5
0
        private IEnumerable<string> GetRoles(IPrincipal principal, WikiDownUser user)
        {
            var userRoles = ArticleAccessHelper.GetRoles(this.AccessLevel);

            if (user != null)
            {
                var userAccessLevel = ArticleAccessHelper.GetAccessLevel(user.Roles);
                var principalAccessLevel = principal.GetAccessLevel();
                if (userAccessLevel > principalAccessLevel)
                {
                    throw new HttpResponseException(HttpStatusCode.Forbidden);
                }
            }

            return userRoles;
        }