optools/mumble/getusers.py

59 lines
1.8 KiB
Python
Executable File

#!/usr/bin/env python3
import copy
import pprint
import usrmgmt2
# NOTE: THIS IS ONLY FOR TESTING/DEVELOPMENT PURPOSES.
# IT WILL BE REMOVED ONCE THE ACTUAL STUFF IS FINISHED.
args = vars(usrmgmt2.parseArgs().parse_args())
args['operation'] = 'ls'
args['verbose'] = True
args['cfgfile'] = '/home/bts/.config/optools/mumbleadmin.ini'
#if not args['operation']:
#raise RuntimeError('You must specify an operation to perform. Try running with -h/--help.')
# exit('You must specify an operation to perform. Try running with -h/--help.')
mgmt = usrmgmt2.IceMgr(args)
def dictify(obj):
# thanks, https://github.com/alfg/murmur-rest/blob/master/app/utils.py
_rv = {'_type': str(type(obj))}
if type(obj) in (bool, int, float, str, bytes):
return(obj)
if type(obj) in (list, tuple):
return([dictify(i) for i in obj])
if type(obj) == dict:
return(dict((str(k), dictify(v)) for k, v in obj.items()))
return(dictify(obj.__dict__))
# Here we actually print users
#print(inspect.getmembers(Murmur.UserInfo))
#for s in mgmt.conn['read'].getAllServers(): # iterate through all servers
#userattrs = [Murmur.UserInfo.Username, Murmur.UserInfo.UserEmail,
# Murmur.UserInfo.UserHash, Murmur.UserInfo.UserLastActive,
# Murmur.UserInfo.UserComment]
#print(type(s))
#pprint.pprint(s.getRegisteredUsers('')) # either print a UID:username map...
# for uid, uname in s.getRegisteredUsers('').items(): # or let's try to get full info on them
#print('user: {0}\nusername: {1}\n'.format(uid, uname))
# _u = dictify(s.getRegistration(uid))
# if uid == 3:
# print(_u)
print(mgmt.conn['read'])
_server = mgmt.conn['read'].getServer(1)
print(_server.getACL(0))
#acl = _server.getACL(0)
#print(acl[0])
#pprint.pprint(dictify(acl), indent = 4)
mgmt.close()