Fix Mumble to refuse changes when the interface is down

This commit is contained in:
2010-10-27 09:01:41 +01:00
parent acbe54b13c
commit 3daf5243d9

View File

@@ -13,14 +13,20 @@ class MumbleService(BaseService):
'ice_file': 'Murmur.ice' } 'ice_file': 'Murmur.ice' }
def __init__(self): def __init__(self):
Ice.loadSlice(self.settings['ice_file']) try:
import Murmur Ice.loadSlice(self.settings['ice_file'])
self.mur = Murmur import Murmur
self.mur = Murmur
except:
pass
@property @property
def mumblectl(self): def mumblectl(self):
if not hasattr(self, '_mumblectl'): if not hasattr(self, '_mumblectl'):
self._mumblectl = MumbleCtlIce(self.settings['connection_string'], self.settings['ice_file']) try:
self._mumblectl = MumbleCtlIce(self.settings['connection_string'], self.settings['ice_file'])
except:
self._mumblectl = None
return self._mumblectl return self._mumblectl
def add_user(self, username, password, **kwargs): def add_user(self, username, password, **kwargs):
@@ -39,25 +45,25 @@ class MumbleService(BaseService):
return False return False
def raw_add_user(self, username, email, password): def raw_add_user(self, username, email, password):
if self.mumblectl.registerPlayer(self.settings['mumble_server_id'], username, email, password): if self.mumblectl and self.mumblectl.registerPlayer(self.settings['mumble_server_id'], username, email, password):
return username return username
return False return False
def check_user(self, username): def check_user(self, username):
""" Check if the username exists """ """ Check if the username exists """
if len(self.mumblectl.getRegisteredPlayers(self.settings['mumble_server_id'], username)): if self.mumblectl and len(self.mumblectl.getRegisteredPlayers(self.settings['mumble_server_id'], username)):
return True return True
else: return False
return False
def delete_user(self, uid): def delete_user(self, uid):
""" Delete a user by uid """ """ Delete a user by uid """
ids = self.mumblectl.getRegisteredPlayers(self.settings['mumble_server_id'], uid) if self.mumblectl:
if len(ids) > 0: ids = self.mumblectl.getRegisteredPlayers(self.settings['mumble_server_id'], uid)
for accid in ids: if len(ids) > 0:
acc = ids[accid] for accid in ids:
self.mumblectl.unregisterPlayer(self.settings['mumble_server_id'], acc['userid']) acc = ids[accid]
self.mumblectl.unregisterPlayer(self.settings['mumble_server_id'], acc['userid'])
return True return True
@@ -68,24 +74,28 @@ class MumbleService(BaseService):
def enable_user(self, uid, password): def enable_user(self, uid, password):
""" Enable a user by uid """ """ Enable a user by uid """
ids = self.mumblectl.getRegisteredPlayers(self.settings['mumble_server_id'], uid) if self.mumblectl:
if len(ids) > 0: ids = self.mumblectl.getRegisteredPlayers(self.settings['mumble_server_id'], uid)
for accid in ids: if len(ids) > 0:
acc = ids[accid] for accid in ids:
self.mumblectl.setRegistration(self.settings['mumble_server_id'], acc['userid'], acc['name'], acc['email'], password) acc = ids[accid]
return True self.mumblectl.setRegistration(self.settings['mumble_server_id'], acc['userid'], acc['name'], acc['email'], password)
else:
if self.raw_add_user(uid, '', password):
return True return True
else:
if self.raw_add_user(uid, '', password):
return True
return False
def set_user(self, uid, name = ''): def set_user(self, uid, name = ''):
""" Set values ona user by uid """ """ Set values ona user by uid """
ids = self.mumblectl.getRegisteredPlayers(self.settings['mumble_server_id'], uid) if self.mumblectl:
if len(ids) > 0: ids = self.mumblectl.getRegisteredPlayers(self.settings['mumble_server_id'], uid)
for accid in ids: if len(ids) > 0:
acc = ids[accid] for accid in ids:
self.mumblectl.setRegistration(self.settings['mumble_server_id'], acc['userid'], name, acc['email'], acc['pw']) acc = ids[accid]
return True self.mumblectl.setRegistration(self.settings['mumble_server_id'], acc['userid'], name, acc['email'], acc['pw'])
return True
return False
def reset_password(self, uid, password): def reset_password(self, uid, password):
""" Reset the user's password """ """ Reset the user's password """