Füge Skript hinzu, um Sichtbarkeitsflags für Mitglieder auf true zu setzen
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 49s
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 49s
This commit is contained in:
@@ -122,7 +122,7 @@
|
|||||||
{{ member.name }}
|
{{ member.name }}
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="member.showBirthday && member.birthday" class="text-xs text-gray-500">
|
<div v-if="member.birthday" class="text-xs text-gray-500">
|
||||||
🎂 {{ formatBirthday(member.birthday) }}
|
🎂 {{ formatBirthday(member.birthday) }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
@@ -265,7 +265,7 @@
|
|||||||
<template v-else>
|
<template v-else>
|
||||||
{{ member.name }}
|
{{ member.name }}
|
||||||
</template>
|
</template>
|
||||||
<span v-if="member.showBirthday && member.birthday" class="text-xs text-gray-500 ml-2">
|
<span v-if="member.birthday" class="text-xs text-gray-500 ml-2">
|
||||||
🎂 {{ formatBirthday(member.birthday) }}
|
🎂 {{ formatBirthday(member.birthday) }}
|
||||||
</span>
|
</span>
|
||||||
</h3>
|
</h3>
|
||||||
|
|||||||
72
server/set-all-visibility-flags.mjs
Normal file
72
server/set-all-visibility-flags.mjs
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
// Script: set-all-visibility-flags.mjs
|
||||||
|
// Setzt für alle Mitglieder in allen relevanten Dateien alle visibility-Flags auf true (inkl. Entschlüsselung)
|
||||||
|
|
||||||
|
import { readMembers, writeMembers } from './utils/members.js';
|
||||||
|
import dotenv from 'dotenv';
|
||||||
|
import path from 'path';
|
||||||
|
import { fileURLToPath } from 'url';
|
||||||
|
import fs from 'fs/promises';
|
||||||
|
|
||||||
|
dotenv.config({ path: path.resolve(process.cwd(), '.env') });
|
||||||
|
|
||||||
|
const usersPath = path.resolve(process.cwd(), 'server/data/users.json');
|
||||||
|
|
||||||
|
async function updateVisibility(obj) {
|
||||||
|
let changed = 0;
|
||||||
|
if (Array.isArray(obj)) {
|
||||||
|
for (const m of obj) {
|
||||||
|
if (!m.visibility) m.visibility = {};
|
||||||
|
if (m.visibility.showEmail !== true) { m.visibility.showEmail = true; changed++; }
|
||||||
|
if (m.visibility.showPhone !== true) { m.visibility.showPhone = true; changed++; }
|
||||||
|
if (m.visibility.showAddress !== true) { m.visibility.showAddress = true; changed++; }
|
||||||
|
if (m.visibility.showBirthday !== true) { m.visibility.showBirthday = true; changed++; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return changed;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function updateUsersFile() {
|
||||||
|
let changed = 0;
|
||||||
|
try {
|
||||||
|
let raw = await fs.readFile(usersPath, 'utf8');
|
||||||
|
let users;
|
||||||
|
if (raw.trim().startsWith('v2:')) {
|
||||||
|
// encrypted, try to use decryptObject from encryption.js
|
||||||
|
const { decryptObject } = await import('./utils/encryption.js');
|
||||||
|
const key = process.env.ENCRYPTION_KEY || 'local_development_encryption_key_change_in_production';
|
||||||
|
users = decryptObject(raw, key);
|
||||||
|
} else {
|
||||||
|
users = JSON.parse(raw);
|
||||||
|
}
|
||||||
|
changed = await updateVisibility(users);
|
||||||
|
// write back (encrypted if vorher encrypted)
|
||||||
|
if (raw.trim().startsWith('v2:')) {
|
||||||
|
const { encryptObject } = await import('./utils/encryption.js');
|
||||||
|
const key = process.env.ENCRYPTION_KEY || 'local_development_encryption_key_change_in_production';
|
||||||
|
const encrypted = encryptObject(users, key);
|
||||||
|
await fs.writeFile(usersPath, encrypted, 'utf8');
|
||||||
|
} else {
|
||||||
|
await fs.writeFile(usersPath, JSON.stringify(users, null, 2), 'utf8');
|
||||||
|
}
|
||||||
|
return changed;
|
||||||
|
} catch (e) {
|
||||||
|
console.error('Fehler beim Bearbeiten von users.json:', e);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
let changedMembers = 0;
|
||||||
|
let changedUsers = 0;
|
||||||
|
// members.json (manuelle Mitglieder)
|
||||||
|
let members = await readMembers();
|
||||||
|
changedMembers = await updateVisibility(members);
|
||||||
|
if (changedMembers > 0) {
|
||||||
|
await writeMembers(members);
|
||||||
|
}
|
||||||
|
// users.json (Login-System)
|
||||||
|
changedUsers = await updateUsersFile();
|
||||||
|
console.log(`members.json: ${changedMembers} Änderungen, users.json: ${changedUsers} Änderungen`);
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
Reference in New Issue
Block a user