mirror of
https://github.com/kind-0/nsecbunkerd.git
synced 2026-05-03 07:00:11 +00:00
fix: Exclude soft-deleted keys when retrieving key list
- Fetch keys marked as deleted from the database and filter them out. - Ensure soft-deleted keys are skipped during processing.
This commit is contained in:
parent
ee8f9af717
commit
af02c644c0
@ -35,10 +35,20 @@ export type KeyUser = {
|
|||||||
|
|
||||||
function getKeys(config: DaemonConfig) {
|
function getKeys(config: DaemonConfig) {
|
||||||
return async (): Promise<Key[]> => {
|
return async (): Promise<Key[]> => {
|
||||||
let lockedKeyNames = Object.keys(config.allKeys);
|
// Get soft-deleted key names from database to exclude them
|
||||||
|
const deletedKeys = await prisma.key.findMany({
|
||||||
|
where: { deletedAt: { not: null } },
|
||||||
|
select: { keyName: true },
|
||||||
|
});
|
||||||
|
const deletedKeyNames = new Set(deletedKeys.map(k => k.keyName));
|
||||||
|
|
||||||
|
let lockedKeyNames = Object.keys(config.allKeys).filter(name => !deletedKeyNames.has(name));
|
||||||
const keys: Key[] = [];
|
const keys: Key[] = [];
|
||||||
|
|
||||||
for (const [name, nsec] of Object.entries(config.keys)) {
|
for (const [name, nsec] of Object.entries(config.keys)) {
|
||||||
|
// Skip soft-deleted keys
|
||||||
|
if (deletedKeyNames.has(name)) continue;
|
||||||
|
|
||||||
const decoded = nip19.decode(nsec) as unknown as { type: 'nsec', data: Uint8Array };
|
const decoded = nip19.decode(nsec) as unknown as { type: 'nsec', data: Uint8Array };
|
||||||
const hexpk = bytesToHex(decoded.data);
|
const hexpk = bytesToHex(decoded.data);
|
||||||
const user = await new NDKPrivateKeySigner(hexpk).user();
|
const user = await new NDKPrivateKeySigner(hexpk).user();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user