def action(self): connections = userdb.load_connection_config(lock=True) if html.request.has_var("_delete"): index = int(html.request.var("_delete")) connection = connections[index] c = wato_confirm( _("Confirm deletion of LDAP connection"), _("Do you really want to delete the LDAP connection <b>%s</b>?" ) % (connection["id"])) if c: self._add_change( "delete-ldap-connection", _("Deleted LDAP connection %s") % (connection["id"])) del connections[index] userdb.save_connection_config(connections) elif c is False: return "" else: return elif html.request.has_var("_move"): if not html.check_transaction(): return from_pos = html.get_integer_input("_move") to_pos = html.get_integer_input("_index") connection = connections[from_pos] self._add_change( "move-ldap-connection", _("Changed position of LDAP connection %s to %d") % (connection["id"], to_pos)) del connections[from_pos] # make to_pos now match! connections[to_pos:to_pos] = [connection] userdb.save_connection_config(connections)
def page(self): with table_element() as table: for index, connection in enumerate( userdb.load_connection_config()): table.row() table.cell(_("Actions"), css="buttons") edit_url = watolib.folder_preserving_link([ ("mode", "edit_ldap_connection"), ("id", connection["id"]) ]) delete_url = make_action_link([("mode", "ldap_config"), ("_delete", index)]) drag_url = make_action_link([("mode", "ldap_config"), ("_move", index)]) clone_url = watolib.folder_preserving_link([ ("mode", "edit_ldap_connection"), ("clone", connection["id"]) ]) html.icon_button(edit_url, _("Edit this LDAP connection"), "edit") html.icon_button(clone_url, _("Create a copy of this LDAP connection"), "clone") html.element_dragger_url("tr", base_url=drag_url) html.icon_button(delete_url, _("Delete this LDAP connection"), "delete") table.cell("", css="narrow") if connection.get("disabled"): html.icon( _("This connection is currently not being used for synchronization." ), "disabled") else: html.empty_icon_button() table.cell(_("ID"), connection["id"]) if cmk.is_managed_edition(): table.cell(_("Customer"), managed.get_customer_name(connection)) table.cell(_("Description")) url = connection.get("docu_url") if url: html.icon_button( url, _("Context information about this connection"), "url", target="_blank") html.write(" ") html.write_text(connection["description"])
def _from_vars(self): self._connection_id = html.request.var("id") self._connection_cfg = {} self._connections = userdb.load_connection_config(lock=html.is_transaction()) if self._connection_id is None: clone_id = html.request.var("clone") if clone_id is not None: self._connection_cfg = self._get_connection_cfg_and_index(clone_id)[0] self._new = True return self._new = False self._connection_cfg, self._connection_nr = self._get_connection_cfg_and_index( self._connection_id)