/// <summary> Initializes a new instance of the <see cref="RequestCachingWebsiteAccessPermissionProvider"/> class. </summary> /// <param name="underlyingProvider"> The underlying provider. </param> /// <param name="website"> The website. </param> public RequestCachingWebsiteAccessPermissionProvider(IWebsiteAccessPermissionProvider underlyingProvider, EntityReference website) { if (underlyingProvider == null) { throw new ArgumentNullException("underlyingProvider"); } if (website == null) { throw new ArgumentNullException("website"); } this._underlyingProvider = underlyingProvider; this._website = website; }
protected virtual void AssertRequestEntitySecurity(IPortalContext portal, OrganizationServiceContext serviceContext, Entity entity, ICrmEntitySecurityProvider security, IWebsiteAccessPermissionProvider websiteAccess, CmsEntityRelationshipInfo relationshipInfo) { if (!entity.ToEntityReference().Equals(portal.Website.ToEntityReference())) { return; } var otherEntity = relationshipInfo.IsCollection ? relationshipInfo.ReferencingEntity : relationshipInfo.ReferencedEntity; if (string.Equals(otherEntity, "adx_contentsnippet", StringComparison.OrdinalIgnoreCase)) { if (!websiteAccess.TryAssert(serviceContext, WebsiteRight.ManageContentSnippets)) { throw new CmsEntityServiceException(HttpStatusCode.Forbidden, "Manage Content Snippets permission denied."); } return; } if (string.Equals(otherEntity, "adx_sitemarker", StringComparison.OrdinalIgnoreCase)) { if (!websiteAccess.TryAssert(serviceContext, WebsiteRight.ManageSiteMarkers)) { throw new CmsEntityServiceException(HttpStatusCode.Forbidden, "Manage Site Markers permission denied."); } return; } if (string.Equals(otherEntity, "adx_weblinkset", StringComparison.OrdinalIgnoreCase) || string.Equals(otherEntity, "adx_weblink", StringComparison.OrdinalIgnoreCase)) { if (!websiteAccess.TryAssert(serviceContext, WebsiteRight.ManageWebLinkSets)) { throw new CmsEntityServiceException(HttpStatusCode.Forbidden, "Manage Web Link Sets permission denied."); } return; } base.AssertRequestEntitySecurity(portal, serviceContext, entity, security); }