Skip to content

Instantly share code, notes, and snippets.

View trnktms's full-sized avatar
:octocat:

Tamás Tárnok trnktms

:octocat:
View GitHub Profile
public class ExtendedApiContentResponseBuilder : ApiContentBuilderBase<IApiContentResponse>, IApiContentResponseBuilder
{
private readonly IApiContentRouteBuilder _apiContentRouteBuilder;
private readonly IOutputExpansionStrategyAccessor _outputExpansionStrategyAccessor;
private readonly IApiPublishedContentCache _apiPublishedContentCache;
public ExtendedApiContentResponseBuilder(
IApiContentNameProvider apiContentNameProvider,
IApiContentRouteBuilder apiContentRouteBuilder,
IOutputExpansionStrategyAccessor outputExpansionStrategyAccessor,
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
...
// Overwrite the default ApiPublishedContentCache to support wildcard item resolving
services.AddSingleton<ApiPublishedContentCache>();
services.AddSingleton<IApiPublishedContentCache, WildcardApiPublishedContentCache>();
}
}
public class WildcardApiPublishedContentCache : IApiPublishedContentCache
{
private const char SplitChar = '/';
private const string WildcardName = "star";
private readonly ApiPublishedContentCache _apiPublishedContentCache;
public WildcardApiPublishedContentCache(ApiPublishedContentCache apiPublishedContentCache)
{
_apiPublishedContentCache = apiPublishedContentCache;
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- 'Test' OR 'Prod', 'Test' by default -->
<Environment>Test</Environment>
<!-- Use distribution provision profile or development, false by default -->
<Distribute>false</Distribute>
<DefineConstants>ENV_$(Environment)</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='net6.0-ios'">
<ProvisioningType>automatic</ProvisioningType>
├─ 📂 src
│ └─ ♾️ MyApplication.Mobile.sln
├─ 🚀 azure-pipelines-build.yml
├─ 🚀 azure-pipelines-publish.yml
├─ 📄 MyApplication.mobileprovision
└─ 📄 MyApplicationDistribution.mobileprovision
trigger: none
variables:
DotNetVersion: 6.0.x
stages:
# PROD iOS build and upload
- stage: BuildiOS
dependsOn: ''
displayName: PROD - Build iOS and upload for review
trigger:
- main
variables:
DotNetVersion: 6.0.x
stages:
# iOS
- stage: BuildiOS
dependsOn: ''
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/" xmlns:role="http://www.sitecore.net/xmlconfig/role/" xmlns:localenv="http://www.sitecore.net/xmlconfig/localenv/">
<sitecore role:require="ContentManagement or Standalone">
<events>
<event name="item:saved">
<handler type="Feature.EventHandlers.ClearAccessResultCache, Feature" method="OnItemSaved" role:require="ContentManagement or Standalone"/>
</event>
</events>
<authorization>
<providers>
<add name="custom" type="Sitecore.Buckets.Security.BucketAuthorizationProvider, Sitecore.Buckets" connectionStringName="security" embedAclInItems="true">
namespace Feature.EventHandlers
{
public class ClearAccessResultCache
{
private static readonly Dictionary<ID, ID> TemplatesToCheck = new Dictionary<ID, ID>()
{
{ Constants.Template1.TemplateId, Constants.Template1.Fields.Role },
{ Constants.Template2.TemplateId, Constants.Template2.Fields.Role }
};
namespace Feature.Providers.ItemAccessibility
{
public class CustomItemAuthorizationHelper : ItemAuthorizationHelper
{
private static readonly List<Func<Item, Account, AccessResult, AccessResult>> GetItemAccessChecks = new List<Func<Item, Account, AccessResult, AccessResult>>
{
GetProductItemAccess,
GetProductFamilyItemAccess,
GetProductCategoryItemAccess
};