mirror of https://github.com/Squidex/squidex.git
2 changed files with 25 additions and 76 deletions
@ -1,75 +0,0 @@ |
|||
// ==========================================================================
|
|||
// Squidex Headless CMS
|
|||
// ==========================================================================
|
|||
// Copyright (c) Squidex UG (haftungsbeschraenkt)
|
|||
// All rights reserved. Licensed under the MIT license.
|
|||
// ==========================================================================
|
|||
|
|||
using System; |
|||
using System.Globalization; |
|||
using System.IO; |
|||
using System.Linq; |
|||
using System.Text.Encodings.Web; |
|||
using Fluid; |
|||
using Fluid.Values; |
|||
using Squidex.Shared.Users; |
|||
|
|||
namespace Squidex.Domain.Apps.Core.Templates.Extensions |
|||
{ |
|||
public sealed class UserFluidValue : FluidValue |
|||
{ |
|||
private readonly IUser value; |
|||
|
|||
public override FluidValues Type { get; } = FluidValues.Object; |
|||
|
|||
public UserFluidValue(IUser value) |
|||
{ |
|||
this.value = value; |
|||
} |
|||
|
|||
protected override FluidValue GetValue(string name, TemplateContext context) |
|||
{ |
|||
switch (name) |
|||
{ |
|||
case "id": |
|||
return Create(value.Id); |
|||
case "email": |
|||
return Create(value.Email); |
|||
case "name": |
|||
return Create(value.DisplayName()); |
|||
default: |
|||
return Create(value.Claims.FirstOrDefault(x => string.Equals(name, x.Type, StringComparison.OrdinalIgnoreCase))?.Value); |
|||
} |
|||
} |
|||
|
|||
public override bool Equals(FluidValue other) |
|||
{ |
|||
return other is UserFluidValue user && user.value.Id == value.Id; |
|||
} |
|||
|
|||
public override bool ToBooleanValue() |
|||
{ |
|||
return true; |
|||
} |
|||
|
|||
public override decimal ToNumberValue() |
|||
{ |
|||
return 0; |
|||
} |
|||
|
|||
public override object ToObjectValue() |
|||
{ |
|||
return new UserFluidValue(value); |
|||
} |
|||
|
|||
public override string ToStringValue() |
|||
{ |
|||
return value.Id; |
|||
} |
|||
|
|||
public override void WriteTo(TextWriter writer, TextEncoder encoder, CultureInfo cultureInfo) |
|||
{ |
|||
writer.Write(value.Id); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue