def __init__(self): self.__bus = dbus.SystemBus() bus_name = dbus.service.BusName( "org.mandrivalinux.mcc2.Sshd", bus=self.__bus) dbus.service.Object.__init__( self, bus_name, "/org/mandrivalinux/mcc2/Sshd") self.__loop = gobject.MainLoop() self.__sshd = SshdConfig('/tmp/augeas-sandbox', 0) self.__action = 'org.mandrivalinux.mcc2.auth_admin_keep' config = ConfigParser.ConfigParser() config.read('/usr/share/mandriva/config/mcc2.cfg') policy_level = config.get('policy', 'level') if policy_level == 'application': self.__action = 'org.mandrivalinux.mcc2.sshd.auth_admin_keep' if policy_level == 'method': self.__action = None
def __init__(self): self.__bus = dbus.SystemBus() bus_name = dbus.service.BusName("org.mandrivalinux.mcc2.Sshd", bus=self.__bus) dbus.service.Object.__init__(self, bus_name, "/org/mandrivalinux/mcc2/Sshd") self.__loop = gobject.MainLoop() self.__sshd = SshdConfig('/tmp/augeas-sandbox', 0) self.__action = 'org.mandrivalinux.mcc2.auth_admin_keep' config = ConfigParser.ConfigParser() config.read('/usr/share/mandriva/config/mcc2.cfg') policy_level = config.get('policy', 'level') if policy_level == 'application': self.__action = 'org.mandrivalinux.mcc2.sshd.auth_admin_keep' if policy_level == 'method': self.__action = None
class Sshd(dbus.service.Object): def __init__(self): self.__bus = dbus.SystemBus() bus_name = dbus.service.BusName( "org.mandrivalinux.mcc2.Sshd", bus=self.__bus) dbus.service.Object.__init__( self, bus_name, "/org/mandrivalinux/mcc2/Sshd") self.__loop = gobject.MainLoop() self.__sshd = SshdConfig('/tmp/augeas-sandbox', 0) self.__action = 'org.mandrivalinux.mcc2.auth_admin_keep' config = ConfigParser.ConfigParser() config.read('/usr/share/mandriva/config/mcc2.cfg') policy_level = config.get('policy', 'level') if policy_level == 'application': self.__action = 'org.mandrivalinux.mcc2.sshd.auth_admin_keep' if policy_level == 'method': self.__action = None @dbus.service.method("org.mandrivalinux.mcc2.Sshd", in_signature='ss', out_signature='s') def OptionValue(self, option, number): value = self.__sshd.get_option_value(option, number) if not value: msg = 'org.mandrivalinux.mcc2.Sshd.Error.OptionNotFound' raise dbus.exceptions.DBusException, msg return value @dbus.service.method("org.mandrivalinux.mcc2.Sshd", out_signature='a(sss)') def ListOptions(self): return self.__sshd.get_options_as_str() @dbus.service.method("org.mandrivalinux.mcc2.Sshd", in_signature='ss', out_signature='s', sender_keyword='sender', connection_keyword='connection') def DeleteOption(self, option, number, sender, connection): check_authorization(sender, connection, self.__action) opt = self.__sshd.get_option(option, number) if not opt: msg = 'org.mandrivalinux.mcc2.Sshd.Error.OptionNotFound' raise dbus.exceptions.DBusException, msg result = self.__sshd.remove_option(opt) if result == -1: msg = 'org.mandrivalinux.mcc2.Sshd.Error.DeleteOptionError' raise dbus.exceptions.DBusException, msg return option @dbus.service.method("org.mandrivalinux.mcc2.Sshd", in_signature='svs', out_signature='i', sender_keyword='sender', connection_keyword='connection') def AddOption(self, option, value, number, sender, connection): check_authorization(sender, connection, self.__action) opt = None if isinstance(value, dbus.Array): print 'Creating MccMultiValueOption' opt = MccMultiValueOption(name=option, value=value) elif isinstance(value, dbus.String): print 'Creating MccOption' opt = MccOption(name=option, value=value, num=number) else: msg = 'org.mandrivalinux.mcc2.Sshd.Error.UnsupportedType' raise dbus.exceptions.DBusException, msg print self.__sshd.set_option(opt) return 1 @dbus.service.method('org.mandrivalinux.mcc2.Sshd', sender_keyword='sender', connection_keyword='connection') def StopInterface(self, sender, connection): self.__loop.quit() def run(self): self.__loop.run() @classmethod def main(cls): sshd = cls() try: sshd.run() except KeyboardInterrupt: pass
class Sshd(dbus.service.Object): def __init__(self): self.__bus = dbus.SystemBus() bus_name = dbus.service.BusName("org.mandrivalinux.mcc2.Sshd", bus=self.__bus) dbus.service.Object.__init__(self, bus_name, "/org/mandrivalinux/mcc2/Sshd") self.__loop = gobject.MainLoop() self.__sshd = SshdConfig('/tmp/augeas-sandbox', 0) self.__action = 'org.mandrivalinux.mcc2.auth_admin_keep' config = ConfigParser.ConfigParser() config.read('/usr/share/mandriva/config/mcc2.cfg') policy_level = config.get('policy', 'level') if policy_level == 'application': self.__action = 'org.mandrivalinux.mcc2.sshd.auth_admin_keep' if policy_level == 'method': self.__action = None @dbus.service.method("org.mandrivalinux.mcc2.Sshd", in_signature='ss', out_signature='s') def OptionValue(self, option, number): value = self.__sshd.get_option_value(option, number) if not value: msg = 'org.mandrivalinux.mcc2.Sshd.Error.OptionNotFound' raise dbus.exceptions.DBusException, msg return value @dbus.service.method("org.mandrivalinux.mcc2.Sshd", out_signature='a(sss)') def ListOptions(self): return self.__sshd.get_options_as_str() @dbus.service.method("org.mandrivalinux.mcc2.Sshd", in_signature='ss', out_signature='s', sender_keyword='sender', connection_keyword='connection') def DeleteOption(self, option, number, sender, connection): check_authorization(sender, connection, self.__action) opt = self.__sshd.get_option(option, number) if not opt: msg = 'org.mandrivalinux.mcc2.Sshd.Error.OptionNotFound' raise dbus.exceptions.DBusException, msg result = self.__sshd.remove_option(opt) if result == -1: msg = 'org.mandrivalinux.mcc2.Sshd.Error.DeleteOptionError' raise dbus.exceptions.DBusException, msg return option @dbus.service.method("org.mandrivalinux.mcc2.Sshd", in_signature='svs', out_signature='i', sender_keyword='sender', connection_keyword='connection') def AddOption(self, option, value, number, sender, connection): check_authorization(sender, connection, self.__action) opt = None if isinstance(value, dbus.Array): print 'Creating MccMultiValueOption' opt = MccMultiValueOption(name=option, value=value) elif isinstance(value, dbus.String): print 'Creating MccOption' opt = MccOption(name=option, value=value, num=number) else: msg = 'org.mandrivalinux.mcc2.Sshd.Error.UnsupportedType' raise dbus.exceptions.DBusException, msg print self.__sshd.set_option(opt) return 1 @dbus.service.method('org.mandrivalinux.mcc2.Sshd', sender_keyword='sender', connection_keyword='connection') def StopInterface(self, sender, connection): self.__loop.quit() def run(self): self.__loop.run() @classmethod def main(cls): sshd = cls() try: sshd.run() except KeyboardInterrupt: pass