fix: prevent duplicate user_ prefix in usernames
- Update user creation logic to strip 'user_' prefix from Clerk ID before generating username - Change default username pattern from 'user_<clerkId>' to 'user<cleanId>' - This prevents usernames like 'user_user_35Z...' and creates 'user35Z...' instead - Apply fix to both userService and reportController - Add migration script to fix existing duplicate usernames Example: user_user_35ZFZ... -> user35ZFZ...
This commit is contained in:
@@ -36,11 +36,15 @@ export class UserService {
|
||||
try {
|
||||
const clerkUser = await clerkClient.users.getUser(clerkId);
|
||||
|
||||
// Generate a clean username from Clerk ID (remove 'user_' prefix if present)
|
||||
const cleanClerkId = clerkId.startsWith('user_') ? clerkId.substring(5) : clerkId;
|
||||
const defaultUsername = clerkUser.username || `user${cleanClerkId.substring(0, 8)}`;
|
||||
|
||||
user = await prisma.user.create({
|
||||
data: {
|
||||
clerkId,
|
||||
email: clerkUser.emailAddresses[0]?.emailAddress || `${clerkId}@temp.com`,
|
||||
username: clerkUser.username || `user_${clerkId.substring(0, 8)}`,
|
||||
username: defaultUsername,
|
||||
firstName: clerkUser.firstName,
|
||||
lastName: clerkUser.lastName,
|
||||
avatarUrl: clerkUser.imageUrl,
|
||||
|
||||
Reference in New Issue
Block a user