这是基于vue-vben-admin 模板适用于abp vNext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

89 lines
3.5 KiB

using LINGYUN.Abp.Identity.Notifications;
using LINGYUN.Abp.Notifications;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Identity;
using Volo.Abp.Users;
namespace LY.MicroService.AuthServer.DbMigrator.DataSeeds;
public class IdentityUserNotificationDataSeeder : ITransientDependency
{
public ILogger<IdentityUserNotificationDataSeeder> Logger { protected get; set; }
protected IdentityUserManager IdentityUserManager { get; }
protected INotificationSender NotificationSender { get; }
protected INotificationSubscriptionManager NotificationSubscriptionManager { get; }
public IdentityUserNotificationDataSeeder(
IdentityUserManager identityUserManager,
INotificationSender notificationSender,
INotificationSubscriptionManager notificationSubscriptionManager)
{
IdentityUserManager = identityUserManager;
NotificationSender = notificationSender;
NotificationSubscriptionManager = notificationSubscriptionManager;
Logger = NullLogger<IdentityUserNotificationDataSeeder>.Instance;
}
public virtual async Task SeedAsync(DataSeedContext context)
{
await SubscribeDefaultNotifierAsync(context);
}
protected async virtual Task SubscribeDefaultNotifierAsync(DataSeedContext context)
{
var user = await IdentityUserManager.FindByNameAsync("admin");
if (user == null)
{
Logger.LogInformation("No user information named {UserName} was found, so default messages cannot be subscribed to.", "admin");
return;
}
Logger.LogInformation("User {UserId} has subscribed to default notifications.", user.Id);
var userIdentifer = new UserIdentifier(user.Id, user.UserName);
// 订阅内置通知
await NotificationSubscriptionManager
.SubscribeAsync(
context.TenantId,
userIdentifer,
DefaultNotifications.SystemNotice);
await NotificationSubscriptionManager
.SubscribeAsync(
context.TenantId,
userIdentifer,
DefaultNotifications.OnsideNotice);
await NotificationSubscriptionManager
.SubscribeAsync(
context.TenantId,
userIdentifer,
DefaultNotifications.ActivityNotice);
// 新用户订阅会话过期通知
await NotificationSubscriptionManager
.SubscribeAsync(
context.TenantId,
userIdentifer,
IdentityNotificationNames.Session.ExpirationSession);
// 新用户订阅不活跃用户相关通知
await NotificationSubscriptionManager
.SubscribeAsync(
context.TenantId,
userIdentifer,
IdentityNotificationNames.IdentityUser.InactiveUserReminderNotifier);
await NotificationSubscriptionManager
.SubscribeAsync(
context.TenantId,
userIdentifer,
IdentityNotificationNames.IdentityUser.InactiveUserDeactivationNotifier);
// 订阅用户欢迎消息
await NotificationSubscriptionManager
.SubscribeAsync(
context.TenantId,
userIdentifer,
UserNotificationNames.WelcomeToApplication);
Logger.LogInformation("User {UserId} is subscribed to notifications by default.", user.Id);
}
}