Add admin:role CLI task
This commit is contained in:
parent
b73b964fda
commit
cbf1e8f280
|
@ -9,7 +9,8 @@
|
|||
"check": "deno check src/server.ts",
|
||||
"relays:sync": "deno run -A scripts/relays.ts sync",
|
||||
"nsec": "deno run scripts/nsec.ts",
|
||||
"admin:event": "deno run -A scripts/admin-event.ts"
|
||||
"admin:event": "deno run -A scripts/admin-event.ts",
|
||||
"admin:role": "deno run -A scripts/admin-role.ts"
|
||||
},
|
||||
"unstable": ["ffi", "kv"],
|
||||
"exclude": ["./public"],
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
import { NSchema } from '@nostrify/nostrify';
|
||||
|
||||
import { db } from '@/db.ts';
|
||||
import { Conf } from '@/config.ts';
|
||||
import { AdminSigner } from '@/signers/AdminSigner.ts';
|
||||
import { EventsDB } from '@/storages/events-db.ts';
|
||||
import { nostrNow } from '@/utils.ts';
|
||||
|
||||
const eventsDB = new EventsDB(db);
|
||||
|
||||
const [pubkey, role] = Deno.args;
|
||||
|
||||
if (!NSchema.id().safeParse(pubkey).success) {
|
||||
console.error('Invalid pubkey');
|
||||
Deno.exit(1);
|
||||
}
|
||||
|
||||
if (!['admin', 'user'].includes(role)) {
|
||||
console.error('Invalid role');
|
||||
Deno.exit(1);
|
||||
}
|
||||
|
||||
const event = await new AdminSigner().signEvent({
|
||||
kind: 30361,
|
||||
tags: [
|
||||
['d', pubkey],
|
||||
['role', role],
|
||||
// NIP-31: https://github.com/nostr-protocol/nips/blob/master/31.md
|
||||
['alt', `User's account was updated by the admins of ${Conf.url.host}`],
|
||||
],
|
||||
content: '',
|
||||
created_at: nostrNow(),
|
||||
});
|
||||
|
||||
await eventsDB.event(event);
|
||||
|
||||
Deno.exit(0);
|
Loading…
Reference in New Issue