Esempio n. 1
0
 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