summaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/demote-admin.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/tools/demote-admin.ts b/src/tools/demote-admin.ts
new file mode 100644
index 0000000000..5e3e64bffb
--- /dev/null
+++ b/src/tools/demote-admin.ts
@@ -0,0 +1,32 @@
+import { initDb } from '../db/postgre';
+import { getRepository } from 'typeorm';
+import { User } from '../models/entities/user';
+
+async function main(username: string) {
+ if (!username) throw `username required`;
+ username = username.replace(/^@/, '');
+
+ await initDb();
+ const Users = getRepository(User);
+
+ const res = await Users.update({
+ usernameLower: username.toLowerCase(),
+ host: null
+ }, {
+ isAdmin: false
+ });
+
+ if (res.affected !== 1) {
+ throw 'Failed';
+ }
+}
+
+const args = process.argv.slice(2);
+
+main(args[0]).then(() => {
+ console.log('Success');
+ process.exit(0);
+}).catch(e => {
+ console.error(`Error: ${e.message || e}`);
+ process.exit(1);
+});