From 93c72f306dd23bab8f1cecdc41fd96ee9ce9be15 Mon Sep 17 00:00:00 2001 From: withgod Date: Wed, 3 Jun 2009 11:22:29 +0900 Subject: [PATCH] implement setACL. no beauty... --- pyweb/mumble/mctl.py | 72 +++++++++++++++++++++++++++++++++----------- 1 file changed, 54 insertions(+), 18 deletions(-) diff --git a/pyweb/mumble/mctl.py b/pyweb/mumble/mctl.py index 2a41f72..a9005fb 100755 --- a/pyweb/mumble/mctl.py +++ b/pyweb/mumble/mctl.py @@ -148,7 +148,6 @@ class MumbleCtlIce(MumbleCtlBase): import Murmur acls = self._getIceServerObject(srvid).getACL(identifier) ret = [] - for x in acls: if isinstance(x, list): tmp = [] @@ -169,26 +168,26 @@ class MumbleCtlIce(MumbleCtlBase): def getAllConf(self, srvid): return MumbleCtlIce.setUnicodeFlag(self._getIceServerObject(srvid).getAllConf()) - - def newServer(self): + + def newServer(self): return self.meta.newServer().id() - - def deleteServer( self, srvid ): - if self._getIceServerObject(srvid).isRunning(): - self._getIceServerObject(srvid).stop() + + def deleteServer( self, srvid ): + if self._getIceServerObject(srvid).isRunning(): + self._getIceServerObject(srvid).stop() self._getIceServerObject(srvid).delete() - - def setSuperUserPassword(self, srvid, value): + + def setSuperUserPassword(self, srvid, value): self.meta.setSuperUserPassword(srvid, value) def setConf(self, srvid, key, value): - #print "%s server %s/%s" % (srvid, key, value) + #print "%s server %s/%s" % (srvid, key, value) self._getIceServerObject(srvid).setConf(key, value) - def registerPlayer(self, srvid, name): - return self._getIceServerObject(srvid).registerPlayer(name) - - def unregisterPlayer(self, srvid, mumbleid): + def registerPlayer(self, srvid, name): + return self._getIceServerObject(srvid).registerPlayer(name) + + def unregisterPlayer(self, srvid, mumbleid): self._getIceServerObject(srvid).unregisterPlayer(mumbleid) def setRegistration(self, srvid, mumbleid, name, email, password): @@ -197,15 +196,50 @@ class MumbleCtlIce(MumbleCtlBase): user.email = email user.pw = password #print user - # update*r*egistration r is lowercase... + # update*r*egistration r is lowercase... return self._getIceServerObject(srvid).updateregistration(user) - + def setACL(self, srvid, acl): + ''' print "xxxx" print srvid print acl - print "xxxx" - #self._getIceServerObject(srvid).setACL(*acl.pack()) + print "--" + print acl.pack() + print "xxxx" + ''' + import Murmur + tmp = acl.pack() + id = tmp[0] + _acls = tmp[1] + acls = [] + _groups = tmp[2] + groups = [] + inherit = tmp[3] + + for x in _acls: + acl = Murmur.ACL() + acl.applyHere = x[0] + acl.applySubs = x[1] + acl.inherited = x[2] + acl.playerid = x[3] + acl.group = x[4] + acl.allow = x[5] + acl.deny = x[6] + acls.append(acl) + + for x in _groups: + group = Murmur.Group() + group.name = x[0] + group.inherited = x[1] + group.inherit = x[2] + group.inheritable = x[3] + group.add = x[4] + group.remove = x[5] + group.members = x[6] + groups.append(group) + + self._getIceServerObject(srvid).setACL(id, acls, groups, inherit) @staticmethod def setUnicodeFlag(data): @@ -360,5 +394,7 @@ if __name__ == "__main__": print "getAllConf(x) [%s]" % (dbusCtl.getAllConf(x) == iceCtl.getAllConf(x)) print "getRegisteredPlayers(x) [%s]" % (dbusCtl.getRegisteredPlayers(x) == iceCtl.getRegisteredPlayers(x)) + + #print iceCtl.getRegisteredPlayers(x) #print iceCtl.getACL(x, 0)