示例#1
0
文件: Ajax.py 项目: kl0ss/whiteboard
    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']})
示例#2
0
文件: Ajax.py 项目: kl0ss/whiteboard
    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]})
示例#3
0
文件: Ajax.py 项目: kl0ss/whiteboard
    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'})
示例#4
0
文件: Ajax.py 项目: kl0ss/whiteboard
    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]})