123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- using Microsoft.AspNetCore.Http;
- using System;
- using ZhonTai.Common.Extensions;
- using ZhonTai.Admin.Core.Entities;
- using ZhonTai.Admin.Domain.User;
- namespace ZhonTai.Admin.Core.Auth;
- /// <summary>
- /// 用户信息
- /// </summary>
- public class User : IUser
- {
- private readonly IHttpContextAccessor _accessor;
- public User(IHttpContextAccessor accessor)
- {
- _accessor = accessor;
- }
- /// <summary>
- /// 用户Id
- /// </summary>
- public virtual long Id
- {
- get
- {
- var id = _accessor?.HttpContext?.User?.FindFirst(ClaimAttributes.UserId);
- if (id != null && id.Value.NotNull())
- {
- return id.Value.ToLong();
- }
- return 0;
- }
- }
- /// <summary>
- /// 用户名
- /// </summary>
- public string UserName
- {
- get
- {
- var name = _accessor?.HttpContext?.User?.FindFirst(ClaimAttributes.UserName);
- if (name != null && name.Value.NotNull())
- {
- return name.Value;
- }
- return "";
- }
- }
- /// <summary>
- /// 姓名
- /// </summary>
- public string Name
- {
- get
- {
- var name = _accessor?.HttpContext?.User?.FindFirst(ClaimAttributes.Name);
- if (name != null && name.Value.NotNull())
- {
- return name.Value;
- }
- return "";
- }
- }
- /// <summary>
- /// 租户Id
- /// </summary>
- public virtual long? TenantId
- {
- get
- {
- var tenantId = _accessor?.HttpContext?.User?.FindFirst(ClaimAttributes.TenantId);
- if (tenantId != null && tenantId.Value.NotNull())
- {
- return tenantId.Value.ToLong();
- }
- return null;
- }
- }
- /// <summary>
- /// 用户类型
- /// </summary>
- public virtual UserType Type
- {
- get
- {
- var userType = _accessor?.HttpContext?.User?.FindFirst(ClaimAttributes.UserType);
- if (userType != null && userType.Value.NotNull())
- {
- return (UserType)Enum.Parse(typeof(UserType), userType.Value, true);
- }
- return UserType.DefaultUser;
- }
- }
- /// <summary>
- /// 默认用户
- /// </summary>
- public virtual bool DefaultUser
- {
- get
- {
- return Type == UserType.DefaultUser;
- }
- }
- /// <summary>
- /// 平台管理员
- /// </summary>
- public virtual bool PlatformAdmin
- {
- get
- {
- return Type == UserType.PlatformAdmin;
- }
- }
- /// <summary>
- /// 租户管理员
- /// </summary>
- public virtual bool TenantAdmin
- {
- get
- {
- return Type == UserType.TenantAdmin;
- }
- }
- /// <summary>
- /// 租户类型
- /// </summary>
- public virtual TenantType? TenantType
- {
- get
- {
- var tenantType = _accessor?.HttpContext?.User?.FindFirst(ClaimAttributes.TenantType);
- if (tenantType != null && tenantType.Value.NotNull())
- {
- return (TenantType)Enum.Parse(typeof(TenantType), tenantType.Value, true);
- }
- return null;
- }
- }
- /// <summary>
- /// 数据隔离类型
- /// </summary>
- public virtual DataIsolationType? DataIsolationType
- {
- get
- {
- var dataIsolationType = _accessor?.HttpContext?.User?.FindFirst(ClaimAttributes.DataIsolationType);
- if (dataIsolationType != null && dataIsolationType.Value.NotNull())
- {
- return (DataIsolationType)Enum.Parse(typeof(DataIsolationType), dataIsolationType.Value, true);
- }
- return null;
- }
- }
- }
|