internal UserAuthManager(IPrincipalUser principal) { _me = principal; _db = principal.ServiceProvider.GetRequiredService <IUsersDbContext>(); _http = principal.ServiceProvider.GetRequiredService <IHttpContextAccessor>().HttpContext; _wechat = principal.ServiceProvider.GetService <WeChatService>(); }
public static UserQuickViewModel QuickView(this IPrincipalUser principal) { if (principal.Id == 0) { return(new UserQuickViewModel()); } return((UserQuickViewModel)principal.Cache().GetOrAdd(nameof(UserQuickViewModel), key => { using var scope = principal.ServiceProvider.CreateScope(); var db = scope.ServiceProvider.GetRequiredService <IUsersDbContext>(); var quickView = db.Users .AsNoTracking() .Where(x => x.Id == principal.Id) .Select(x => new UserQuickViewModel { PhotoUrl = x.PhotoUrl ?? (x.WeChat == null ? null : x.WeChat.HeadImageUrl), PhoneNumber = x.Phone == null ? null : x.Phone.Number, EmailAddress = x.Email == null ? null : x.Email.EmailAddress, RegisteredTime = x.RegisteredTime, AwaitChangePassword = Todo.NoNeed }) .SingleOrDefault(); if (quickView == null) { principal.Auth().SignOut(); } return quickView ?? new UserQuickViewModel(); })); }
public static UserInfoViewModel User(this IPrincipalUser principal) { if (principal.Id == 0 || !(principal.SessionData() is SessionDataContainer sessionData)) { return(new UserInfoViewModel()); } return((UserInfoViewModel)sessionData.GetOrAdd(nameof(UserInfoViewModel), key => { using var scope = principal.ServiceProvider.CreateScope(); var db = scope.ServiceProvider.GetRequiredService <IUsersDbContext>(); var userInfo = db.Users .AsNoTracking() .Where(x => x.Id == principal.Id) .Select(x => new UserInfoViewModel { PhotoUrl = x.PhotoUrl ?? (x.WeChat == null ? null : x.WeChat.HeadImageUrl), PhoneNumber = x.Phone == null ? null : x.Phone.Number, EmailAddress = x.Email == null ? null : x.Email.EmailAddress, RegisteredTime = x.RegisteredTime, AwaitChangePassword = ActionAwait.NoNeed, IsTwoFactorValidated = false }) .SingleOrDefault(); if (userInfo == null) { principal.Auth().SignOut(); } return userInfo ?? new UserInfoViewModel(); })); }
internal UserOrdersManager(IPrincipalUser principal) { _me = principal; _db = principal.ServiceProvider.GetRequiredService <IShoppingDbContext>(); _http = principal.ServiceProvider.GetRequiredService <IHttpContextAccessor>().HttpContext; _wechat = principal.ServiceProvider.GetService <WeChatService>(); _alipay = principal.ServiceProvider.GetService <AlipayService>(); }
public static void AbandonCache(this IPrincipalUser principal) { if (_pool != null) { _pool.Drop(principal.Id.ToString()); _pool.Drop(principal.AnonymousId.ToString()); } }
public void TagPrincipalIdentity(string fileName, IPrincipalUser principal) { Tag(fileName, new Dictionary <string, string> { ["UserId"] = principal.Id.ToString(), ["UserAnonymousId"] = principal.AnonymousId.ToString(), ["UserName"] = principal.DisplayName }); }
public static CacheDictionaryBag Cache(this IPrincipalUser principal) { _timeoutSeconds ??= principal.ServiceProvider.GetService <IKeyValueManager>()?.PrincipalCacheDataBagWillExpireAfterSeconds() ?? 3600; _pool ??= new CacheDataPool <CacheDictionaryBag>(principal.ServiceProvider.GetRequiredService <IMemoryCache>()) { Timeout = TimeSpan.FromSeconds(_timeoutSeconds.Value) }; _pool.Drop(principal.CacheKeyDroppable()); return(_pool.PickOrCreate(principal.CacheKey(), _ => new CacheDictionaryBag(principal))); }
public TwoFactorManager(ITwoFactorDbContext twoFactorDb, IPrincipalUser principal, ISmsSender?smsSender, IMailSender?mailSender) { if (smsSender == null && mailSender == null) { throw new ArgumentNullException(null, $"At least to configure one of {smsSender} or {mailSender}"); } _twoFactorDb = twoFactorDb; _me = principal; _smsSender = smsSender; _mailSender = mailSender; }
internal static void ReadValuesFromPrincipal(this LogBase log, IPrincipalUser principal) { log.AnonymousId = principal.AnonymousId; log.UserId = principal.Id; log.UserName = principal.DisplayName; }
public static IDiagnosticsLogger Logger(this IPrincipalUser principal) => principal.ServiceProvider.GetRequiredService <IDiagnosticsLogger>();
public static UserMessagesManager Messages(this IPrincipalUser principal) => new UserMessagesManager(principal);
public static UserGroupsManager Groups(this IPrincipalUser principal) => new UserGroupsManager(principal);
internal AntiViolenceBlocker(IPrincipalUser principal) { _me = principal; }
public static UserProfileFunctions Profile(this IPrincipalUser principal) => new UserProfileFunctions(principal);
public static UserGroupsFunctions Groups(this IPrincipalUser principal) => new UserGroupsFunctions(principal);
public static UserAuthFunctions Auth(this IPrincipalUser principal) => new UserAuthFunctions(principal);
public TwoFactorManager(ITwoFactorDbContext twoFactorDb, IPrincipalUser principal, ISmsSender smsSender) : this(twoFactorDb, principal, smsSender, null) { }
internal CacheDictionaryBag(IPrincipalUser principal) { _principal = principal; }
internal static string CacheKey(this IPrincipalUser principal) { return(principal.IsAnonymous ? principal.AnonymousId.ToString() : principal.Id.ToString()); }
internal UserAuthFunctions(IPrincipalUser principal) { _me = principal; _db = principal.ServiceProvider.GetRequiredService <IUsersDbContext>(); }
internal static string CacheKeyDroppable(this IPrincipalUser principal) { return(principal.IsAuthenticated ? principal.AnonymousId.ToString() : principal.Id.ToString()); }
public IndexPageModel(IPrincipalUser principal, IDiagnosticsDbContext db) { _me = principal; _db = db; }
public static UserMessagesFunctions Messages(this IPrincipalUser principal) => new UserMessagesFunctions(principal);
public TwoFactorManager(ITwoFactorDbContext twoFactorDb, IPrincipalUser principal, IMailSender mailSender) : this(twoFactorDb, principal, null, mailSender) { }
public static ITwoFactorManager TwoFactor(this IPrincipalUser principal) => principal.ServiceProvider.GetRequiredService <ITwoFactorManager>();
public static UserAuthManager Auth(this IPrincipalUser principal) => new UserAuthManager(principal);
internal UserProfileManager(IPrincipalUser principal) { _me = principal; _db = principal.ServiceProvider.GetRequiredService <IUsersDbContext>(); }
public static UserProfileManager Profile(this IPrincipalUser principal) => new UserProfileManager(principal);
internal UserCartManager(IPrincipalUser principal) { _me = principal; _db = principal.ServiceProvider.GetRequiredService <IShoppingDbContext>(); }
public AntiViolenceDefender(IPrincipalUser principal) { _me = principal; }