Пример #1
0
    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))
Пример #2
0
    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'})
Пример #3
0
    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']})
Пример #4
0
    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]})
Пример #5
0
    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]})
Пример #6
0
    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))