#!/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')