b1ac351ad1
geändert: client/client.py gelöscht: lib/__pycache__/crypto_utils.cpython-313.pyc gelöscht: lib/__pycache__/jebp_utils.cpython-313.pyc gelöscht: lib/__pycache__/terminal_table.cpython-313.pyc geändert: lib/jebp_utils.py gelöscht: server/clients_management/chclient.py gelöscht: server/clients_management/rmclient.py neue Datei: server/data/conf/client_admin_rights umbenannt: server/config/clients/fingerprints -> server/data/conf/client_fingerprints neue Datei: server/data/conf/topics geändert: server/server.py neue Datei: server/utils/clients_management/chclient.py neue Datei: server/utils/clients_management/lsclients.py umbenannt: server/clients_management/mkclient.py -> server/utils/clients_management/mkclient.py neue Datei: server/utils/clients_management/rmclient.py umbenannt: server/clients_management/lsclients.py -> server/utils/topics_management/lstopics.py
43 lines
1.3 KiB
Python
Executable File
43 lines
1.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import sys
|
|
import os
|
|
sys.path.append(os.getcwd())
|
|
import dbm
|
|
from lib.terminal_table import ascii_table
|
|
|
|
if len(sys.argv) < 2:
|
|
print(f'{sys.argv[0]}: missing key hash')
|
|
sys.exit(1)
|
|
|
|
with dbm.open('server/data/conf/client_fingerprints', 'c') as db:
|
|
try:
|
|
del db[bytes.fromhex(sys.argv[1])]
|
|
except:
|
|
print(f'{sys.argv[0]}: hash not registered')
|
|
sys.exit(1)
|
|
db.close()
|
|
|
|
if os.path.exists('server/data/conf/locks/client_admin_rights.lock'):
|
|
with open('server/data/conf/locks/client_admin_rights.lock', 'r') as lockf:
|
|
print(f'{sys.argv[0]}: admin rights file is locked by process {lockf.read()}')
|
|
lockf.close()
|
|
sys.exit(1)
|
|
|
|
try:
|
|
with open('server/data/conf/locks/client_admin_rights.lock', 'w') as lockf:
|
|
lockf.write(str(os.getpid()))
|
|
lockf.close()
|
|
|
|
with open('server/data/conf/client_admin_rights', 'r') as carf:
|
|
admins = {kh for kh in carf.read().split('\n') if kh}
|
|
carf.close()
|
|
|
|
if sys.argv[1] in admins:
|
|
admins.remove(sys.argv[1])
|
|
with open('server/data/conf/client_admin_rights', 'w') as carf:
|
|
carf.write('\n'.join(admins))
|
|
carf.close()
|
|
|
|
finally:
|
|
os.remove('server/data/conf/locks/client_admin_rights.lock') |