From 72d8206ecb8bf43e156fb38a3b6f7d41ac95b2e4 Mon Sep 17 00:00:00 2001 From: Lucas <ls17@c3sl.ufpr.br> Date: Fri, 29 Jun 2018 09:18:16 -0300 Subject: [PATCH] SCRUM#534: Add feature to enable/disable epoptes --- package/debian/changelog | 7 +++++ package/debian/control | 2 +- package/le-control-panel | 48 ++++++++++++++++++++++++++++------ package/le-control-panel.glade | 13 ++++----- 4 files changed, 55 insertions(+), 15 deletions(-) diff --git a/package/debian/changelog b/package/debian/changelog index a0ab511..8b09921 100644 --- a/package/debian/changelog +++ b/package/debian/changelog @@ -1,3 +1,10 @@ +le-laptop-controlpanel (0.1.0) unstable; urgency=medium + + * Add switch to enable/disable epoptes (Closes: #534) + * debian/control: New uploader + + -- Lucas Sulzbach <ls17@c3sl.ufpr.br> Fri, 29 Jun 2018 08:52:30 -0300 + le-laptop-controlpanel (0.0.2) unstable; urgency=medium * add button to prevent suspension on closing the laptop lid diff --git a/package/debian/control b/package/debian/control index 0c27e7d..27efe94 100644 --- a/package/debian/control +++ b/package/debian/control @@ -1,7 +1,7 @@ Source: le-laptop-controlpanel Section: admin Priority: optional -Uploaders: Andre Luis da Silva Machado <alsm14@c3sl.ufpr.br>, Diego Pasqualin <dpasqualin@c3sl.ufpr.br>, Rafael Sanfelice Castilho <rsc15@inf.ufpr.br> +Uploaders: Andre Luis da Silva Machado <alsm14@c3sl.ufpr.br>, Diego Pasqualin <dpasqualin@c3sl.ufpr.br>, Rafael Sanfelice Castilho <rsc15@inf.ufpr.br>, Lucas Sulzbach <ls17@c3sl.ufpr.br> Maintainer: C3SL <contato@c3sl.ufpr.br> Build-Depends: debhelper (>= 9) Standards-Version: 3.9.7 diff --git a/package/le-control-panel b/package/le-control-panel index b353f5d..a78c3ee 100755 --- a/package/le-control-panel +++ b/package/le-control-panel @@ -229,6 +229,22 @@ class Handler: runShellCommand("systemctl restart systemd-logind") return True + def onToggleEpoptes(self, switch, args): + if (switch.get_state()): + out = os.system("le-lab -s set_attribute epoptes _status enabled") + if out != 0: + self.error_mode = True + self.createErrorMessage(switch, getWindow(switch), + "Não foi possÃvel habilitar o epoptes") + else: + out = os.system("le-lab -s set_attribute epoptes _status disabled") + if out != 0: + self.error_mode = True + self.createErrorMessage(switch, getWindow(switch), + "Não foi possÃvel desabilitar" + " o epoptes") + return True + def passErrorResponse(self, dialog, response): dialog.hide() return 0 @@ -260,7 +276,7 @@ def timeout(): iconEpoptesStatus = builder.get_object("epoptesstatusicon") boxEpoptesStatus = builder.get_object("boxepoptesstatus") labelEpoptesStatus = builder.get_object("labelepoptesstatus") - if (statusEpoptes(labelEpoptesStatus)): + if (statusEpoptes(labelEpoptesStatus) == 2): iconEpoptesStatus.set_from_stock("gtk-yes", Gtk.IconSize.MENU) boxEpoptesStatus.set_tooltip_text("O Epoptes está ativo") else: @@ -510,19 +526,29 @@ def getEdubarStorage(): def statusEpoptes(label): try: - output = runShellCommand("le-lab -s get_attribute epoptes _status") - if output.find("client") != -1: + output = runShellCommand("le-lab -s get_attribute epoptes _status")[0] + s = builder.get_object("switchEpoptes") + if output.find("disabled") != -1: + label.set_text("Desabilitado") + return 0 + elif output.find("enabled") != -1: + label.set_text("Habilitado") + s.set_sensitive(True) + return 1 + elif output.find("client") != -1: label.set_text("Modo cliente") - return True + s.set_sensitive(False) + return 2 elif output.find("server") != -1: label.set_text("Modo servidor") - return True + s.set_sensitive(False) + return 2 else: label.set_text("") - return False + return 3 except Exception as e: print(e) - return False + return 4 def statusAutoUpdate(label): @@ -611,6 +637,7 @@ def setPermissions(uid): familyShield = builder.get_object("family_shield_frame") autoUpdate = builder.get_object("autoupdate_frame") epoptes = builder.get_object("epoptes_frame") + epoptesSwitch = builder.get_object("switchEpoptes") users = builder.get_object("new_user_frame") multiterminal = builder.get_object("multiterminal_frame") laptop = builder.get_object("laptop_frame") @@ -628,12 +655,14 @@ def setPermissions(uid): users.set_sensitive(True) unlock.set_sensitive(False) epoptes.set_sensitive(True) + epoptesSwitch.set_sensitive(True) multiterminal.set_sensitive(True) else: familyShield.set_sensitive(False) autoUpdate.set_sensitive(False) laptop.set_sensitive(False) users.set_sensitive(False) + epoptesSwitch.set_sensitive(False) multiterminal.set_sensitive(False) unlock.set_sensitive(True) @@ -685,7 +714,7 @@ if __name__ == "__main__": iconEpoptesStatus = builder.get_object("epoptesstatusicon") boxEpoptesStatus = builder.get_object("boxepoptesstatus") labelEpoptesStatus = builder.get_object("labelepoptesstatus") - if (statusEpoptes(labelEpoptesStatus)): + if (statusEpoptes(labelEpoptesStatus) == 2): iconEpoptesStatus.set_from_stock("gtk-yes", Gtk.IconSize.MENU) boxEpoptesStatus.set_tooltip_text("O Epoptes está ativo") else: @@ -701,6 +730,7 @@ if __name__ == "__main__": switchUpdate = builder.get_object("switchAutoUpdate") swichStandby = builder.get_object("swichStandby") + switchEpoptes = builder.get_object("switchEpoptes") uid = os.getuid() setPermissions(uid) @@ -719,6 +749,7 @@ if __name__ == "__main__": switchShieldNetwork.set_active(getShieldNetworkState()) switchUpdate.set_active(getUpdateState()) switchUpdate.set_active(getLidSwitchState()) + switchEpoptes.set_active(statusEpoptes(labelEpoptesStatus) == 1) apt_pkg.init() pid = Popen(["lcpmonitor", "/var/log/unattended-upgrades/", "35", str(os.getpid())]).pid @@ -730,5 +761,6 @@ if __name__ == "__main__": switchShieldNetwork.set_active(False) switchUpdate.set_active(False) swichStandby.set_active(False) + switchEpoptes.set_active(False) Gtk.main() diff --git a/package/le-control-panel.glade b/package/le-control-panel.glade index 560c19f..55ae5d2 100644 --- a/package/le-control-panel.glade +++ b/package/le-control-panel.glade @@ -171,7 +171,7 @@ <object class="GtkBox" id="box11"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="tooltip_text" translatable="yes">habilitar o controle parental para este computador</property> + <property name="tooltip_text" translatable="yes">Habilitar o controle parental para este computador</property> <property name="margin_top">3</property> <property name="margin_bottom">3</property> <child> @@ -210,7 +210,7 @@ <object class="GtkBox" id="box12"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="tooltip_text" translatable="yes">habilitar o controle parental para todos os computadores da rede</property> + <property name="tooltip_text" translatable="yes">Habilitar o controle parental para todos os computadores da rede</property> <property name="margin_top">3</property> <property name="margin_bottom">3</property> <child> @@ -304,7 +304,7 @@ <object class="GtkBox" id="box13"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="tooltip_text" translatable="yes">habilitar sistema de atualização automática</property> + <property name="tooltip_text" translatable="yes">Habilitar sistema de atualização automática</property> <property name="margin_top">3</property> <property name="margin_bottom">3</property> <child> @@ -645,14 +645,14 @@ <object class="GtkBox" id="box1"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="tooltip_text" translatable="yes">habilitar o controle parental para todos os computadores da rede</property> + <property name="tooltip_text" translatable="yes">Habilitar o Epoptes localmente</property> <property name="margin_top">3</property> <property name="margin_bottom">3</property> <child> <object class="GtkLabel" id="label1"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes">Desabilitar Epoptes</property> + <property name="label" translatable="yes">Habilitar Epoptes</property> </object> <packing> <property name="expand">False</property> @@ -661,9 +661,10 @@ </packing> </child> <child> - <object class="GtkSwitch" id="desabilitar_epoptes"> + <object class="GtkSwitch" id="switchEpoptes"> <property name="visible">True</property> <property name="can_focus">True</property> + <signal name="notify::active" handler="onToggleEpoptes" swapped="no"/> </object> <packing> <property name="expand">False</property> -- GitLab