feat: align with upstream 1.5.9.9
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
import { db, users } from '~/drizzle/db'
|
||||
import { inArray } from 'drizzle-orm'
|
||||
import { createBatchSystemNotifications } from '~~/server/services/notificationService'
|
||||
import { SmtpService } from '~~/server/services/smtpService'
|
||||
|
||||
// 注册通知:待审核时站内通知所有管理员;有邮箱时邮件通知注册结果(异步,失败不影响主流程)
|
||||
export async function notifyRegistration(
|
||||
userId: number,
|
||||
username: string,
|
||||
name: string,
|
||||
email: string,
|
||||
requiresApproval: boolean
|
||||
) {
|
||||
try {
|
||||
if (requiresApproval) {
|
||||
const adminResult = await db
|
||||
.select({ id: users.id })
|
||||
.from(users)
|
||||
.where(inArray(users.role, ['ADMIN', 'SUPER_ADMIN']))
|
||||
const adminIds = adminResult.map((u) => u.id)
|
||||
if (adminIds.length > 0) {
|
||||
await createBatchSystemNotifications(
|
||||
adminIds,
|
||||
'新用户注册待审核',
|
||||
`用户「${name}」(用户名:${username})提交了注册申请,请前往用户管理审核。`,
|
||||
false
|
||||
)
|
||||
}
|
||||
}
|
||||
if (email) {
|
||||
const smtpService = SmtpService.getInstance()
|
||||
if (await smtpService.ensureInitialized()) {
|
||||
await smtpService.renderAndSend(email, 'register', {
|
||||
title: requiresApproval ? '注册申请已提交' : '注册成功',
|
||||
message: requiresApproval
|
||||
? `${name},您的注册申请已提交,请耐心等待管理员审核。`
|
||||
: `${name},恭喜您注册成功,欢迎使用 VoiceHub!`
|
||||
})
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('注册通知发送失败:', error)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user