public SPPermissions Get(int userOrGroupId, PermissionsGetOptions options)
        {
            var permissions = (SPPermissions)cacheService.Get(CacheKey(options.ContentId, userOrGroupId), CacheScope.Context | CacheScope.Process);

            if (permissions == null)
            {
                permissions = permissionsService.Get(userOrGroupId, options);
                cacheService.Put(CacheKey(options.ContentId, userOrGroupId), permissions, CacheScope.Context | CacheScope.Process, new string[] { }, CacheTimeOut);
            }
            return(permissions);
        }
        public Inheritance GetInheritance(PermissionsGetOptions options)
        {
            var cacheKey    = string.Concat("SharePoint_PermissionsInheritance:", options.ContentId.ToString("N"));
            var inheritance = (Inheritance)cacheService.Get(cacheKey, CacheScope.Context | CacheScope.Process);

            if (inheritance == null)
            {
                inheritance = permissionsService.GetInheritance(options);
                cacheService.Put(cacheKey, inheritance, CacheScope.Context | CacheScope.Process, new[] { Tag(options.ContentId) }, CacheTimeOut);
            }
            return(inheritance);
        }
        public void ResetInheritance(PermissionsGetOptions options)
        {
            ExpireTags(options.ContentId);

            permissionsService.ResetInheritance(options);
        }
        public void Remove(int[] userOrGroupIds, PermissionsGetOptions options)
        {
            ExpireTags(options.ContentId);

            permissionsService.Remove(userOrGroupIds, options);
        }