Ejemplo n.º 1
0
def get_user_and_add():
    """Returns the result of uqauth.get_user(), and also permanently records
       the user's information (name, email) for administration purposes."""
    info = uqauth.get_user_info()
    userid, name, email = map(str, [info['user'], info.get('name', 'NO_NAME'),
                                    info.get('email', 'NO_EMAIL')])
    support.add_user(support.User(userid, name, email, support.NOT_ENROLLED))
    return str(info['user'])
Ejemplo n.º 2
0
def get_user_and_add():
    """Returns the result of uqauth.get_user(), and also permanently records
       the user's information (name, email) for administration purposes."""
    info = uqauth.get_user_info()
    userid, name, email = map(str, [
        info['user'],
        info.get('name', 'NO_NAME'),
        info.get('email', 'NO_EMAIL')
    ])
    support.add_user(support.User(userid, name, email, support.NOT_ENROLLED))
    return str(info['user'])
Ejemplo n.º 3
0
def userinfo():
    user = uqauth.get_user_info()
    result = {key: str(user[key]) for key in ('user', 'name')}
    return json.dumps(result)
Ejemplo n.º 4
0
def main():
    try:
        user = uqauth.get_user()
    except uqauth.Redirected:
        return

    # two sets of possibilities
    # (1) the help list (need to be a tutor)
    #       (a) viewing the list
    #       (b) submitting the form (eg, deleting an entry)
    # (2) asking for help (as a student)
    #       (a) for the first time (no message query param)
    #       (b) submitting the form
    form = cgi.FieldStorage(keep_blank_values=True)

    view_list = user in TUTORS and 'noadmin' not in form
    if view_list and user not in TUTORS:
        print UNAUTHORISED.format(user)
        return

    print "Content-Type: text/html\n"

    data = {}

    if view_list:
        template = Template(filename="./templates/help_list.html")

        # make our changes if the form was submitted
        if os.environ.get('REQUEST_METHOD') == 'POST' and 'mark_as' in form:
            user = form.getvalue('username')
            status = form.getvalue('mark_as')

            support.set_help_request_status(user, status)

        help_list = sorted(support.get_help_list(),
                           key=lambda hi: hi.timestamp)

        data['date_offset'] = TZ_DELTA  # hacky workaround
        data['help_list'] = help_list
        data['open_index'] = -1
    else:
        template = Template(filename='./templates/help_request.html')

        data['user'] = user

        message = form.getvalue('message')
        traceback = form.getvalue('traceback')

        if os.environ.get('REQUEST_METHOD') == 'POST' \
                and 'message' is not None:
            info = uqauth.get_user_info()
            name = info.get('name', '')

            support.log_help_request(user, name, message, traceback)

            data['alert_message'] = ('alert-success',
                                     'Your help request has been logged')

        pending_request = support.get_pending_help_request(user)
        data['has_pending'] = pending_request is not None
        data['is_ignored'] = False
        data['queue_position'] = None

        if pending_request is not None:
            message = pending_request.message
            traceback = pending_request.traceback

            data['is_ignored'] = \
                pending_request.status == support.HELP_STATUS_IGNORED
            data['queue_position'] = support.get_position_in_help_queue(user)

        data['message'] = message
        data['traceback'] = traceback

    try:
        print(template.render(**data))
    except:
        print(exceptions.html_error_template().render())
Ejemplo n.º 5
0
def userinfo():
    user = uqauth.get_user_info()
    result = {key: str(user[key]) for key in ('user', 'name')}
    return json.dumps(result)
Ejemplo n.º 6
0
def main():
    try:
        user = uqauth.get_user()
    except uqauth.Redirected:
        return

    # two sets of possibilities
    # (1) the help list (need to be a tutor)
    #       (a) viewing the list
    #       (b) submitting the form (eg, deleting an entry)
    # (2) asking for help (as a student)
    #       (a) for the first time (no message query param)
    #       (b) submitting the form
    form = cgi.FieldStorage(keep_blank_values=True)

    view_list = user in TUTORS and 'noadmin' not in form
    if view_list and user not in TUTORS:
        print UNAUTHORISED.format(user)
        return

    print "Content-Type: text/html\n"

    data = {}

    if view_list:
        template = Template(filename="./templates/help_list.html")

        # make our changes if the form was submitted
        if os.environ.get('REQUEST_METHOD') == 'POST' and 'mark_as' in form:
            user = form.getvalue('username')
            status = form.getvalue('mark_as')

            support.set_help_request_status(user, status)

        help_list = sorted(
            support.get_help_list(), key=lambda hi: hi.timestamp
        )

        data['date_offset'] = TZ_DELTA  # hacky workaround
        data['help_list'] = help_list
        data['open_index'] = -1
    else:
        template = Template(filename='./templates/help_request.html')

        data['user'] = user

        message = form.getvalue('message')
        traceback = form.getvalue('traceback')

        if os.environ.get('REQUEST_METHOD') == 'POST' \
                and 'message' is not None:
            info = uqauth.get_user_info()
            name = info.get('name', '')

            support.log_help_request(user, name, message, traceback)

            data['alert_message'] = (
                'alert-success', 'Your help request has been logged'
            )

        pending_request = support.get_pending_help_request(user)
        data['has_pending'] = pending_request is not None
        data['is_ignored'] = False
        data['queue_position'] = None

        if pending_request is not None:
            message = pending_request.message
            traceback = pending_request.traceback

            data['is_ignored'] = \
                pending_request.status == support.HELP_STATUS_IGNORED
            data['queue_position'] = support.get_position_in_help_queue(user)

        data['message'] = message
        data['traceback'] = traceback

    try:
        print(template.render(**data))
    except:
        print(exceptions.html_error_template().render())