feat: multi-round messaging, login logo, applicant seed user
All checks were successful
Build and Push Docker Image / build (push) Successful in 7m40s
All checks were successful
Build and Push Docker Image / build (push) Successful in 7m40s
- Communication hub now supports selecting multiple rounds when sending to Round Jury or Round Applicants (checkbox list instead of dropdown) - Recipients are unioned across selected rounds with deduplication - Recipient details grouped by round when multiple rounds selected - Added MOPC logo above "Welcome back" on login page - Added matt@letsbe.solutions as seeded APPLICANT account Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -316,6 +316,7 @@ async function main() {
|
||||
|
||||
const staffAccounts = [
|
||||
{ email: 'matt@monaco-opc.com', name: 'Matt', role: UserRole.SUPER_ADMIN, password: '195260Mp!' },
|
||||
{ email: 'matt@letsbe.solutions', name: 'Matt (Applicant)', role: UserRole.APPLICANT, password: '195260Mp!' },
|
||||
{ email: 'admin@monaco-opc.com', name: 'Admin', role: UserRole.PROGRAM_ADMIN, password: 'Admin123!' },
|
||||
{ email: 'awards@monaco-opc.com', name: 'Award Director', role: UserRole.AWARD_MASTER, password: 'Awards123!' },
|
||||
]
|
||||
@@ -323,10 +324,10 @@ async function main() {
|
||||
const staffUsers: Record<string, string> = {}
|
||||
for (const account of staffAccounts) {
|
||||
const passwordHash = await bcrypt.hash(account.password, 12)
|
||||
const isSuperAdmin = account.role === UserRole.SUPER_ADMIN
|
||||
const needsPassword = account.role === UserRole.SUPER_ADMIN || account.role === UserRole.APPLICANT
|
||||
const user = await prisma.user.upsert({
|
||||
where: { email: account.email },
|
||||
update: isSuperAdmin
|
||||
update: needsPassword
|
||||
? {
|
||||
status: UserStatus.ACTIVE,
|
||||
passwordHash,
|
||||
@@ -348,11 +349,11 @@ async function main() {
|
||||
name: account.name,
|
||||
role: account.role,
|
||||
roles: [account.role],
|
||||
status: isSuperAdmin ? UserStatus.ACTIVE : UserStatus.NONE,
|
||||
passwordHash: isSuperAdmin ? passwordHash : null,
|
||||
mustSetPassword: !isSuperAdmin,
|
||||
passwordSetAt: isSuperAdmin ? new Date() : null,
|
||||
onboardingCompletedAt: isSuperAdmin ? new Date() : null,
|
||||
status: needsPassword ? UserStatus.ACTIVE : UserStatus.NONE,
|
||||
passwordHash: needsPassword ? passwordHash : null,
|
||||
mustSetPassword: !needsPassword,
|
||||
passwordSetAt: needsPassword ? new Date() : null,
|
||||
onboardingCompletedAt: needsPassword ? new Date() : null,
|
||||
},
|
||||
})
|
||||
staffUsers[account.email] = user.id
|
||||
|
||||
Reference in New Issue
Block a user