Exemple #1
0
    def test_demo_exploration(self):
        exp_services.load_demo('1')
        rights_manager.release_ownership_of_exploration(
            self.system_user, '1')
        exp_rights = rights_manager.get_exploration_rights('1')

        self.assertTrue(rights_manager.check_can_access_activity(
            self.user_a, exp_rights))
        self.assertTrue(rights_manager.check_can_edit_activity(
            self.user_a, exp_rights))
        self.assertTrue(rights_manager.check_can_translate_activity(
            self.user_a, exp_rights))
        self.assertFalse(rights_manager.check_can_delete_activity(
            self.user_a, exp_rights))

        self.assertTrue(rights_manager.check_can_access_activity(
            self.user_admin, exp_rights))
        self.assertTrue(rights_manager.check_can_edit_activity(
            self.user_admin, exp_rights))
        self.assertTrue(rights_manager.check_can_translate_activity(
            self.user_admin, exp_rights))
        self.assertTrue(rights_manager.check_can_delete_activity(
            self.user_admin, exp_rights))

        self.assertTrue(rights_manager.check_can_access_activity(
            self.user_moderator, exp_rights))
        self.assertTrue(rights_manager.check_can_edit_activity(
            self.user_moderator, exp_rights))
        self.assertTrue(rights_manager.check_can_translate_activity(
            self.user_moderator, exp_rights))
        self.assertTrue(rights_manager.check_can_delete_activity(
            self.user_moderator, exp_rights))
Exemple #2
0
    def test_inviting_playtester_to_exploration(self):
        exp = exp_domain.Exploration.create_default_exploration(self.EXP_ID)
        exp_services.save_new_exploration(self.user_id_a, exp)
        exp_rights = rights_manager.get_exploration_rights(self.EXP_ID)

        self.assertFalse(rights_manager.check_can_access_activity(
            self.user_b, exp_rights))
        self.assertFalse(rights_manager.check_can_edit_activity(
            self.user_b, exp_rights))
        self.assertFalse(rights_manager.check_can_translate_activity(
            self.user_b, exp_rights))
        self.assertFalse(rights_manager.check_can_delete_activity(
            self.user_b, exp_rights))

        rights_manager.assign_role_for_exploration(
            self.user_a, self.EXP_ID, self.user_id_b,
            rights_manager.ROLE_VIEWER)
        exp_rights = rights_manager.get_exploration_rights(self.EXP_ID)

        self.assertTrue(rights_manager.check_can_access_activity(
            self.user_b, exp_rights))
        self.assertFalse(rights_manager.check_can_edit_activity(
            self.user_b, exp_rights))
        self.assertFalse(rights_manager.check_can_translate_activity(
            self.user_b, exp_rights))
        self.assertFalse(rights_manager.check_can_delete_activity(
            self.user_b, exp_rights))
Exemple #3
0
    def test_non_splash_page_demo_exploration(self):
        # Note: there is no difference between permissions for demo
        # explorations, whether or not they are on the splash page.
        exp_services.load_demo('3')
        rights_manager.release_ownership_of_exploration(
            self.system_user, '3')
        exp_rights = rights_manager.get_exploration_rights('3')

        self.assertTrue(rights_manager.check_can_access_activity(
            self.user_a, exp_rights))
        self.assertTrue(rights_manager.check_can_edit_activity(
            self.user_a, exp_rights))
        self.assertTrue(rights_manager.check_can_translate_activity(
            self.user_a, exp_rights))
        self.assertFalse(rights_manager.check_can_delete_activity(
            self.user_a, exp_rights))

        self.assertTrue(rights_manager.check_can_access_activity(
            self.user_admin, exp_rights))
        self.assertTrue(rights_manager.check_can_edit_activity(
            self.user_admin, exp_rights))
        self.assertTrue(rights_manager.check_can_translate_activity(
            self.user_admin, exp_rights))
        self.assertTrue(rights_manager.check_can_delete_activity(
            self.user_admin, exp_rights))

        self.assertTrue(rights_manager.check_can_access_activity(
            self.user_moderator, exp_rights))
        self.assertTrue(rights_manager.check_can_edit_activity(
            self.user_moderator, exp_rights))
        self.assertTrue(rights_manager.check_can_translate_activity(
            self.user_moderator, exp_rights))
        self.assertTrue(rights_manager.check_can_delete_activity(
            self.user_moderator, exp_rights))
