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()
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()
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)
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)