def doAuthentication(self, trans, request): session = request.getSession() _ = trans # Se escribe el comienzo de la página request.write(self.template.startPage(session, \ _('Listado de usuarios del sistema'))) d = defer.maybeDeferred(lambda: None) keys = request.args.keys() # Si no es admin o no esta loggeado, no seguimos if not hasattr(session, 'username') or session.kind != ADMIN: request.write(self.template.notAuthenticated(session)) else: if "kind" in request.args.keys(): try: kind = int(request.args['kind'][0]) if "del" in keys: erase = DBDelete(self.db) client = QuotedString(request.args['del'][0]) d.addCallback(lambda a: erase.deletePerson(client, kind)) d.addCallback(lambda a: request.write('<div class="message">' + \ _('El usuario ha sido borrado correctamente') + '</div>')) elif ("ia" in keys or "pc" in keys) and "user_id" in keys and \ not ("ia" in keys and "pc" in keys): hours = ("ia" in keys) and "ia" or "pc" user = QuotedString(request.args['user_id'][0]) cant = float(request.args[hours][0].replace(",", ".")) d.addCallback(lambda a: self.setClientHours(user, cant, hours)) d.addCallback(lambda a: request.write('<div class="message">' + \ _('Se ha actualizado correctamente la cantidad de horas disponibles') + '</div>')) d.addCallback(lambda a: self.listClient(request)) except ValueError: d.addCallback(lambda a: \ request.write(self.template.unexpectedArguments(session, \ _('Argumento no valido')))) else: d.addCallback(lambda a: \ request.write(self.template.unexpectedArguments(session, \ _('Falta el argumento \'kind\'')))) # Se escribe el final de la página d.addCallback(lambda a: request.write(self.template.finishPage(session))) d.addCallback(lambda a: request.finish()) return d