Browse Source

fix the properties to return None instead of excepting when queried while creating a new server instance

Natenom/support-murmur-13-1446181288462
Michael Ziegler 15 years ago
parent
commit
8fb3877a77
  1. 27
      pyweb/mumble/models.py

27
pyweb/mumble/models.py

@ -28,11 +28,17 @@ from mumble.mctl import MumbleCtlBase
def mk_config_property( field, doc="" ): def mk_config_property( field, doc="" ):
""" Create a property for the given config field. """ """ Create a property for the given config field. """
return property(
lambda self: self.getConf( field ),
lambda self, value: self.setConf( field, value ),
doc=doc
)
def get_field( self ):
if self.id is not None:
return self.getConf( field )
else:
return None
def set_field( self, value ):
self.setConf( field, value )
return property( get_field, set_field, doc=doc )
class Mumble( models.Model ): class Mumble( models.Model ):
@ -60,6 +66,7 @@ class Mumble( models.Model ):
port = models.IntegerField( _('Server Port'), default=settings.MUMBLE_DEFAULT_PORT, help_text=_( port = models.IntegerField( _('Server Port'), default=settings.MUMBLE_DEFAULT_PORT, help_text=_(
"Port number to bind to. Use -1 to auto assign one.") ); "Port number to bind to. Use -1 to auto assign one.") );
supw = property( lambda self: '', supw = property( lambda self: '',
lambda self, value: self.ctl.setSuperUserPassword( self.srvid, value ), lambda self, value: self.ctl.setSuperUserPassword( self.srvid, value ),
doc='Superuser Password' doc='Superuser Password'
@ -72,14 +79,21 @@ class Mumble( models.Model ):
bwidth = mk_config_property( "bandwidth", "Bandwidth [Bps]" ) bwidth = mk_config_property( "bandwidth", "Bandwidth [Bps]" )
sslcrt = mk_config_property( "certificate", "SSL Certificate" ) sslcrt = mk_config_property( "certificate", "SSL Certificate" )
sslkey = mk_config_property( "key", "SSL Key" ) sslkey = mk_config_property( "key", "SSL Key" )
obfsc = mk_config_property( "obfuscate", "IP Obfuscation" )
player = mk_config_property( "username", "Player name regex" ) player = mk_config_property( "username", "Player name regex" )
channel = mk_config_property( "channelname", "Channel name regex" ) channel = mk_config_property( "channelname", "Channel name regex" )
defchan = mk_config_property( "defaultchannel", "Default channel" ) defchan = mk_config_property( "defaultchannel", "Default channel" )
obfsc = property(
lambda self: ( self.getConf( "obfuscate" ) == "true" ) if self.id is not None else None,
lambda self, value: self.setConf( "obfuscate", str(value).lower() ),
doc="IP Obfuscation"
)
def getBooted( self ): def getBooted( self ):
if self.id is not None:
return self.ctl.isBooted( self.srvid ); return self.ctl.isBooted( self.srvid );
else:
return False
def setBooted( self, value ): def setBooted( self, value ):
if value != self.getBooted(): if value != self.getBooted():
@ -127,7 +141,6 @@ class Mumble( models.Model ):
self.ctl.setConf( self.srvid, 'port', str(self.port) ); self.ctl.setConf( self.srvid, 'port', str(self.port) );
self.ctl.setConf( self.srvid, 'registername', self.name ); self.ctl.setConf( self.srvid, 'registername', self.name );
self.ctl.setConf( self.srvid, 'registerurl', self.url ); self.ctl.setConf( self.srvid, 'registerurl', self.url );
self.ctl.setConf( self.srvid, 'obfuscate', str(self.obfsc).lower() );
# registerHostname needs to take the port no into account # registerHostname needs to take the port no into account
if self.port and self.port != settings.MUMBLE_DEFAULT_PORT: if self.port and self.port != settings.MUMBLE_DEFAULT_PORT:

Loading…
Cancel
Save