mirror of
https://github.com/mumble-voip/mumble.git
synced 2025-10-26 11:19:16 +00:00
108 lines
2.8 KiB
Python
Executable File
108 lines
2.8 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# -*- coding: utf-8
|
|
import Ice, sys
|
|
|
|
Ice.loadSlice('Murmur.ice')
|
|
import Murmur
|
|
|
|
class ServerAuthenticatorI(Murmur.ServerUpdatingAuthenticator):
|
|
def __init__(self, server, adapter):
|
|
self.server = server
|
|
|
|
def authenticate(self, name, pw, current=None):
|
|
if (name == "One"):
|
|
if (pw == "Magic"):
|
|
return (1, "One", None)
|
|
else:
|
|
return (-1, None, None)
|
|
elif (name == "Two"):
|
|
if (pw == "Mushroom"):
|
|
return (2, "twO", None)
|
|
else:
|
|
return (-1, None, None)
|
|
return (-2, None, None)
|
|
|
|
def getInfo(self, id, current=None):
|
|
print "getInfo ", id
|
|
name = self.idToName(id);
|
|
if (name == None):
|
|
return (False, {})
|
|
map = {}
|
|
map['name']=name
|
|
return (True, map)
|
|
|
|
def nameToId(self, name, current=None):
|
|
if (name == "One"):
|
|
return 1
|
|
elif (name == "Twoer"):
|
|
return 2
|
|
else:
|
|
return -2;
|
|
|
|
def idToName(self, id, current=None):
|
|
if (id == 1):
|
|
return "One"
|
|
elif (id == 2):
|
|
return "Two"
|
|
else:
|
|
return None
|
|
|
|
def idToTexture(self, id, current=None):
|
|
return None
|
|
|
|
# The expanded methods from UpdatingAuthenticator. We only implement a subset for this example, but
|
|
# a valid implementation has to define all of them
|
|
def registerUser(self, name, current=None):
|
|
print "Someone tried to register " + name['name']
|
|
return -2
|
|
|
|
def unregisterUser(self, id, current=None):
|
|
print "Unregister ", id
|
|
return -2
|
|
|
|
def getRegistration(self, id, current=None):
|
|
return (-2, None, None)
|
|
|
|
def setInfo(self, id, info, current=None):
|
|
print "Set", id, info
|
|
return -1
|
|
|
|
if __name__ == "__main__":
|
|
global contextR
|
|
|
|
print "Creating callbacks...",
|
|
ice = Ice.initialize(sys.argv)
|
|
|
|
meta = Murmur.MetaPrx.checkedCast(ice.stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502'))
|
|
|
|
adapter = ice.createObjectAdapterWithEndpoints("Callback.Client", "tcp -h 127.0.0.1")
|
|
adapter.activate()
|
|
|
|
for server in meta.getBootedServers():
|
|
serverR=Murmur.ServerUpdatingAuthenticatorPrx.uncheckedCast(adapter.addWithUUID(ServerAuthenticatorI(server, adapter)))
|
|
server.setAuthenticator(serverR)
|
|
# server.registerUser("TestUser")
|
|
|
|
print "Done"
|
|
|
|
map = {};
|
|
map['name'] = 'TestUser';
|
|
|
|
for server in meta.getBootedServers():
|
|
ids= server.getUserIds(["TestUser"])
|
|
for name,id in ids.iteritems():
|
|
if (id > 0):
|
|
print "Will unregister ", id
|
|
server.unregisterUser(id)
|
|
server.registerUser(map)
|
|
|
|
print 'Script running (press CTRL-C to abort)';
|
|
try:
|
|
ice.waitForShutdown()
|
|
except KeyboardInterrupt:
|
|
print 'CTRL-C caught, aborting'
|
|
|
|
meta.removeCallback(metaR)
|
|
ice.shutdown()
|
|
print "Goodbye"
|