Exemple #4
0
    def test_newly_created_exploration(self):
        exp = exp_domain.Exploration.create_default_exploration(self.EXP_ID)
        exp_services.save_new_exploration(self.user_id_a, exp)
        exp_rights = rights_manager.get_exploration_rights(self.EXP_ID)

        self.assertTrue(
            rights_manager.check_can_access_activity(self.user_a, exp_rights))
        self.assertTrue(
            rights_manager.check_can_edit_activity(self.user_a, exp_rights))
        self.assertTrue(
            rights_manager.check_can_translate_activity(
                self.user_a, exp_rights))
        self.assertTrue(
            rights_manager.check_can_delete_activity(self.user_a, exp_rights))

        self.assertTrue(
            rights_manager.check_can_access_activity(self.user_admin,
                                                     exp_rights))
        self.assertTrue(
            rights_manager.check_can_edit_activity(self.user_admin,
                                                   exp_rights))
        self.assertTrue(
            rights_manager.check_can_translate_activity(
                self.user_admin, exp_rights))
        self.assertTrue(
            rights_manager.check_can_delete_activity(self.user_admin,
                                                     exp_rights))

        self.assertTrue(
            rights_manager.check_can_access_activity(self.user_moderator,
                                                     exp_rights))
        self.assertFalse(
            rights_manager.check_can_edit_activity(self.user_moderator,
                                                   exp_rights))
        self.assertFalse(
            rights_manager.check_can_translate_activity(
                self.user_moderator, exp_rights))
        self.assertFalse(
            rights_manager.check_can_delete_activity(self.user_moderator,
                                                     exp_rights))

        self.assertFalse(
            rights_manager.check_can_access_activity(self.user_b, exp_rights))
        self.assertFalse(
            rights_manager.check_can_edit_activity(self.user_b, exp_rights))
        self.assertFalse(
            rights_manager.check_can_translate_activity(
                self.user_b, exp_rights))
        self.assertFalse(
            rights_manager.check_can_delete_activity(self.user_b, exp_rights))
    def test_can_translate(self, exploration_id, **kwargs):
        """Checks if the user can translate the exploration.

        Args:
            exploration_id: str. The exploration id.
            **kwargs: dict(str: *). Keyword arguments.

        Returns:
            Return value of decorated function.
        """
        if not self.user_id:
            raise base.UserFacingExceptions.NotLoggedInException

        exploration_rights = rights_manager.get_exploration_rights(
            exploration_id)
        if exploration_rights is None:
            raise base.UserFacingExceptions.PageNotFoundException

        if rights_manager.check_can_translate_activity(self.user,
                                                       exploration_rights):
            return handler(self, exploration_id, **kwargs)
        else:
            raise base.UserFacingExceptions.UnauthorizedUserException(
                'You do not have credentials to translate this exploration.')
Exemple #6
0
    def get(self, exploration_id):
        """Handles GET requests."""
        if exploration_id in constants.DISABLED_EXPLORATION_IDS:
            self.render_template(
                'pages/error/disabled_exploration.html',
                iframe_restriction=None)
            return

        (exploration, exploration_rights) = (
            exp_services.get_exploration_and_exploration_rights_by_id(
                exploration_id))

        visualizations_html = visualization_registry.Registry.get_full_html()

        interaction_ids = (
            interaction_registry.Registry.get_all_interaction_ids())

        interaction_dependency_ids = (
            interaction_registry.Registry.get_deduplicated_dependency_ids(
                interaction_ids))
        dependencies_html, additional_angular_modules = (
            dependency_registry.Registry.get_deps_html_and_angular_modules(
                interaction_dependency_ids + self.EDITOR_PAGE_DEPENDENCY_IDS))

        interaction_templates = (
            interaction_registry.Registry.get_interaction_html(
                interaction_ids))

        self.values.update({
            'INTERACTION_SPECS': interaction_registry.Registry.get_all_specs(),
            'DEFAULT_OBJECT_VALUES': obj_services.get_default_object_values(),
            'DEFAULT_TWITTER_SHARE_MESSAGE_EDITOR': (
                DEFAULT_TWITTER_SHARE_MESSAGE_EDITOR.value),
            'additional_angular_modules': additional_angular_modules,
            'can_delete': rights_manager.check_can_delete_activity(
                self.user, exploration_rights),
            'can_edit': rights_manager.check_can_edit_activity(
                self.user, exploration_rights),
            'can_modify_roles': (
                rights_manager.check_can_modify_activity_roles(
                    self.user, exploration_rights)),
            'can_publish': rights_manager.check_can_publish_activity(
                self.user, exploration_rights),
            'can_release_ownership': (
                rights_manager.check_can_release_ownership(
                    self.user, exploration_rights)),
            'can_translate': (
                rights_manager.check_can_translate_activity(
                    self.user, exploration_rights)),
            'can_unpublish': rights_manager.check_can_unpublish_activity(
                self.user, exploration_rights),
            'dependencies_html': jinja2.utils.Markup(dependencies_html),
            'interaction_templates': jinja2.utils.Markup(
                interaction_templates),
            'meta_description': feconf.CREATE_PAGE_DESCRIPTION,
            'nav_mode': feconf.NAV_MODE_CREATE,
            'value_generators_js': jinja2.utils.Markup(
                get_value_generators_js()),
            'title': exploration.title,
            'visualizations_html': jinja2.utils.Markup(visualizations_html),
            'ALLOWED_INTERACTION_CATEGORIES': (
                feconf.ALLOWED_INTERACTION_CATEGORIES),
            'INVALID_PARAMETER_NAMES': feconf.INVALID_PARAMETER_NAMES,
            'SHOW_TRAINABLE_UNRESOLVED_ANSWERS': (
                feconf.SHOW_TRAINABLE_UNRESOLVED_ANSWERS),
            'TAG_REGEX': feconf.TAG_REGEX,
        })

        self.render_template(
            'pages/exploration_editor/exploration_editor.html',
            redirect_url_on_logout=(
                '%s/%s' % (feconf.EDITOR_URL_PREFIX, exploration_id)))