示例#1
0
    def get(self):
        user = UserModel()
        user.from_json(flask.session['user'])

        context = {
            "selected_tab": "home",
            "user": user,
        }

        return flask.render_template('index.html', **context)
    def get(self):
        if flask.session.get('admin') is not None:
            admin = UserModel.create(**flask.session['admin'])

            admin_facade.logout_admin(admin.token)

            del flask.session['admin']
            flask.flash("You were logged out.", "info")

        return flask.redirect(flask.url_for('admin_login'))
    def get(self):
        if flask.session.get('user') is not None:
            user = UserModel.create(**flask.session['user'])

            user_facade.logout_user(user.token)

            del flask.session['user']
            flask.flash("You were logged out.", "info")

        return flask.redirect(flask.url_for('login'))
    def post(self):
        user = UserModel.create(**flask.session['user'])

        course_id = flask.request.get_json()['course_id']

        auth = course_facade.drop_course(user.token, course_id)

        if not auth:
            return self.handle_not_authorized()
        else:
            flask.flash(f"Successfully dropped course.", "success")
            return flask.jsonify({})

        return
示例#5
0
    def post(self):
        user = UserModel.create(**flask.session['user'])

        search_data = flask.request.get_json()

        (status, courses) = course_facade.search_for_courses(user.token, search_data)

        if status == FRC.NOT_AUTHENTICATED:
            return self.handle_not_authorized()
        if status != FRC.SUCCESS:
            return flask.jsonify({})

        course_list = list(map(lambda c: c.to_json(), courses))

        return flask.jsonify(course_list)
    def decorated_function(*args, **kwargs):
        logged_in = True

        if session.get('user') is None:
            logged_in = False
        else:
            user = UserModel.create(**session.get('user'))
            if not user_facade.check_user_token(user.token):
                logged_in = False

        if not logged_in:
            session['user'] = None

            flask.flash(f"Please log in.", "warning")
            return redirect(url_for('login'))
        return func(*args, **kwargs)
    def get(self):
        courses = []

        user = UserModel.create(**flask.session['user'])

        (status, cs) = course_facade.get_enrolled_courses(user.token)

        if status == FRC.NOT_AUTHENTICATED:
            return self.handle_not_authorized()

        if status != FRC.SUCCESS:
            flask.flash(f"There was an error loading your enrolled courses.",
                        "danger")

        for c in cs:
            days = []
            if "Mon" in c.days_of_week:
                days.append(0)
            if "Tues" in c.days_of_week:
                days.append(1)
            if "Wed" in c.days_of_week:
                days.append(2)
            if "Thur" in c.days_of_week:
                days.append(3)
            if "Fri" in c.days_of_week:
                days.append(4)

            start_m = re.match("^([0-9]+)\:([0-9]+)", c.start_time)
            start_off = int(start_m.group(1)) + int(start_m.group(2)) / 60.0

            end_m = re.match("^([0-9]+)\:([0-9]+)", c.end_time)
            end_off = int(end_m.group(1)) + int(end_m.group(2)) / 60.0

            for d in days:
                courses.append({
                    "first_row": c.course_name,
                    "second_row": c.start_time + " - " + c.end_time,
                    "start_time": start_off,
                    "end_time": end_off,
                    "end_off": end_off,
                    "day_of_week": d,
                    "color": "white",
                })

        context = {"selected_tab": "schedule", "courses": courses}

        return flask.render_template('schedule.html', **context)
def login_user(email, password):
    """
    Logs a user in using their credentials.

    Parameters
    ----------
        email : str
            the user's email

        password : str
            the user's password

    Returns
    -------
        (int, UserModel)
        Tuple of facade result code and user model.
    """

    data = {
        "email": email,
        "password": password,
    }

    try:
        response = requests.post(f"{app.config['API_ENDPOINT']}/user/login", data=data)
        json_response = response.json()

        # Assume not authenticated until proved otherwise
        result_code = FRC.NOT_AUTHENTICATED

        if response.status_code == 200 and json_response['studentID'] != 0:
            result_code = FRC.SUCCESS

        user = None
        if result_code == FRC.SUCCESS:
            user = UserModel.create(
                id=json_response['studentID'],
                email=json_response['email'],
                first_name=json_response['firstName'],
                last_name=json_response['lastName'],
                token=json_response['token'],
            )

        return (result_code, user)
    except:
        return (FRC.CONNECTION_ERROR, None)
    def decorated_function(*args, **kwargs):
        logged_in = True

        if session.get('admin') is None:
            logged_in = False
        else:
            admin = UserModel.create(**session.get('admin'))
            if not admin_facade.check_admin_token(admin.token):
                logged_in = False

        if not logged_in:
            session['admin'] = None

            flask.flash(f"Your session has expired. Please log in again.",
                        "danger")
            return redirect(url_for('admin_login'))
        return func(*args, **kwargs)
    def get(self):
        user = UserModel.create(**flask.session['user'])

        context = {
            "selected_tab": "programs",
            "programs": [],
        }

        (status, program_list) = program_facade.get_enrolled_programs(user.token)

        if status == FRC.NOT_AUTHENTICATED:
            return self.handle_not_authorized()

        if status != FRC.SUCCESS:
            flask.flash(f"Error loading your currently enrolled programs.", "danger")
        else:
            context['programs'] = program_list

        return flask.render_template('programs/enrolled.html', **context)
示例#11
0
    def post(self):
        user = UserModel.create(**flask.session['user'])

        course_id = flask.request.get_json().get('course_id')

        if course_id == None:
            return flask.jsonify({})

        (status, conflicts) = course_facade.enroll_in_course(user.token, course_id)

        if status == FRC.NOT_AUTHENTICATED:
            return self.handle_not_authorized()
        if status != FRC.SUCCESS:
            if conflicts: 
                flask.flash(f"The course you are trying to register for conflicts with a course you are already in.", "warning")
            else:
                flask.flash(f"There was an error registering for the course. Please try again later.", "danger")
        else:
            flask.flash(f"Successfully registered.", "success")

        return flask.jsonify({})