ci: fix wrong folder chmod

This commit is contained in:
Nicolas Meienberger 2026-01-11 14:41:08 +01:00
parent 85805cd2e2
commit 4b4c66b689
2 changed files with 14 additions and 6 deletions

View file

@ -56,8 +56,8 @@ jobs:
timeout 30s bash -c 'until curl -f http://localhost:4096/healthcheck; do echo "Waiting for server..." && sleep 2; done' timeout 30s bash -c 'until curl -f http://localhost:4096/healthcheck; do echo "Waiting for server..." && sleep 2; done'
continue-on-error: false continue-on-error: false
- name: Make data directory writable - name: Make playwright directory writable
run: sudo chmod -R 777 data run: sudo chmod -R 777 playwright
- name: Run Playwright tests - name: Run Playwright tests
run: bun run test:e2e run: bun run test:e2e

View file

@ -16,20 +16,22 @@ const changeUsername = async (oldUsername: string, newUsername: string) => {
throw new Error(`User "${oldUsername}" not found`); throw new Error(`User "${oldUsername}" not found`);
} }
const [existingUser] = await db.select().from(usersTable).where(eq(usersTable.username, newUsername)); const normalizedUsername = newUsername.toLowerCase().trim();
const [existingUser] = await db.select().from(usersTable).where(eq(usersTable.username, normalizedUsername));
if (existingUser) { if (existingUser) {
throw new Error(`Username "${newUsername}" is already taken`); throw new Error(`Username "${newUsername}" is already taken`);
} }
const usernameRegex = /^[a-z0-9_]{3,30}$/; const usernameRegex = /^[a-z0-9_]{3,30}$/;
if (!usernameRegex.test(newUsername)) { if (!usernameRegex.test(normalizedUsername)) {
throw new Error( throw new Error(
`Invalid username "${newUsername}". Usernames must be 3-30 characters long and can only contain lowercase letters, numbers, and underscores.`, `Invalid username "${newUsername}". Usernames must be 3-30 characters long and can only contain lowercase letters, numbers, and underscores.`,
); );
} }
await db.transaction(async (tx) => { await db.transaction(async (tx) => {
await tx.update(usersTable).set({ username: newUsername.toLowerCase().trim() }).where(eq(usersTable.id, user.id)); await tx.update(usersTable).set({ username: normalizedUsername }).where(eq(usersTable.id, user.id));
await tx.delete(sessionsTable).where(eq(sessionsTable.userId, user.id)); await tx.delete(sessionsTable).where(eq(sessionsTable.userId, user.id));
}); });
}; };
@ -65,8 +67,14 @@ export const changeUsernameCommand = new Command("change-username")
if (!newUsername) { if (!newUsername) {
newUsername = await input({ newUsername = await input({
message: "Enter the new username:", message: "Enter the new username:",
validate: (val) => (val.length > 0 ? true : "Username cannot be empty"), validate: (val) => {
const usernameRegex = /^[a-z0-9_]{3,30}$/;
return usernameRegex.test(val)
? true
: "Username must be 3-30 characters and contain only lowercase letters, numbers, or underscores";
},
}); });
newUsername = newUsername.toLowerCase().trim();
} }
await changeUsername(username, newUsername); await changeUsername(username, newUsername);