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 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 user_exists(user): """Verifica que el usuario no exista previamente""" alumnos = get_orm().get_all() for alumno in alumnos: if int(alumno.legajo) == int(user["legajo"]): return True return False
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_alumno_from_cookie(): "Devuelve el alumno a partir de la cookie o None" user = is_authenticated("SD-CGI") alumno = get_orm().get_by_id(user["legajo"]) if user else None Logger.info(f"get_alumno_from_cookie => {alumno}") return alumno