예제 #1
0
def admin_rlms_rlms_lab_edit_permissions(rlmstype, rlmsversion, id, lab_id):
    template_variables = {}

    lab, rlms = get_lab_and_lms(rlmstype, rlmsversion, id, lab_id)
    if lab is None or rlms is None:
        return render_template("labmanager_admin/rlms_errors.html")

    if request.method == 'POST':
        if request.form.get('action','').startswith('revoke-'):
            lms_login = request.form['action'][len('revoke-'):]
            lms = db_session.query(LMS).filter_by(lms_login = lms_login).first()
            if lms is None:
                return render_template("labmanager_admin/rlms_errors.html")
           
            permission = db_session.query(PermissionOnLaboratory).filter_by(laboratory_id = lab_id, lms_id = lms.id).first()
            if permission is not None:
                db_session.delete(permission)
                db_session.commit()

    granted_lms_ids = [ perm.lms_id for perm in lab.permissions ]

    lmss = db_session.query(LMS).all()

    template_variables['granted_lms_ids'] = granted_lms_ids
    template_variables['type_name']       = rlmstype
    template_variables['version']         = rlmsversion
    template_variables['rlms_name']       = rlms.name
    template_variables['rlms_id']         = id
    template_variables['lab_name']        = lab.name
    template_variables['lab_id']          = lab_id
    template_variables['lmss']            = lmss

    return render_template("labmanager_admin/rlms_rlms_lab_edit_permissions.html", **template_variables)
예제 #2
0
def lms_admin_courses_permissions(course_id):
    db_lms = db_session.query(LMS).filter_by(lms_login = session['lms']).first()
    course = db_session.query(Course).filter_by(id = course_id, lms = db_lms).first()

    if course is None:
        return render_template("lms_admin/course_errors.html")

    granted_permission_ids = [ permission.permission_on_lab_id for permission in course.permissions ]

    if request.method == 'POST':
        if request.form.get('action','').startswith('revoke-'):
            try:
                permission_on_lab_id = int(request.form['action'][len('revoke-'):])
            except:
                flash("Error parsing permission on lab identifier")
                return render_template("lms_admin/course_errors.html")

            permission_on_course = db_session.query(PermissionOnCourse).filter_by(course = course, permission_on_lab_id = permission_on_lab_id).first()
            if permission_on_course is not None:
                db_session.delete(permission_on_course)
                db_session.commit()
                
            return redirect(url_for('lms_admin_courses_permissions', course_id = course_id))

    return render_template("lms_admin/courses_permissions.html", permissions = db_lms.permissions, course = course, granted_permission_ids = granted_permission_ids)
예제 #3
0
        def decorated(*args, **kwargs):
            if request.method == "POST" and request.form.get("action", "") == "delete":
                for current_id in request.form:
                    element = db_session.query(table).filter_by(id=current_id).first()
                    if element is not None:
                        db_session.delete(element)
                db_session.commit()

            return f(*args, **kwargs)
예제 #4
0
        def decorated(*args, **kwargs):
            if request.method == 'POST' and request.form.get('action',
                                                             '') == 'delete':
                for current_id in request.form:
                    element = db_session.query(table).filter_by(
                        id=current_id).first()
                    if element is not None:
                        db_session.delete(element)
                db_session.commit()

            return f(*args, **kwargs)
예제 #5
0
def admin_rlms_rlms_lab_edit_permissions(rlmstype, rlmsversion, id, lab_id):
    template_variables = {}

    lab, rlms = get_lab_and_lms(rlmstype, rlmsversion, id, lab_id)
    if lab is None or rlms is None:
        return render_template("labmanager_admin/rlms_errors.html")

    if request.method == 'POST':
        if request.form.get('action', '').startswith('revoke-'):
            lms_login = request.form['action'][len('revoke-'):]
            lms = db_session.query(LMS).filter_by(lms_login=lms_login).first()
            if lms is None:
                return render_template("labmanager_admin/rlms_errors.html")

            permission = db_session.query(PermissionOnLaboratory).filter_by(
                laboratory_id=lab_id, lms_id=lms.id).first()
            if permission is not None:
                db_session.delete(permission)
                db_session.commit()

    granted_lms_ids = [perm.lms_id for perm in lab.permissions]

    lmss = db_session.query(LMS).all()

    template_variables['granted_lms_ids'] = granted_lms_ids
    template_variables['type_name'] = rlmstype
    template_variables['version'] = rlmsversion
    template_variables['rlms_name'] = rlms.name
    template_variables['rlms_id'] = id
    template_variables['lab_name'] = lab.name
    template_variables['lab_id'] = lab_id
    template_variables['lmss'] = lmss

    return render_template(
        "labmanager_admin/rlms_rlms_lab_edit_permissions.html",
        **template_variables)
예제 #6
0
def lms_admin_courses_permissions(course_id):
    db_lms = db_session.query(LMS).filter_by(lms_login=session['lms']).first()
    course = db_session.query(Course).filter_by(id=course_id,
                                                lms=db_lms).first()

    if course is None:
        return render_template("lms_admin/course_errors.html")

    granted_permission_ids = [
        permission.permission_on_lab_id for permission in course.permissions
    ]

    if request.method == 'POST':
        if request.form.get('action', '').startswith('revoke-'):
            try:
                permission_on_lab_id = int(
                    request.form['action'][len('revoke-'):])
            except:
                flash("Error parsing permission on lab identifier")
                return render_template("lms_admin/course_errors.html")

            permission_on_course = db_session.query(
                PermissionOnCourse).filter_by(
                    course=course,
                    permission_on_lab_id=permission_on_lab_id).first()
            if permission_on_course is not None:
                db_session.delete(permission_on_course)
                db_session.commit()

            return redirect(
                url_for('lms_admin_courses_permissions', course_id=course_id))

    return render_template("lms_admin/courses_permissions.html",
                           permissions=db_lms.permissions,
                           course=course,
                           granted_permission_ids=granted_permission_ids)