Пример #1
0
    def setUp(self):
        super(DashboardAccessTestCase, self).setUp()
        actions.login(self.ADMIN_EMAIL, is_admin=True)

        context = actions.simple_add_course(
            self.ACCESS_COURSE_NAME, self.ADMIN_EMAIL, 'Course with access')

        self.course_with_access = courses.Course(None, context)

        with Namespace(self.course_with_access.app_context.namespace):
            role_dto = models.RoleDTO(None, {
                'name': self.ROLE,
                'users': [self.USER_EMAIL],
                'permissions': {dashboard.custom_module.name: [self.PERMISSION]}
            })
            models.RoleDAO.save(role_dto)

        context = actions.simple_add_course(
            self.NO_ACCESS_COURSE_NAME, self.ADMIN_EMAIL,
            'Course with no access'
        )

        self.course_without_access = courses.Course(None, context)

        # pylint: disable=W0212
        self.old_nav_mappings = DashboardHandler._nav_mappings
        # pylint: disable=W0212
        DashboardHandler._nav_mappings = {self.ACTION: 'outline'}
        DashboardHandler.map_action_to_permission(
            'get_%s' % self.ACTION, self.PERMISSION)
        actions.logout()
Пример #2
0
 def _create_role(self):
     role_dto = models.RoleDTO(
         None, {
             'name': ROLE,
             'users': [STUDENT_EMAIL],
             'permissions': {
                 PERMISSION_MODULE.name: [PERMISSION]
             }
         })
     models.RoleDAO.save(role_dto)
    def setUp(self):
        super(DashboardAccessTestCase, self).setUp()
        actions.login(self.ADMIN_EMAIL, is_admin=True)

        context = actions.simple_add_course(self.ACCESS_COURSE_NAME,
                                            self.ADMIN_EMAIL,
                                            'Course with access')

        self.course_with_access = courses.Course(None, context)

        with utils.Namespace(self.course_with_access.app_context.namespace):
            role_dto = models.RoleDTO(
                None, {
                    'name': self.ROLE,
                    'users': [self.USER_EMAIL],
                    'permissions': {
                        dashboard.custom_module.name: [self.PERMISSION]
                    }
                })
            models.RoleDAO.save(role_dto)

        context = actions.simple_add_course(self.NO_ACCESS_COURSE_NAME,
                                            self.ADMIN_EMAIL,
                                            'Course with no access')

        self.course_without_access = courses.Course(None, context)

        def test_content(self):
            return self.render_page({
                'main_content': 'test',
                'page_title': 'test'
            })

        # save properties
        self.old_menu_group = dashboard.DashboardHandler.root_menu_group
        # pylint: disable=W0212
        self.old_get_acitons = dashboard.DashboardHandler._custom_get_actions
        # pylint: enable=W0212

        # put a dummy method in
        menu_group = menus.MenuGroup('test', 'Test Dashboard')
        dashboard.DashboardHandler.root_menu_group = menu_group
        dashboard.DashboardHandler.default_action = self.ACTION
        dashboard.DashboardHandler.add_nav_mapping(self.ACTION, self.ACTION)
        dashboard.DashboardHandler.add_sub_nav_mapping(self.ACTION,
                                                       self.ACTION,
                                                       self.ACTION,
                                                       action=self.ACTION,
                                                       contents=test_content)
        dashboard.DashboardHandler.map_get_action_to_permission(
            self.ACTION, dashboard.custom_module, self.PERMISSION)
        actions.logout()
Пример #4
0
def maybe_create_teaching_assistant_role():
    # TODO(mgainer): Hook this up to code that creates a run.  Must be called
    # from a context that has the course namespace already set.

    for role in models.RoleDAO.get_all():
        if (role.name == constants.TEACHING_ASSISTANT_ROLE_NAME
                and role.permissions.get(custom_module.name, [])
                == constants.TEACHING_ASSISTANT_ROLE_PERMISSIONS):
            return

    role_dto = models.RoleDTO(
        None, {
            'name': constants.TEACHING_ASSISTANT_ROLE_NAME,
            'permissions': {
                custom_module.name:
                constants.TEACHING_ASSISTANT_ROLE_PERMISSIONS
            },
            'description':
            'Ability to modify assessment due dates and scoring.',
            'users': []
        })
    roles.RoleDAO.save(role_dto)
    def setUp(self):
        super(PermissionsTests, self).setUp()
        self.app_context = actions.simple_add_course(self.COURSE_NAME,
                                                     self.ADMIN_EMAIL,
                                                     'Permissions Tests')
        self.schema = schema_fields.FieldRegistry('title')
        self.schema.add_property(schema_fields.SchemaField('a', 'A', 'string'))
        self.schema.add_property(schema_fields.SchemaField('b', 'B', 'string'))
        self.schema.add_property(schema_fields.SchemaField('c', 'C', 'string'))
        self.entity = {'a': 1, 'b': 2, 'c': 3}

        with common_utils.Namespace(self.NAMESPACE):
            role_dto = models.RoleDTO(
                the_id=None,
                the_dict={
                    'name': self.ROLE_NAME,
                    'permissions': {
                        self.MODULE_NAME: [self.PERMISSION_NAME]
                    },
                    'description': 'Role allowing limited schema access.',
                    'users': [self.IN_ROLE_EMAIL]
                })
            roles.RoleDAO.save(role_dto)
Пример #6
0
    def setUp(self):
        super(AccessDraftsTestCase, self).setUp()
        actions.login(self.ADMIN_EMAIL, is_admin=True)
        self.base = '/' + self.COURSE_NAME
        self.context = actions.simple_add_course(self.COURSE_NAME,
                                                 self.ADMIN_EMAIL,
                                                 'Access Draft Testing')

        self.course = courses.Course(None, self.context)

        self.old_namespace = namespace_manager.get_namespace()
        namespace_manager.set_namespace('ns_%s' % self.COURSE_NAME)

        role_dto = models.RoleDTO(
            None, {
                'name': self.ROLE,
                'users': [self.USER_EMAIL],
                'permissions': {
                    courses_module.custom_module.name:
                    [courses_module.SEE_DRAFTS_PERMISSION]
                }
            })
        models.RoleDAO.save(role_dto)
        actions.logout()
 def _create_role(self, role):
     role_dto = models.RoleDTO(None, {
         'name': role,
     })
     return models.RoleDAO.save(role_dto)