Esempio n. 1
0
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))
Esempio n. 2
0
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))
Esempio n. 3
0
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
Esempio n. 4
0
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)
Esempio n. 5
0
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