Browse Source

Extracted CurrentUserExtensions.

pull/206/head
Halil İbrahim Kalkan 9 years ago
parent
commit
c6d59f84db
  1. 25
      src/Volo.Abp.Session/Volo/Abp/Session/CurrentUser.cs
  2. 26
      src/Volo.Abp.Session/Volo/Abp/Session/CurrentUserExtensions.cs
  3. 10
      src/Volo.Abp.Session/Volo/Abp/Session/ICurrentUser.cs

25
src/Volo.Abp.Session/Volo/Abp/Session/CurrentUser.cs

@ -6,7 +6,7 @@ using Volo.Abp.Security.Claims;
namespace Volo.Abp.Session namespace Volo.Abp.Session
{ {
public class CurrentUser : ICurrentUser, ITransientDependency //TODO: Singleton? public class CurrentUser : ICurrentUser, ITransientDependency
{ {
public virtual bool IsAuthenticated => Id.HasValue; public virtual bool IsAuthenticated => Id.HasValue;
@ -14,7 +14,7 @@ namespace Volo.Abp.Session
{ {
get get
{ {
var value = FindClaimValue(AbpClaimTypes.UserId); var value = this.FindClaimValue(AbpClaimTypes.UserId);
if (value == null) if (value == null)
{ {
return null; return null;
@ -24,9 +24,9 @@ namespace Volo.Abp.Session
} }
} }
public virtual string UserName => FindClaimValue(AbpClaimTypes.UserName); public virtual string UserName => this.FindClaimValue(AbpClaimTypes.UserName);
public virtual string Email => FindClaimValue(AbpClaimTypes.Email); public virtual string Email => this.FindClaimValue(AbpClaimTypes.Email);
private readonly ICurrentPrincipalAccessor _principalAccessor; private readonly ICurrentPrincipalAccessor _principalAccessor;
@ -39,22 +39,5 @@ namespace Volo.Abp.Session
{ {
return _principalAccessor.Principal?.Claims.FirstOrDefault(c => c.Type == claimType); return _principalAccessor.Principal?.Claims.FirstOrDefault(c => c.Type == claimType);
} }
public virtual T FindClaimValue<T>(string claimType)
where T : struct
{
var value = FindClaimValue(claimType);
if (value == null)
{
return default;
}
return value.To<T>();
}
public virtual string FindClaimValue(string claimType)
{
return FindClaim(claimType)?.Value;
}
} }
} }

26
src/Volo.Abp.Session/Volo/Abp/Session/CurrentUserExtensions.cs

@ -0,0 +1,26 @@
using System;
using JetBrains.Annotations;
namespace Volo.Abp.Session
{
public static class CurrentUserExtensions
{
[CanBeNull]
public static string FindClaimValue(this ICurrentUser currentUser, string claimType)
{
return currentUser.FindClaim(claimType)?.Value;
}
public static T FindClaimValue<T>(this ICurrentUser currentUser, string claimType)
where T : struct
{
var value = currentUser.FindClaimValue(claimType);
if (value == null)
{
return default;
}
return value.To<T>();
}
}
}

10
src/Volo.Abp.Session/Volo/Abp/Session/ICurrentUser.cs

@ -1,5 +1,6 @@
using System; using System;
using System.Security.Claims; using System.Security.Claims;
using JetBrains.Annotations;
namespace Volo.Abp.Session namespace Volo.Abp.Session
{ {
@ -7,17 +8,16 @@ namespace Volo.Abp.Session
{ {
bool IsAuthenticated { get; } bool IsAuthenticated { get; }
[CanBeNull]
Guid? Id { get; } Guid? Id { get; }
[CanBeNull]
string UserName { get; } string UserName { get; }
[CanBeNull]
string Email { get; } string Email { get; }
[CanBeNull]
Claim FindClaim(string claimType); Claim FindClaim(string claimType);
string FindClaimValue(string claimType);
T FindClaimValue<T>(string claimType)
where T : struct;
} }
} }

Loading…
Cancel
Save