From 42162c80155addc87d2e67b2418ca3a7ec37fc0d Mon Sep 17 00:00:00 2001
From: mintphin <him@mint.lgbt>
Date: Fri, 30 Oct 2020 12:21:02 -0300
Subject: [PATCH] TOOLS: Created demote tool based on mark-admin.ts (#6776)

* TOOLS: Created demote tool based on mark-admin.ts

* TOOLS: Removed trailing whitespace on demote-admin.ts
---
 src/tools/demote-admin.ts | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 src/tools/demote-admin.ts

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);
+});