Example #1
0
 public override IList <Access> GetItemContributions(string itemId)
 {
     using (var transaction = new TransactionScope(_configuration))
     {
         var store = new AccessDataStore(transaction);
         return(store.FindContributableByItem(itemId));
     }
 }
Example #2
0
 public override IList <Access> GetItemVisibilities(string itemId)
 {
     using (var transaction = new TransactionScope(_configuration))
     {
         var store = new AccessDataStore(transaction);
         return(store.FindVisibilityByItem(itemId));
     }
 }
Example #3
0
        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();
                }
            }
        }
Example #4
0
        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();
                }
            }
        }
Example #5
0
        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();
                }
            }
        }
Example #6
0
        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);
            }
        }
Example #7
0
        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>());
            }
        }