Exemplo n.º 1
0
    def test_add_unrequested(self):
        add_user_with_status_unrequested(self.user)
        self.assertEqual('unrequested', get_course_creator_status(self.user))

        # Calling add again will be a no-op (even if state is different).
        add_user_with_status_granted(self.admin, self.user)
        self.assertEqual('unrequested', get_course_creator_status(self.user))
Exemplo n.º 2
0
 def test_user_requested_already_granted(self):
     add_user_with_status_granted(self.admin, self.user)
     self.assertEqual('granted', get_course_creator_status(self.user))
     # Will not "downgrade" to pending because that would require removing the
     # user from the authz course creator group (and that can only be done by an admin).
     user_requested_access(self.user)
     self.assertEqual('granted', get_course_creator_status(self.user))
Exemplo n.º 3
0
    def test_user_requested_access(self):
        add_user_with_status_unrequested(self.user)
        self.assertEqual('unrequested', get_course_creator_status(self.user))

        self.client.login(username=self.user.username, password='******')

        # The user_requested_access function renders a template that requires
        # request-specific information. Use the django TestClient to supply
        # the appropriate request context.
        self.client.post(reverse('request_course_creator'))
        self.assertEqual('pending', get_course_creator_status(self.user))
Exemplo n.º 4
0
    def test_add_granted(self):
        with mock.patch.dict('django.conf.settings.FEATURES', {"ENABLE_CREATOR_GROUP": True}):
            # Calling add_user_with_status_granted impacts is_user_in_course_group_role.
            self.assertFalse(auth.user_has_role(self.user, CourseCreatorRole()))

            add_user_with_status_granted(self.admin, self.user)
            self.assertEqual('granted', get_course_creator_status(self.user))

            # Calling add again will be a no-op (even if state is different).
            add_user_with_status_unrequested(self.user)
            self.assertEqual('granted', get_course_creator_status(self.user))

            self.assertTrue(auth.user_has_role(self.user, CourseCreatorRole()))
Exemplo n.º 5
0
def user_can_create_library(user, org=None):
    """
    Helper method for returning the library creation status for a particular user,
    taking into account the value LIBRARIES_ENABLED.
    """

    if not LIBRARIES_ENABLED:
        return False
    elif user.is_staff:
        return True
    elif settings.FEATURES.get('ENABLE_CREATOR_GROUP', False):
        has_course_creator_role = True
        if org:
            has_course_creator_role = is_content_creator(user, org)
        return get_course_creator_status(
            user) == 'granted' and has_course_creator_role
    else:
        # EDUCATOR-1924: DISABLE_LIBRARY_CREATION overrides DISABLE_COURSE_CREATION, if present.
        disable_library_creation = settings.FEATURES.get(
            'DISABLE_LIBRARY_CREATION', None)
        disable_course_creation = settings.FEATURES.get(
            'DISABLE_COURSE_CREATION', False)
        if disable_library_creation is not None:
            return not disable_library_creation
        else:
            return not disable_course_creation
Exemplo n.º 6
0
 def test_table_initially_empty(self):
     self.assertIsNone(get_course_creator_status(self.user))
Exemplo n.º 7
0
 def test_add_user_granted_staff(self):
     # Users marked as is_staff will not be added to the course creator table.
     add_user_with_status_granted(self.admin, self.admin)
     self.assertIsNone(get_course_creator_status(self.admin))