mirror of
https://github.com/diced/zipline.git
synced 2026-01-06 17:54:35 -08:00
* fix: copying and opening another user's upload url * fix: delete thumbnails too * fix: return target after removing files from output * fix: add width to fix diced/zipline#419 (can't test) * Minor script tune-ups. * Remove the catcher for when upload has been offloaded to chunk
81 lines
1.7 KiB
TypeScript
81 lines
1.7 KiB
TypeScript
import { PrismaClient } from '@prisma/client';
|
|
import { hash } from 'argon2';
|
|
import config from 'lib/config';
|
|
import { migrations } from 'server/util';
|
|
|
|
const SUPPORTED_FIELDS = [
|
|
'username',
|
|
'password',
|
|
'administrator',
|
|
'avatar',
|
|
'token',
|
|
'superAdmin',
|
|
'systemTheme',
|
|
'embed',
|
|
'ratelimit',
|
|
'domains',
|
|
];
|
|
|
|
async function main() {
|
|
const args = process.argv.slice(2);
|
|
if (!args[0]) return console.error('no user id specified (run list-users script to see all user ids)');
|
|
if (!args[1]) return console.error('no property specified');
|
|
if (!args[2]) return console.error('no value specified');
|
|
|
|
if (!SUPPORTED_FIELDS.includes(args[1])) return console.error(`property ${args[1]} is not supported`);
|
|
|
|
process.env.DATABASE_URL = config.core.database_url;
|
|
await migrations();
|
|
|
|
const prisma = new PrismaClient();
|
|
|
|
const user = await prisma.user.findFirst({
|
|
where: {
|
|
id: Number(args[0]),
|
|
},
|
|
});
|
|
if (!user) return console.error('user not found');
|
|
|
|
let parsed;
|
|
|
|
if (args[2] === 'true') parsed = true;
|
|
if (args[2] === 'false') parsed = false;
|
|
|
|
if (args[1] === 'password') {
|
|
parsed = await hash(args[2]);
|
|
}
|
|
|
|
if (args[1] === 'domains') {
|
|
parsed = args[2].split(',');
|
|
}
|
|
|
|
if (args[1] === 'ratelimit') {
|
|
const try_date = new Date(args[2]);
|
|
if (isNaN(try_date.getTime())) return console.error('invalid date');
|
|
parsed = try_date;
|
|
}
|
|
|
|
const data = {
|
|
[args[1]]: parsed,
|
|
};
|
|
|
|
await prisma.user.update({
|
|
where: {
|
|
id: user.id,
|
|
},
|
|
data,
|
|
});
|
|
|
|
await prisma.$disconnect();
|
|
|
|
if (args[1] === 'password') {
|
|
parsed = '***';
|
|
}
|
|
|
|
console.log(`Updated user ${user.id} with ${args[1]} = ${parsed}`);
|
|
|
|
process.exit(0);
|
|
}
|
|
|
|
main();
|