def post(): session_id = get_cookie_value(COOKIE_NAME) _id, last_line = parse_cookie(session_id) session = get_session(_id, SESSIONFILE) form = cgi.FieldStorage() if session: # El usuario está logueado # Recuperar el mensaje del form y guardarlo en el archivo user = session["user"] message = form.getvalue("message") if message: add_message(user, message) session["last_line"] = str(_get_last_line(CHATFILE)["count"] + 1) delete_session(session, SESSIONFILE) add_session(session, SESSIONFILE) return f"<li><b>{user}</b>: {message}</li>" else: # No está logueado - crear sesión y loguear log(f"post() - NO LOGUEADO - LOGUEAR!") username = form.getvalue("username") session = create_session(username, SESSIONFILE) if not session: # El username está siendo usado - no se puede loguear return get_template("login.html").render(errors={ "nickname": f"El nickname '{username}' ya está siendo usado" }) cookie = login(f"{session['id']}|{session['last_line']}", COOKIE_NAME) print(cookie) messages = get_messages(session["last_line"]) return get_template("index.html").render( user=session["user"], messages=messages, users=get_active_users(SESSIONFILE))
def post(): """Loguear usuario""" form = cgi.FieldStorage() Logger.info(form) user = get_dict_from_fieldstorage(form) alumno = get_orm().get_by_id(user["legajo"]) template = get_template("login.html") correct_login = False try: correct_login = alumno.are_credentials_valid(user) except AttributeError as e: pass if correct_login: Logger.info("CREDENCIALES VÁLIDAS => LOGIN :)") #Generar cookie de autenticación login_cookie = login(user["legajo"], user["password"]) print(login_cookie) Logger.info(f"COOKIE => {login_cookie}") return (template.render(is_logged_in=True, alumno=alumno)) else: Logger.info("CREDENCIALES INVÁLIDAS => NOOOO LOGIN D:") errors = {"usuario": "Usuario o contraseña inválidos"} return (template.render(FIELD_CONSTRAINTS, errors=errors, user=user))
def main(): template = get_template("index.html") form = FieldStorage() user = is_authenticated("SD-CGI") logged_alumno = get_orm().get_by_id(user["legajo"]) if user else None try: is_logged_in = logged_alumno.are_credentials_valid(user) except AttributeError as e: print(logout()) is_logged_in = False alumnos = get_orm().get_all() filter_functions = get_filter_functions() for field in form: func = filter_functions[field] alumnos = [ alumno for alumno in alumnos if func(alumno, form[field].value) ] # Logger.info(f"alumnos => {alumnos}") print_template( template.render(is_logged_in=is_logged_in, alumnos=alumnos, alumno=logged_alumno))
def main(): #Remover cookie logout_cookie = logout() Logger.info(f"LOGOUT COOKIE => {logout_cookie}") print(logout_cookie) template = get_template("logout.html") print_template(template.render())
def get(): """Devolver la página correspondiente""" template = get_template("signup.html") # Si está logueado, habría que mostrar el formulario con los # datos del alumno para modificar logged_alumno = get_alumno_from_cookie() return template.render(FIELD_CONSTRAINTS, is_update=logged_alumno is not None, alumno=logged_alumno)
def get(): session_id = get_cookie_value(COOKIE_NAME) _id, last_line = parse_cookie(session_id) session = get_session(_id, SESSIONFILE) form = cgi.FieldStorage() if session: # El usuario está logueado if form.getvalue("logout"): # Se quiere desloguear delete_session(session, SESSIONFILE) logout_cookie = logout(COOKIE_NAME) print(logout_cookie) return get_template("login.html").render() # Actualizar cantidad de mensajes que se le enviaron messages = get_messages(int(session["last_line"])) if messages: session["last_line"] = str(_get_last_line(CHATFILE)["count"] + 1) delete_session(session, SESSIONFILE) add_session(session, SESSIONFILE) if form.getvalue("refresh"): # Si viene el `refresh`, enviar solamente los mensajes, # sin toda la ventana messages_list = make_messages_list(messages) users_list = make_users_list(get_active_users(SESSIONFILE)) return messages_list + users_list # Devolver el chat con los mensajes y los usuarios return get_template("index.html").render( user=session["user"], messages=get_messages(int(last_line)), users=get_active_users(SESSIONFILE)) else: # No está logueado - mostrar pantalla de login log(f"get() - NO LOGUEADO - DEVOLVER LOGIN") logout_cookie = logout(COOKIE_NAME) print(logout_cookie) return get_template("login.html").render()
def post(): """Crear usuario""" # Acá hay que chequear que los datos que vienen del formulario # sean correctos (cumplen con las condiciones necesarias) # Acá en el POST también hay que verificar si el usuario está logueado, # porque en tal caso, los datos que vengan son para modificar, # no para crear uno nuevo form = cgi.FieldStorage() user = get_dict_from_fieldstorage(form) logged_alumno = get_alumno_from_cookie() Logger.info(user) template = get_template("signup.html") errors = check_new_user(user) if is_update(logged_alumno): Logger.info("USUARIO PARA MODIFICAR!") Logger.info(f"ALUMNO EXISTENTE => {logged_alumno}") Logger.info(f"DATOS NUEVOS => {user}") logged_alumno.update(user) get_orm().update(logged_alumno) return template.render(alumno_updated=True, alumno=logged_alumno) Logger.info("errors => {}".format(errors)) if not has_errors(errors): Logger.info("USUARIO VALIDO - CREAR!") alumno = Alumno.from_dict(user) get_orm().create(alumno) Logger.info(f"Usuario creado con éxito [{alumno}]") return template.render(alumno_created=True, alumno=logged_alumno) # Tiene errores Logger.info("USUARIO NO ES VALIDO - NO CREAR :(") return template.render(FIELD_CONSTRAINTS, errors=errors, user=user, alumno=logged_alumno)
def get(): template = get_template("login.html") return (template.render(FIELD_CONSTRAINTS))