def cadmin_assign_coord(course_id): """ Set someone as course coordinator """ cur_user = session['user_id'] course = Courses2.get_course(course_id) if not course: abort(404) if "coord" not in request.form: abort(400) new_uname = sanitize_username(request.form['coord']) try: new_uid = Users2.uid_by_uname(new_uname) except KeyError: flash("User '%s' Not Found" % new_uname) else: if not new_uid: flash("User '%s' Not Found" % new_uname) else: L.info( "courseadmin: user %s assigned as coordinator to course %s by %s" % (new_uid, course_id, cur_user)) Permissions.add_perm(new_uid, course_id, 3) # courseadmin Permissions.add_perm(new_uid, course_id, 4) # coursecoord flash("%s can now control the course." % (new_uname, )) return redirect(url_for('cadmin_config', course_id=course_id))
def cadmin_assign_coord(course_id): """ Set someone as course coordinator """ course = Courses2.get_course(course_id) if not course: abort(404) if not "coord" in request.form: abort(400) new_uname = request.form["coord"] # TODO: Sanitize username try: new_uid = Users2.uid_by_uname(new_uname) except KeyError: flash("User '%s' Not Found" % new_uname) else: if not new_uid: flash("User '%s' Not Found" % new_uname) else: Permissions.add_perm(new_uid, course_id, 3) # courseadmin Permissions.add_perm(new_uid, course_id, 4) # coursecoord flash("%s can now control the course." % (new_uname,)) return redirect(url_for("cadmin_config", course_id=course_id))
def cadmin_assign_coord(course_id): """ Set someone as course coordinator """ cur_user = session['user_id'] course = Courses2.get_course(course_id) if not course: abort(404) if "coord" not in request.form: abort(400) new_uname = sanitize_username(request.form['coord']) try: new_uid = Users2.uid_by_uname(new_uname) except KeyError: flash("User '%s' Not Found" % new_uname) else: if not new_uid: flash("User '%s' Not Found" % new_uname) else: L.info("courseadmin: user %s assigned as coordinator to course %s by %s" % (new_uid, course_id, cur_user)) Permissions.add_perm(new_uid, course_id, 3) # courseadmin Permissions.add_perm(new_uid, course_id, 4) # coursecoord flash("%s can now control the course." % (new_uname,)) return redirect(url_for('cadmin_config', course_id=course_id))
def cadmin_remove_coord(course_id, coordname): """ Remove someone as course coordinator """ course = Courses2.get_course(course_id) if not course: abort(404) try: new_uid = Users2.uid_by_uname(coordname) except KeyError: flash("User '%s' Not Found" % coordname) else: if not new_uid: flash("User '%s' Not Found" % coordname) else: Permissions.delete_perm(new_uid, course_id, 3) # courseadmin Permissions.delete_perm(new_uid, course_id, 4) # coursecoord flash("%s can no longer control the course." % (coordname, )) return redirect(url_for('cadmin_config', course_id=course_id))
def cadmin_remove_coord(course_id, coordname): """ Remove someone as course coordinator """ course = Courses2.get_course(course_id) if not course: abort(404) try: new_uid = Users2.uid_by_uname(coordname) except KeyError: flash("User '%s' Not Found" % coordname) else: if not new_uid: flash("User '%s' Not Found" % coordname) else: Permissions.delete_perm(new_uid, course_id, 3) # courseadmin Permissions.delete_perm(new_uid, course_id, 4) # coursecoord flash("%s can no longer control the course." % (coordname,)) return redirect(url_for('cadmin_config', course_id=course_id))
def cadmin_permissions(course_id): """ Present a page for them to assign permissions to the course""" course = Courses2.get_course(course_id) permlist = Permissions.get_course_perms(course_id) perms = {} for uid, pid in permlist: # (uid, permission) if not uid in perms: user = Users2.get_user(uid) perms[uid] = {"uname": user["uname"], "fullname": user["fullname"], "pids": []} perms[uid]["pids"].append(pid) return render_template( "courseadmin_permissions.html", perms=perms, course=course, pids=[5, 10, 14, 11, 8, 9, 15, 2] )
def cadmin_permissions(course_id): """ Present a page for them to assign permissions to the course""" course = Courses2.get_course(course_id) permlist = Permissions.get_course_perms(course_id) perms = {} for uid, pid in permlist: # (uid, permission) if uid not in perms: user = Users2.get_user(uid) perms[uid] = { 'uname': user['uname'], 'fullname': user['fullname'], 'pids': [] } perms[uid]['pids'].append(pid) return render_template("courseadmin_permissions.html", perms=perms, course=course, pids=[5, 10, 14, 11, 8, 9, 15, 2])
def cadmin_config(course_id): """ Allow some course configuration """ course = Courses2.get_course(course_id) if not course: abort(404) user_id = session["user_id"] is_sysadmin = check_perm(user_id, -1, "sysadmin") coords = [ Users2.get_user(perm[0]) for perm in Permissions.get_course_perms(course_id) if perm[1] == 3 ] # course_coord groups = Courses.get_groups(course_id) choosegroups = [group for group in Groups.all_groups() if not group.id in groups] return render_template( "courseadmin_config.html", course=course, coords=coords, choosegroups=choosegroups, groups=groups, is_sysadmin=is_sysadmin, )
def cadmin_config(course_id): """ Allow some course configuration """ course = Courses2.get_course(course_id) if not course: abort(404) user_id = session['user_id'] is_sysadmin = check_perm(user_id, -1, 'sysadmin') coords = [ Users2.get_user(perm[0]) for perm in Permissions.get_course_perms(course_id) if perm[1] == 3 ] # course_coord groups = Courses.get_groups(course_id) choosegroups = [ group for group in Groups.all_groups() if group.id not in groups ] return render_template("courseadmin_config.html", course=course, coords=coords, choosegroups=choosegroups, groups=groups, is_sysadmin=is_sysadmin)