public override IList <Access> GetItemContributions(string itemId) { using (var transaction = new TransactionScope(_configuration)) { var store = new AccessDataStore(transaction); return(store.FindContributableByItem(itemId)); } }
public override IList <Access> GetItemVisibilities(string itemId) { using (var transaction = new TransactionScope(_configuration)) { var store = new AccessDataStore(transaction); return(store.FindVisibilityByItem(itemId)); } }
public override void CreateAccess(Access access) { using (var transaction = new TransactionScope(_configuration)) { var store = new AccessDataStore(transaction); if (store.Find(access.ItemId, access.ItemType, access.AccessType, access.PersonTypeId, access.SiteId) == null) { store.InsertOrUpdate(access); transaction.Commit(); } } }
public override void DeleteAccess(string groupId, string itemId, ItemType itemType) { using (var transaction = new TransactionScope(_configuration)) { var store = new AccessDataStore(transaction); Access a = store.Find(itemId, itemType, AccessType.View, groupId); if (a != null) { a.Deleted = true; store.Update(a); transaction.Commit(); } } }
public override void DeleteAccess(string accessId) { using (var transaction = new TransactionScope(_configuration)) { var store = new AccessDataStore(transaction); if (store.FindByKey(accessId) != null) { Access access = store.FindByKey(accessId); access.Deleted = true; store.Update(access); transaction.Commit(); } } }
public override List <Access> GetUsersAccessibleItems(string userName, ItemType itemType, AccessType accessType) { using (var transaction = new TransactionScope(_configuration)) { var store = new AccessDataStore(transaction); IList <PersonType> personTypes = PersonManager.GetPersonTypesByUser(userName); IList <Site> sites = SiteManager.GetSitesByUser(userName, true); var accessList = new List <Access>(); accessList.AddRange(store.FindForAllUsers(itemType, accessType)); accessList.AddRange(store.FindForAllSitesPlusAllPersonTypes(itemType, accessType)); accessList.AddRange(store.FindForUser(itemType, accessType, userName)); foreach (PersonType personType in personTypes) { accessList.AddRange(store.FindForAllSitesPlusPersonType(itemType, accessType, personType.Id)); foreach (Site site in sites) { accessList.AddRange(store.FindForPersonTypeSite(itemType, accessType, personType.Id, site.Id)); } } foreach (Site site in sites) { accessList.AddRange(store.FindForAllPersonTypesPlusSite(itemType, accessType, site.Id)); } //remove duplicates var cleanAccessList = new List <Access>(); foreach (Access access in accessList) { if (!cleanAccessList.Exists(delegate(Access a) { return(a.Id == access.Id); })) { cleanAccessList.Add(access); } } return(cleanAccessList); } }
public override IList <Access> GetItemsMatchingAccess(Access access, ItemType itemType, AccessType accessType) { using (var transaction = new TransactionScope(_configuration)) { var store = new AccessDataStore(transaction); if (access.AllUsers) { return(store.FindForAllUsers(itemType, accessType)); } if (access.AllPersonTypes && access.AllSites) { return(store.FindForAllPersonTypesPlusAllSites(itemType, accessType)); } if (access.UserId != null) { return(store.FindForUser(itemType, accessType, access.UserId)); } if (access.AllPersonTypes && access.SiteId != null) { return(store.FindForAllPersonTypesPlusSite(itemType, accessType, access.SiteId)); } if (access.AllSites && access.PersonTypeId != null) { return(store.FindForAllSitesPlusPersonType(itemType, accessType, access.PersonTypeId)); } if (access.SiteId != null && access.PersonTypeId != null) { return(store.FindForPersonTypeSite(itemType, accessType, access.PersonTypeId, access.SiteId)); } return(new List <Access>()); } }