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); }
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); }
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()); }
public bool GetCanRead(IPrincipal principal) { var accessLevel = principal.GetAccessLevel(); return accessLevel >= this.CanRead; }
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; }