mirror of
https://github.com/aljazceru/ditto.git
synced 2026-01-25 16:24:20 +01:00
Remove username from user events
This commit is contained in:
@@ -39,23 +39,18 @@ const createAccountController: AppController = async (c) => {
|
||||
return c.json({ error: 'Bad request', schema: result.error }, 400);
|
||||
}
|
||||
|
||||
try {
|
||||
await insertUser({
|
||||
pubkey,
|
||||
username: result.data.username,
|
||||
inserted_at: new Date(),
|
||||
admin: false,
|
||||
});
|
||||
await insertUser({
|
||||
pubkey,
|
||||
inserted_at: new Date(),
|
||||
admin: false,
|
||||
});
|
||||
|
||||
return c.json({
|
||||
access_token: nip19.npubEncode(pubkey),
|
||||
token_type: 'Bearer',
|
||||
scope: 'read write follow push',
|
||||
created_at: nostrNow(),
|
||||
});
|
||||
} catch (_e) {
|
||||
return c.json({ error: 'Username already taken.' }, 422);
|
||||
}
|
||||
return c.json({
|
||||
access_token: nip19.npubEncode(pubkey),
|
||||
token_type: 'Bearer',
|
||||
scope: 'read write follow push',
|
||||
created_at: nostrNow(),
|
||||
});
|
||||
};
|
||||
|
||||
const verifyCredentialsController: AppController = async (c) => {
|
||||
|
||||
@@ -8,7 +8,6 @@ const debug = Debug('ditto:users');
|
||||
|
||||
interface User {
|
||||
pubkey: string;
|
||||
username: string;
|
||||
inserted_at: Date;
|
||||
admin: boolean;
|
||||
}
|
||||
@@ -21,11 +20,10 @@ function buildUserEvent(user: User) {
|
||||
kind: 30361,
|
||||
tags: [
|
||||
['d', user.pubkey],
|
||||
['name', user.username],
|
||||
['role', user.admin ? 'admin' : 'user'],
|
||||
['origin', origin],
|
||||
// NIP-31: https://github.com/nostr-protocol/nips/blob/master/31.md
|
||||
['alt', `@${user.username}@${host}'s account was updated by the admins of ${host}`],
|
||||
['alt', `User's account was updated by the admins of ${host}`],
|
||||
],
|
||||
content: '',
|
||||
created_at: Math.floor(user.inserted_at.getTime() / 1000),
|
||||
@@ -35,9 +33,6 @@ function buildUserEvent(user: User) {
|
||||
/** Adds a user to the database. */
|
||||
async function insertUser(user: User) {
|
||||
debug('insertUser', JSON.stringify(user));
|
||||
if (await findUser({ username: user.username })) {
|
||||
throw new Error('User already exists');
|
||||
}
|
||||
const event = await buildUserEvent(user);
|
||||
return pipeline.handleEvent(event, AbortSignal.timeout(1000));
|
||||
}
|
||||
@@ -57,9 +52,6 @@ async function findUser(user: Partial<User>, signal?: AbortSignal): Promise<User
|
||||
case 'pubkey':
|
||||
filter['#d'] = [String(value)];
|
||||
break;
|
||||
case 'username':
|
||||
filter['#name'] = [String(value)];
|
||||
break;
|
||||
case 'admin':
|
||||
filter['#role'] = [value ? 'admin' : 'user'];
|
||||
break;
|
||||
@@ -71,7 +63,6 @@ async function findUser(user: Partial<User>, signal?: AbortSignal): Promise<User
|
||||
if (event) {
|
||||
return {
|
||||
pubkey: event.tags.find(([name]) => name === 'd')?.[1]!,
|
||||
username: event.tags.find(([name]) => name === 'name')?.[1]!,
|
||||
inserted_at: new Date(event.created_at * 1000),
|
||||
admin: event.tags.find(([name]) => name === 'role')?.[1] === 'admin',
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user