def on_module_enabled(courses_custom_module, module_permissions):
    global custom_module  # pylint: disable=global-statement
    custom_module = courses_custom_module

    UnitLessonEditor.on_module_enabled()

    module_permissions.extend([
        roles.Permission(constants.COURSE_OUTLINE_REORDER_PERMISSION,
                         'Can re-order units and lessons'),
    ])

    # Course admins can always edit all fields in units/assessments/links
    permissions.SchemaPermissionRegistry.add(
        constants.SCOPE_UNIT, permissions.CourseAdminSchemaPermission())
    permissions.SchemaPermissionRegistry.add(
        constants.SCOPE_ASSESSMENT, permissions.CourseAdminSchemaPermission())
    permissions.SchemaPermissionRegistry.add(
        constants.SCOPE_LINK, permissions.CourseAdminSchemaPermission())
 def notify_module_enabled(cls):
     roles.Roles.register_permissions(cls.custom_module,
                                      cls.permissions_callback)
     permissions.SchemaPermissionRegistry.add(
         cls.PERMISSION_SCOPE,
         permissions.SimpleSchemaPermission(cls.custom_module,
                                            cls.PERMISSION_NAME,
                                            readable_list=['a', 'b'],
                                            editable_list=['a']))
     permissions.SchemaPermissionRegistry.add(
         cls.PERMISSION_SCOPE, permissions.CourseAdminSchemaPermission())
Exemplo n.º 3
0
def on_module_enabled(courses_custom_module, perms):
    global custom_module  # pylint: disable=global-statement
    custom_module = courses_custom_module
    perms.append(
        roles.Permission(constants.VIEW_ALL_SETTINGS_PERMISSION,
                         'Can view all course settings'))
    permissions.SchemaPermissionRegistry.add(
        constants.SCOPE_COURSE_SETTINGS,
        permissions.CourseAdminSchemaPermission())
    permissions.SchemaPermissionRegistry.add(constants.SCOPE_COURSE_SETTINGS,
                                             ViewAllSettingsPermission())

    dashboard.DashboardHandler.add_custom_post_action(
        'course_availability', CourseSettingsHandler.post_course_availability)
    dashboard.DashboardHandler.map_post_action_to_permission_checker(
        'course_availability',
        permissions.SchemaPermissionRegistry.build_edit_checker(
            constants.SCOPE_COURSE_SETTINGS, ['course/course:now_available']))

    dashboard.DashboardHandler.add_custom_post_action(
        'course_browsability', CourseSettingsHandler.post_course_browsability)
    dashboard.DashboardHandler.map_post_action_to_permission_checker(
        'course_browsability',
        permissions.SchemaPermissionRegistry.build_edit_checker(
            constants.SCOPE_COURSE_SETTINGS, ['course/course:browsable']))

    dashboard.DashboardHandler.add_custom_get_action(
        'edit_html_hook', HtmlHookHandler.get_edit_html_hook)

    CourseSettingsHandler.register_settings_section('homepage',
                                                    placement=1000,
                                                    sub_group_name='pinned')
    CourseSettingsHandler.register_settings_section('unit',
                                                    placement=3000,
                                                    sub_group_name='pinned')
    CourseSettingsHandler.register_settings_section('registration')
    CourseSettingsHandler.register_settings_section('assessment')
    CourseSettingsHandler.register_settings_section('forums')

    dashboard.DashboardHandler.add_sub_nav_mapping(
        SETTINGS_TAB_NAME,
        'advanced',
        'Advanced course settings',
        action='settings_advanced',
        contents=_get_settings_advanced,
        sub_group_name='advanced')