diff --git a/curses/wicd-curses.py b/curses/wicd-curses.py index 744cd15..34d52ff 100755 --- a/curses/wicd-curses.py +++ b/curses/wicd-curses.py @@ -38,7 +38,6 @@ at least get a network connection. Or those who don't like using X. ;-) import warnings warnings.filterwarnings("ignore","The popen2 module is deprecated. Use the subprocess module.") # UI stuff -# This library is the only reason why I wrote this program. import urwid # DBus communication stuff @@ -64,6 +63,7 @@ import netentry_curses from netentry_curses import WirelessSettingsDialog, WiredSettingsDialog,AdvancedSettingsDialog from optparse import OptionParser +from os import system # Stuff about getting the script configurer running #from grp import getgrgid @@ -72,7 +72,7 @@ from optparse import OptionParser #import logging #import logging.handler -CURSES_REVNO=wpath.curses_revision +CURSES_REV=wpath.curses_revision # Fix strings in wicd-curses from wicd.translations import language @@ -1047,7 +1047,14 @@ setup_dbus() ##### MAIN ENTRY POINT ######################################## if __name__ == '__main__': - parser = OptionParser(version="wicd-curses-%s (using wicd %s)" % (CURSES_REVNO,daemon.Hello())) + try: + parser = OptionParser(version="wicd-curses-%s (using wicd %s)" % (CURSES_REV,daemon.Hello())) + except Exception, e: + if "DBus.Error.AccessDenied" in e.get_dbus_name(): + print language['access_denied_wc'].replace('$A','\033[1;34m'+wpath.wicd_group+'\033[0m') + sys.exit(1) + else: + raise parser.set_defaults(screen='raw',debug=False) parser.add_option("-r", "--raw-screen",action="store_const",const='raw' ,dest='screen',help="use urwid's raw screen controller (default)") diff --git a/wicd/translations.py b/wicd/translations.py index f101385..695a1c1 100644 --- a/wicd/translations.py +++ b/wicd/translations.py @@ -55,7 +55,7 @@ def get_gettext(): _ = lang.gettext return _ -# Generated automatically on Fri, 05 Jun 2009 03:13:27 CDT +# Generated automatically on Sat, 20 Jun 2009 21:40:39 CDT _ = get_gettext() language = {} language['resetting_ip_address'] = _('''Resetting IP address...''') @@ -74,8 +74,7 @@ language['wired_networks'] = _('''Wired Networks''') language['backend_alert'] = _('''Changes to your backend won't occur until the daemon is restarted.''') language['about_help'] = _('''Stop a network connection in progress''') language['connecting'] = _('''Connecting''') -language['pre_disconnect_script'] = _('''Run pre-disconnect script''') -language['post_disconnect_script'] = _('''Run post-disconnect script''') +language['disconnect_script'] = _('''Run disconnect script''') language['cannot_edit_scripts_1'] = _('''To avoid various complications, wicd-curses does not support directly editing the scripts directly. However, you can edit them manually. First, (as root)", open the "$A" config file, and look for the section labeled by the $B in question. In this case, this is:''') language['cannot_edit_scripts_3'] = _('''You can also configure the wireless networks by looking for the "[]" field in the config file.''') language['cannot_edit_scripts_2'] = _('''Once there, you can adjust (or add) the "beforescript", "afterscript", and "disconnectscript" variables as needed, to change the preconnect, postconnect, and disconnect scripts respectively. Note that you will be specifying the full path to the scripts - not the actual script contents. You will need to add/edit the script contents separately. Refer to the wicd manual page for more information.''') @@ -217,3 +216,4 @@ language['establishing_connection'] = _('''Establishing connection...''') language['association_failed'] = _('''Connection failed: Could not contact the wireless access point.''') language['access_denied'] = _('''Unable to contact the Wicd daemon due to an access denied error from DBus. Please check your DBus configuration.''') language['disconnecting_active'] = _('''Disconnecting active connections...''') +language['access_denied_wc'] = _('''ERROR: wicd-curses was denied access to the wicd daemon: please check that your user is in the "$A" group.''') diff --git a/wicd/wicd-client.py b/wicd/wicd-client.py index 97f3095..6cc453b 100755 --- a/wicd/wicd-client.py +++ b/wicd/wicd-client.py @@ -87,8 +87,9 @@ def catchdbus(func): try: return func(*args, **kwargs) except DBusException, e: - if "DBus.Error.AccessDenied" in e: + if e.get_dbus_name() != None and "DBus.Error.AccessDenied" in e.get_dbus_name(): error(None, language['access_denied']) + #raise raise DBusException(e) else: print "warning: ignoring exception %s" % e