def bulkRoleAdd_POST(self, courseid, users, roles = []): users = [x.strip() for x in users.strip().split('\n')] # I'm just going to pretend that I never wrote this if(type(roles) != list): roles = roles.split(' ') for user in users: for role in roles: RoleHelper.grant_user_role(user, courseid, role) raise cherrypy.HTTPRedirect(url('/course/%s/' % courseid))
def siteRoleSubmit(self, ajaxData): """Update user's roles""" # TODO: This too if not RoleHelper.current_user_has_role(0, 'siteroleadmin'): ctx = {'error': 'You are not permitted to edit site roles.'} return whiteboard.template.render('error.html', context_dict = ctx) cherrypy.response.headers['Content-Type'] = 'text/json' form = json.loads(ajaxData) for role in form['roles']: RoleHelper.grant_user_role(form['username'], 0, role) for role in set(RoleHelper.site_role_names).difference(form['roles']): RoleHelper.revoke_user_role(form['username'], 0, role) return json.dumps({'status': "success", 'result': 'Roles updated successfully'})
def courseAddAnnouncement(self, ajaxData): """Add an announcement to a course""" form = json.loads(ajaxData) if not RoleHelper.current_user_has_role(form['courseid'], 'instructor,ta'): ctx = {'error': 'Only instructors and TAs are allowed to use this feature'} return whiteboard.template.render('error.html', context_dict = ctx) AnnouncementHelper.add_announcement(form['courseid'], cherrypy.session['username'], form['content']) cherrypy.response.headers['Content-Type'] = 'text/json' return json.dumps({'status': 'success', 'redirect_url': '/whiteboard/course/%s/' % form['courseid']})
def siteRoleValidate(self, ajaxData): """Validate a username for role editing""" # TODO: Make this actually render in AJAX calls if not RoleHelper.current_user_has_role(0, 'siteroleadmin'): ctx = {'error': 'You are not permitted to edit site roles.'} return whiteboard.template.render('error.html', context_dict = ctx) cherrypy.response.headers['Content-Type'] = 'text/json' form = json.loads(ajaxData) sql = whiteboard.sqltool.SqlTool() sql.query_text = "SELECT rolename FROM Roles WHERE courseid = 0 AND caseid = @caseid" sql.addParameter("@caseid", form['username']) with sql.execute() as datareader: return json.dumps({'status': 'success', 'roles': [role['rolename'] for role in datareader]})
def courseRoleValidate(self, ajaxData): """Validate a username for course role editing""" form = json.loads(ajaxData) if not RoleHelper.current_user_has_role(form['courseid'], 'instructor'): ctx = {'error': 'You are not permitted to edit course roles.'} return whiteboard.template.render('error.html', context_dict = ctx) cherrypy.response.headers['Content-Type'] = 'text/json' sql = whiteboard.sqltool.SqlTool() sql.query_text = "SELECT rolename FROM Roles WHERE courseid = @courseid AND caseid = @caseid" sql.addParameter("@courseid", form["courseid"]) sql.addParameter("@caseid", form["username"]) with sql.execute() as datareader: return json.dumps({'status': 'success', 'roles': [row['rolename'] for row in datareader]})
def createCourse_POST(self, coursetitle, coursecode, courseterm, courseinstructor): new_course_id = CourseHelper.create_course(coursetitle, coursecode, courseterm) RoleHelper.grant_user_role(courseinstructor, new_course_id, 'instructor') raise cherrypy.HTTPRedirect(url('/course/%i/' % new_course_id))