Skip to content

Instantly share code, notes, and snippets.

Avatar
:octocat:

Tamás Tárnok trnktms

:octocat:
View GitHub Profile
View CustomAuthorizationProvider.config
<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">
View ClearAccessResultCache.cs
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 }
};
View CustomItemAuthorizationHelper.cs
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
};
View RegisterContainer.cs
namespace Feature.DI
{
public class RegisterContainer : IServicesConfigurator
{
public void Configure(IServiceCollection serviceCollection)
{
serviceCollection.AddTransient<ItemAuthorizationHelper, CustomItemAuthorizationHelper>();
}
}
}
View CustomAuthorizationProvider.cs
namespace Feature.Providers.ItemAccessibility
{
public class CustomAuthorizationProvider : BucketAuthorizationProvider
{
[Obsolete]
public CustomAuthorizationProvider() : base()
{
ItemHelper = (ItemAuthorizationHelper)ServiceLocator.ServiceProvider.GetService(typeof(ItemAuthorizationHelper));
}
View pre-commit
#!/bin/sh
pwsh.exe -ExecutionPolicy RemoteSigned -File '.githooks\pre-commit.ps1'
View pre-commit.ps1
try {
Get-ChildItem .\tests\api-tests\**.ps1 -Recurse | ForEach-Object {
Set-Location -Path $_.Directory
Write-Host "Running test: " .\ $_.Directory.Name \ $_.Name " -> " -NoNewline -Separator ''
(& $_.FullName) ? "Passed" : "Failed"
}
}
catch {
Write-Host "Failed"
throw;
View config.json
{
"Host": "localhost:3000"
}
View response-schema.json
{
"$schema": "http://json-schema.org/draft-06/schema#",
"$ref": "#/definitions/Welcome1",
"definitions": {
"Welcome1": {
"type": "object",
"additionalProperties": false,
"properties": {
"SomeObject": {
"$ref": "#/definitions/SomeObject"
View test.ps1
$config = Get-Content ../config.json | ConvertFrom-Json
$apiRoute = $config.SitecoreHost + '/api/<area>/<api1>'
$result = Invoke-WebRequest $apiRoute
Test-Json -Json $result -SchemaFile .\response-schema.json