[nanny] New dialog for update custom filters. Check empty fields in custom filters.
- From: Cesar Garcia Tapia <ctapia src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [nanny] New dialog for update custom filters. Check empty fields in custom filters.
- Date: Mon, 1 Feb 2010 10:28:05 +0000 (UTC)
commit fa716cbef517e9c57f2ef2dc39e87e26ec71021d
Author: Cesar Garcia Tapia <cesar garcia tapia openshine com>
Date: Mon Feb 1 11:26:51 2010 +0100
New dialog for update custom filters. Check empty fields in custom filters.
client/common/src/DBusClient.py | 16 +-
client/gnome/admin/data/glade/nac_wcf_dialog.glade | 95 ++++++-
.../admin/data/glade/nac_wcf_edit_dialog.glade | 60 ++---
client/gnome/admin/src/ConfigureProxyDialog.py | 298 ++++++++++++--------
daemon/src/FilterManager.py | 2 +-
daemon/src/NannyDBus.py | 18 +-
6 files changed, 309 insertions(+), 180 deletions(-)
---
diff --git a/client/common/src/DBusClient.py b/client/common/src/DBusClient.py
index e77b96e..3e0be87 100644
--- a/client/common/src/DBusClient.py
+++ b/client/common/src/DBusClient.py
@@ -124,20 +124,24 @@ class DBusClient(gobject.GObject):
def list_WCF (self):
return self.nanny_admin.ListWCF ()
+ def list_custom_filters (self, uid):
+ return self.nanny_wcf.ListCustomFilters (uid)
+
def add_custom_filter (self, user_id, color, name, description, url):
+ print name
return self.nanny_wcf.AddCustomFilter (user_id, color, name, description, url)
+ def update_custom_filter (self, filter_id, name, description, url):
+ return self.nanny_wcf.UpdateCustomFilter (filter_id, name, description, url)
+
+ def remove_custom_filter (self, filter_id, reply_handler, error_handler):
+ return self.nanny_wcf.RemoveCustomFilter (filter_id, reply_handler=reply_handler, error_handler=error_handler, timeout=2000000)
+
def add_dansguardian_list (self, uid, name, description, list_url, reply_handler, error_handler):
self.nanny_wcf.AddDansGuardianList (uid, name, description, list_url, reply_handler=reply_handler, error_handler=error_handler, timeout=2000000)
def check_web_access (self, uid, url):
return self.nanny_wcf.CheckWebAccess (uid, url)
- def list_filters (self, uid):
- return self.nanny_wcf.ListFilters (uid)
-
- def remove_filter (self, filter_id, reply_handler, error_handler):
- return self.nanny_wcf.RemoveFilter (filter_id, reply_handler=reply_handler, error_handler=error_handler, timeout=2000000)
-
def __on_user_notification_cb (self, block_status, user_id, app_id, next_change, available_time):
self.emit ('user-notification', block_status, user_id, app_id, next_change, available_time)
diff --git a/client/gnome/admin/data/glade/nac_wcf_dialog.glade b/client/gnome/admin/data/glade/nac_wcf_dialog.glade
index 567c88f..528dead 100644
--- a/client/gnome/admin/data/glade/nac_wcf_dialog.glade
+++ b/client/gnome/admin/data/glade/nac_wcf_dialog.glade
@@ -20,9 +20,18 @@
<property name="visible">True</property>
<property name="spacing">5</property>
<child>
- <object class="GtkTreeView" id="wcfd_blacklist_treeview">
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="shadow_type">etched-in</property>
+ <child>
+ <object class="GtkTreeView" id="wcfd_custom_blacklist_treeview">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ </child>
</object>
<packing>
<property name="position">0</property>
@@ -35,7 +44,7 @@
<property name="spacing">5</property>
<property name="layout_style">start</property>
<child>
- <object class="GtkButton" id="wcfd_blacklist_add_button">
+ <object class="GtkButton" id="wcfd_custom_blacklist_add_button">
<property name="label">gtk-add</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -49,7 +58,7 @@
</packing>
</child>
<child>
- <object class="GtkButton" id="wcfd_blacklist_edit_button">
+ <object class="GtkButton" id="wcfd_custom_blacklist_edit_button">
<property name="label">gtk-edit</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
@@ -62,7 +71,7 @@
</packing>
</child>
<child>
- <object class="GtkButton" id="wcfd_blacklist_remove_button">
+ <object class="GtkButton" id="wcfd_custom_blacklist_remove_button">
<property name="label">gtk-remove</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -106,9 +115,18 @@
<property name="visible">True</property>
<property name="spacing">5</property>
<child>
- <object class="GtkTreeView" id="wcfd_whitelist_treeview">
+ <object class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="shadow_type">etched-in</property>
+ <child>
+ <object class="GtkTreeView" id="wcfd_custom_whitelist_treeview">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ </child>
</object>
<packing>
<property name="position">0</property>
@@ -121,7 +139,7 @@
<property name="spacing">5</property>
<property name="layout_style">start</property>
<child>
- <object class="GtkButton" id="wcfd_whitelist_add_button">
+ <object class="GtkButton" id="wcfd_custom_whitelist_add_button">
<property name="label">gtk-add</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -135,7 +153,7 @@
</packing>
</child>
<child>
- <object class="GtkButton" id="wcfd_whitelist_edit_button">
+ <object class="GtkButton" id="wcfd_custom_whitelist_edit_button">
<property name="label">gtk-edit</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
@@ -148,7 +166,7 @@
</packing>
</child>
<child>
- <object class="GtkButton" id="wcfd_whitelist_remove_button">
+ <object class="GtkButton" id="wcfd_custom_whitelist_remove_button">
<property name="label">gtk-remove</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -184,6 +202,67 @@
<property name="tab_fill">False</property>
</packing>
</child>
+ <child>
+ <object class="GtkAlignment" id="alignment3">
+ <property name="visible">True</property>
+ <property name="top_padding">5</property>
+ <property name="bottom_padding">5</property>
+ <property name="left_padding">5</property>
+ <property name="right_padding">5</property>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="label" translatable="yes">Here you can apply the available blacklists for the selected user. If you want to add new blacklists please go to System > Administration > Blacklists.</property>
+ <property name="justify">fill</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow3">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="shadow_type">etched-in</property>
+ <child>
+ <object class="GtkTreeView" id="wcfd_packaged_blacklist_treeview">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Blacklists</property>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
</object>
</child>
</object>
diff --git a/client/gnome/admin/data/glade/nac_wcf_edit_dialog.glade b/client/gnome/admin/data/glade/nac_wcf_edit_dialog.glade
index 119d61f..5b2ff38 100644
--- a/client/gnome/admin/data/glade/nac_wcf_edit_dialog.glade
+++ b/client/gnome/admin/data/glade/nac_wcf_edit_dialog.glade
@@ -13,9 +13,21 @@
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
+ <object class="GtkLabel" id="wcfed_warning_label">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="label" translatable="yes"><span color="red">All the fields are mandatory. Please fill all of them.</span></property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkTable" id="table2">
<property name="visible">True</property>
- <property name="n_rows">4</property>
+ <property name="n_rows">3</property>
<property name="n_columns">2</property>
<property name="column_spacing">12</property>
<property name="row_spacing">5</property>
@@ -28,8 +40,8 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="y_options"></property>
</packing>
</child>
@@ -40,8 +52,8 @@
<property name="label" translatable="yes">URL:</property>
</object>
<packing>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
@@ -53,8 +65,8 @@
<property name="label" translatable="yes">Description:</property>
</object>
<packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
@@ -68,30 +80,8 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="wcfed_type_label">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Type of filter:</property>
- </object>
- <packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="wcfed_type_combobox">
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_FILL</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
@@ -102,8 +92,7 @@
<property name="label" translatable="yes">Name:</property>
</object>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
@@ -115,13 +104,12 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
</packing>
</child>
</object>
<packing>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
<child internal-child="action_area">
diff --git a/client/gnome/admin/src/ConfigureProxyDialog.py b/client/gnome/admin/src/ConfigureProxyDialog.py
index e514cdd..330510c 100644
--- a/client/gnome/admin/src/ConfigureProxyDialog.py
+++ b/client/gnome/admin/src/ConfigureProxyDialog.py
@@ -47,26 +47,24 @@ class ConfigureProxyDialog (gtk.Dialog):
self.main_notebook.unparent()
self.get_content_area().add (self.main_notebook)
- self.blacklist_edit_button.set_no_show_all(True)
- self.whitelist_edit_button.set_no_show_all(True)
-
- self.blacklist_add_button.connect ('clicked', self.__on_blacklist_add_button_clicked)
- self.blacklist_edit_button.connect ('clicked', self.__on_blacklist_edit_button_clicked)
- self.blacklist_remove_button.connect ('clicked', self.__on_blacklist_remove_button_clicked)
- self.whitelist_add_button.connect ('clicked', self.__on_whitelist_add_button_clicked)
- self.whitelist_edit_button.connect ('clicked', self.__on_whitelist_edit_button_clicked)
- self.whitelist_remove_button.connect ('clicked', self.__on_whitelist_remove_button_clicked)
-
- self.__init_treeview (self.blacklist_treeview)
- self.__init_treeview (self.whitelist_treeview)
+ self.custom_blacklist_add_button.connect ('clicked', self.__on_custom_blacklist_add_button_clicked)
+ self.custom_blacklist_edit_button.connect ('clicked', self.__on_custom_blacklist_edit_button_clicked)
+ self.custom_blacklist_remove_button.connect ('clicked', self.__on_custom_blacklist_remove_button_clicked)
+ self.custom_whitelist_add_button.connect ('clicked', self.__on_custom_whitelist_add_button_clicked)
+ self.custom_whitelist_edit_button.connect ('clicked', self.__on_custom_whitelist_edit_button_clicked)
+ self.custom_whitelist_remove_button.connect ('clicked', self.__on_custom_whitelist_remove_button_clicked)
+
+ self.__init_treeview (self.custom_blacklist_treeview)
+ self.__init_treeview (self.custom_whitelist_treeview)
+ self.__init_treeview (self.packaged_blacklist_treeview)
self.__fill_treeviews ()
- selection = self.blacklist_treeview.get_selection()
- selection.connect ('changed', self.__on_blacklist_selection_changed)
- self.__on_blacklist_selection_changed (selection)
- selection = self.whitelist_treeview.get_selection()
- selection.connect ('changed', self.__on_whitelist_selection_changed)
- self.__on_whitelist_selection_changed (selection)
+ selection = self.custom_blacklist_treeview.get_selection()
+ selection.connect ('changed', self.__on_custom_blacklist_selection_changed)
+ self.__on_custom_blacklist_selection_changed (selection)
+ selection = self.custom_whitelist_treeview.get_selection()
+ selection.connect ('changed', self.__on_custom_whitelist_selection_changed)
+ self.__on_custom_whitelist_selection_changed (selection)
self.resize (700, 460)
@@ -89,85 +87,81 @@ class ConfigureProxyDialog (gtk.Dialog):
base_id = base_id + 1
store = gtk.ListStore (gobject.TYPE_INT,
+ gobject.TYPE_STRING,
+ gobject.TYPE_STRING,
+ gobject.TYPE_STRING,
gobject.TYPE_STRING)
treeview.set_model (store)
def __fill_treeviews (self):
- blacklist_model = self.blacklist_treeview.get_model()
- blacklist_model.clear()
+ custom_blacklist_model = self.custom_blacklist_treeview.get_model()
+ custom_blacklist_model.clear()
- whitelist_model = self.whitelist_treeview.get_model()
- whitelist_model.clear()
+ custom_whitelist_model = self.custom_whitelist_treeview.get_model()
+ custom_whitelist_model.clear()
- filters = self.dbus_client.list_filters (self.__selected_user_id)
- for filter_id, filter_name, filter_description, is_black in filters:
+ filters = self.dbus_client.list_custom_filters (self.__selected_user_id)
+ for filter_id, filter_name, filter_description, filter_regex, is_black in filters:
if is_black:
- blacklist_model.append ((filter_id, "<b>%s</b>\n %s" % (filter_name, filter_description)))
+ custom_blacklist_model.append ((filter_id, "<b>%s</b>\n %s" % (filter_name, filter_description), filter_name, filter_description, filter_regex))
else:
- whitelist_model.append ((filter_id, "<b>%s</b>\n %s" % (filter_name, filter_description)))
+ custom_whitelist_model.append ((filter_id, "<b>%s</b>\n %s" % (filter_name, filter_description), filter_name, filter_description, filter_regex))
- def __on_blacklist_add_button_clicked (self, widget, data=None):
+ def __on_custom_blacklist_add_button_clicked (self, widget, data=None):
xml = self.__load_dialog ()
self.proxy_rule_dialog = xml.get_object ('wcfed_dialog')
- ret = self.proxy_rule_dialog.run()
- if ret == 2:
- combobox = xml.get_object ('wcfed_type_combobox')
- name_entry = xml.get_object ('wcfed_name_entry')
- description_entry = xml.get_object ('wcfed_description_entry')
- url_entry = xml.get_object ('wcfed_url_entry')
-
- name = name_entry.get_text()
- type = combobox.get_active ()
- description = description_entry.get_text()
- url = url_entry.get_text()
-
- if type == 0:
- self.progress_dialog = ProgressDialog (_("Downloading the list. Please, wait..."))
- self.dbus_client.add_dansguardian_list (self.__selected_user_id,
- name,
- description,
- url,
- self.__on_add_dansguardian_list_reply,
- self.__on_add_dansguardian_list_error)
- self.proxy_rule_dialog.destroy()
- self.proxy_rule_dialog = None
- elif type == 1:
+ warning_label = xml.get_object ("wcfed_warning_label")
+ warning_label.hide ()
+ while True:
+ ret = self.proxy_rule_dialog.run()
+ if ret == 2:
+ name_entry = xml.get_object ('wcfed_name_entry')
+ description_entry = xml.get_object ('wcfed_description_entry')
+ url_entry = xml.get_object ('wcfed_url_entry')
+
+ name = name_entry.get_text().strip()
+ description = description_entry.get_text().strip()
+ url = url_entry.get_text().strip()
+
+ if name == "" or description == "" or url == "":
+ warning_label.show()
+ continue
+
self.dbus_client.add_custom_filter (self.__selected_user_id, True, name, description, url)
self.__fill_treeviews ()
self.proxy_rule_dialog.destroy()
- self.proxy_rule_dialog = None
- else:
- self.proxy_rule_dialog.destroy()
- self.proxy_rule_dialog = None
-
+ break
+ else:
+ self.proxy_rule_dialog.destroy()
+ break
- def __on_whitelist_add_button_clicked (self, widget, data=None):
+ def __on_custom_whitelist_add_button_clicked (self, widget, data=None):
xml = self.__load_dialog ()
dialog = xml.get_object ('wcfed_dialog')
+ warning_label = xml.get_object ("wcfed_warning_label")
+ warning_label.hide ()
- type_label = xml.get_object ('wcfed_type_label')
- type_label.hide()
- combobox = xml.get_object ('wcfed_type_combobox')
- combobox.hide()
+ while True:
+ ret = dialog.run()
+ if ret == 2:
+ name_entry = xml.get_object ('wcfed_name_entry')
+ description_entry = xml.get_object ('wcfed_description_entry')
+ url_entry = xml.get_object ('wcfed_url_entry')
- dialog = xml.get_object ('wcfed_dialog')
- ret = dialog.run()
- if ret == 2:
- name_entry = xml.get_object ('wcfed_name_entry')
- description_entry = xml.get_object ('wcfed_description_entry')
- url_entry = xml.get_object ('wcfed_url_entry')
+ name = name_entry.get_text().strip()
+ description = description_entry.get_text().strip()
+ url = url_entry.get_text().strip()
- name = name_entry.get_text()
- description = description_entry.get_text()
- url = url_entry.get_text()
- dialog.destroy()
+ if name == "" or description == "" or url == "":
+ warning_label.show()
+ continue
- self.dbus_client.add_custom_filter (self.__selected_user_id, False, name, description, url)
-
- self.__fill_treeviews ()
- else:
- dialog.destroy()
+ self.dbus_client.add_custom_filter (self.__selected_user_id, False, name, description, url)
+ self.__fill_treeviews ()
+ dialog.destroy()
+ else:
+ dialog.destroy()
def __on_add_dansguardian_list_reply (self, value):
self.progress_dialog.destroy()
@@ -197,13 +191,91 @@ class ConfigureProxyDialog (gtk.Dialog):
dlg.run()
dlg.destroy()
- def __on_blacklist_edit_button_clicked (self, widget, data=None):
- pass
+ def __on_custom_blacklist_edit_button_clicked (self, widget, data=None):
+ xml = self.__load_dialog ()
+ self.proxy_rule_dialog = xml.get_object ('wcfed_dialog')
+ warning_label = xml.get_object ("wcfed_warning_label")
+ warning_label.hide ()
+
+ name_entry = xml.get_object ('wcfed_name_entry')
+ description_entry = xml.get_object ('wcfed_description_entry')
+ url_entry = xml.get_object ('wcfed_url_entry')
- def __on_whitelist_edit_button_clicked (self, widget, data=None):
- pass
+ selection = self.custom_blacklist_treeview.get_selection()
+ if selection.count_selected_rows () > 0:
+ model, iter = selection.get_selected()
+ if iter:
+ filter_id = model.get_value (iter, 0)
+ filter_name = model.get_value (iter, 2)
+ filter_description = model.get_value (iter, 3)
+ filter_regex = model.get_value (iter, 4)
+
+ name_entry.set_text (filter_name)
+ description_entry.set_text (filter_description)
+ url_entry.set_text (filter_regex)
+
+ while True:
+ ret = self.proxy_rule_dialog.run()
+ if ret == 2:
+ filter_name = name_entry.get_text().strip()
+ filter_description = description_entry.get_text().strip()
+ filter_url = url_entry.get_text().strip()
+
+ if filter_name == "" or filter_description == "" or filter_url == "":
+ warning_label.show()
+ continue
+
+ self.dbus_client.update_custom_filter (filter_id, filter_name, filter_description, filter_url)
+ self.__fill_treeviews ()
+ self.proxy_rule_dialog.destroy()
+ break
+ else:
+ self.proxy_rule_dialog.destroy()
+ break
+
+ def __on_custom_whitelist_edit_button_clicked (self, widget, data=None):
+ xml = self.__load_dialog ()
+ self.proxy_rule_dialog = xml.get_object ('wcfed_dialog')
+ warning_label = xml.get_object ("wcfed_warning_label")
+ warning_label.hide ()
+
+ name_entry = xml.get_object ('wcfed_name_entry')
+ description_entry = xml.get_object ('wcfed_description_entry')
+ url_entry = xml.get_object ('wcfed_url_entry')
- def __on_blacklist_remove_button_clicked (self, widget, data=None):
+ selection = self.custom_whitelist_treeview.get_selection()
+ if selection.count_selected_rows () > 0:
+ model, iter = selection.get_selected()
+ if iter:
+ filter_id = model.get_value (iter, 0)
+ filter_name = model.get_value (iter, 2)
+ filter_description = model.get_value (iter, 3)
+ filter_regex = model.get_value (iter, 4)
+
+ name_entry.set_text (filter_name)
+ description_entry.set_text (filter_description)
+ url_entry.set_text (filter_regex)
+
+ while True:
+ ret = self.proxy_rule_dialog.run()
+ if ret == 2:
+ filter_name = name_entry.get_text().strip()
+ filter_description = description_entry.get_text().strip()
+ filter_url = url_entry.get_text().strip()
+
+ if filter_name == "" or filter_description == "" or filter_url == "":
+ warning_label.show()
+ continue
+
+ self.dbus_client.update_custom_filter (filter_id, filter_name, filter_description, filter_url)
+ self.__fill_treeviews ()
+ self.proxy_rule_dialog.destroy()
+ break
+ else:
+ self.proxy_rule_dialog.destroy()
+ break
+
+ def __on_custom_blacklist_remove_button_clicked (self, widget, data=None):
dlg = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK_CANCEL)
dlg.set_property("icon-name", "nanny")
dlg.set_markup(_("<b>Are you sure you want to delete this filter?</b>"))
@@ -215,18 +287,16 @@ class ConfigureProxyDialog (gtk.Dialog):
return
self.progress_dialog = ProgressDialog (_("Removing filter. Please, wait..."))
- selection = self.blacklist_treeview.get_selection()
+ selection = self.custom_blacklist_treeview.get_selection()
if selection.count_selected_rows () > 0:
- model, paths = selection.get_selected_rows()
- if paths:
- for path in paths:
- id = model.get_value (model.get_iter(path), 0)
- self.dbus_client.remove_filter (id,
- self.__on_remove_filter_reply,
- self.__on_remove_filter_error)
-
-
- def __on_whitelist_remove_button_clicked (self, widget, data=None):
+ model, iter = selection.get_selected()
+ if iter:
+ id = model.get_value (iter, 0)
+ self.dbus_client.remove_custom_filter (id,
+ self.__on_remove_filter_reply,
+ self.__on_remove_filter_error)
+
+ def __on_custom_whitelist_remove_button_clicked (self, widget, data=None):
dlg = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK_CANCEL)
dlg.set_property("icon-name", "nanny")
dlg.set_markup(_("<b>Are you sure you want to delete this filter?</b>"))
@@ -238,15 +308,14 @@ class ConfigureProxyDialog (gtk.Dialog):
return
self.progress_dialog = ProgressDialog (_("Removing filter. Please, wait..."))
- selection = self.whitelist_treeview.get_selection()
+ selection = self.custom_whitelist_treeview.get_selection()
if selection.count_selected_rows () > 0:
- model, paths = selection.get_selected_rows()
- if paths:
- for path in paths:
- id = model.get_value (model.get_iter(path), 0)
- self.dbus_client.remove_filter (id,
- self.__on_remove_filter_reply,
- self.__on_remove_filter_error)
+ model, iter = selection.get_selected()
+ if iter:
+ id = model.get_value (iter, 0)
+ self.dbus_client.remove_custom_filter (id,
+ self.__on_remove_filter_reply,
+ self.__on_remove_filter_error)
def __on_remove_filter_reply (self, value):
self.progress_dialog.destroy()
@@ -273,38 +342,27 @@ class ConfigureProxyDialog (gtk.Dialog):
dlg.run()
dlg.destroy()
- def __on_blacklist_selection_changed (self, selection, data=None):
+ def __on_custom_blacklist_selection_changed (self, selection, data=None):
if selection.count_selected_rows () > 0:
- self.blacklist_edit_button.set_sensitive (True)
- self.blacklist_remove_button.set_sensitive (True)
+ self.custom_blacklist_edit_button.set_sensitive (True)
+ self.custom_blacklist_remove_button.set_sensitive (True)
else:
- self.blacklist_edit_button.set_sensitive (False)
- self.blacklist_remove_button.set_sensitive (False)
+ self.custom_blacklist_edit_button.set_sensitive (False)
+ self.custom_blacklist_remove_button.set_sensitive (False)
- def __on_whitelist_selection_changed (self, selection, data=None):
+ def __on_custom_whitelist_selection_changed (self, selection, data=None):
if selection.count_selected_rows () > 0:
- self.whitelist_edit_button.set_sensitive (True)
- self.whitelist_remove_button.set_sensitive (True)
+ self.custom_whitelist_edit_button.set_sensitive (True)
+ self.custom_whitelist_remove_button.set_sensitive (True)
else:
- self.whitelist_edit_button.set_sensitive (False)
- self.whitelist_remove_button.set_sensitive (False)
+ self.custom_whitelist_edit_button.set_sensitive (False)
+ self.custom_whitelist_remove_button.set_sensitive (False)
def __load_dialog (self):
glade_file = os.path.join (nanny.client.gnome.admin.glade_files_dir, "nac_wcf_edit_dialog.glade")
xml = gtk.Builder ()
xml.add_from_file (glade_file)
- store = gtk.ListStore (gobject.TYPE_INT, gobject.TYPE_STRING)
- store.append ((0, _("Download list from the Internet")))
- store.append ((1, _("Insert manual domain or URL")))
-
- combobox = xml.get_object ('wcfed_type_combobox')
- cell = gtk.CellRendererText()
- combobox.pack_start(cell, True)
- combobox.add_attribute(cell, 'text', 1)
- combobox.set_model (store)
- combobox.set_active (0)
-
return xml
class ProgressDialog (gtk.Window):
diff --git a/daemon/src/FilterManager.py b/daemon/src/FilterManager.py
index 761938d..7121ec2 100644
--- a/daemon/src/FilterManager.py
+++ b/daemon/src/FilterManager.py
@@ -107,7 +107,7 @@ class FilterManager (gobject.GObject) :
qr = block_d.blockOn()
for f in qr :
- ret.append([ int(f[0]), str(f[3]), str(f[4]), bool(f[2]) ])
+ ret.append([ int(f[0]), unicode(f[3]), unicode(f[4]), unicode(f[5]), bool(f[2]) ])
return ret
except:
diff --git a/daemon/src/NannyDBus.py b/daemon/src/NannyDBus.py
index 7618541..74d27e1 100644
--- a/daemon/src/NannyDBus.py
+++ b/daemon/src/NannyDBus.py
@@ -109,11 +109,11 @@ class NannyDBus(dbus.service.Object):
@dbus.service.method("org.gnome.Nanny.WebDatabase",
in_signature='sbsss', out_signature='b')
def AddCustomFilter(self, uid, is_black, name, description, regex):
- return self.quarterback.filter_manager.add_custom_filter(str(uid), bool(is_black), str(name),
- str(description), str(regex))
+ return self.quarterback.filter_manager.add_custom_filter(str(uid), bool(is_black), unicode(name),
+ unicode(description), unicode(regex))
@dbus.service.method("org.gnome.Nanny.WebDatabase",
- in_signature='s', out_signature='a(issb)')
+ in_signature='s', out_signature='a(isssb)')
def ListCustomFilters(self, uid):
return self.quarterback.filter_manager.list_custom_filters(int(uid))
@@ -127,9 +127,9 @@ class NannyDBus(dbus.service.Object):
in_signature='isss', out_signature='b')
def UpdateCustomFilter(self, list_id, name, description, regex):
return self.quarterback.filter_manager.update_custom_filter(int(list_id),
- str(name),
- str(description),
- str(regex))
+ unicode(name),
+ unicode(description),
+ unicode(regex))
#DEPRECATED
@dbus.service.method("org.gnome.Nanny.WebDatabase",
@@ -148,6 +148,6 @@ class NannyDBus(dbus.service.Object):
in_signature='ssss', out_signature='b')
def AddDansGuardianList(self, uid, name, description, list_url):
return self.quarterback.webcontent_filter.webdb.add_dans_guardian_list(str(uid),
- str(name),
- str(description),
- str(list_url))
+ unicode(name),
+ unicode(description),
+ unicode(list_url))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]