37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
import { command } from "@drizzle-team/brocli";
|
|
|
|
import { db, eq } from "@homarr/db";
|
|
import { users } from "@homarr/db/schema";
|
|
|
|
export const fixUsernames = command({
|
|
name: "fix-usernames",
|
|
desc: "Changes all credentials usernames to lowercase",
|
|
// eslint-disable-next-line no-restricted-syntax
|
|
handler: async () => {
|
|
if (!process.env.AUTH_PROVIDERS?.toLowerCase().includes("credentials")) {
|
|
console.error("Credentials provider is not enabled");
|
|
return;
|
|
}
|
|
|
|
const credentialUsers = await db.query.users.findMany({
|
|
where: eq(users.provider, "credentials"),
|
|
});
|
|
|
|
for (const user of credentialUsers) {
|
|
if (!user.name) continue;
|
|
if (user.name === user.name.toLowerCase()) continue;
|
|
|
|
await db
|
|
.update(users)
|
|
.set({
|
|
name: user.name.toLowerCase(),
|
|
})
|
|
.where(eq(users.id, user.id));
|
|
|
|
console.log(`Changed username from ${user.name} to ${user.name.toLowerCase()}`);
|
|
}
|
|
|
|
console.log("All usernames have been fixed");
|
|
},
|
|
});
|