Example #1
0
def _visible_to_nonstaff_users(descriptor):
    """
    Returns if the object is visible to nonstaff users.

    Arguments:
        descriptor: object to check
    """
    return VisibilityError(
    ) if descriptor.visible_to_staff_only else ACCESS_GRANTED
Example #2
0
def _visible_to_nonstaff_users(descriptor, display_error_to_user=True):
    """
    Returns if the object is visible to nonstaff users.

    Arguments:
        descriptor: object to check
        display_error_to_user: If True, show an error message to the user say the content was hidden. Otherwise,
            hide the content silently.
    """
    if descriptor.visible_to_staff_only:
        return VisibilityError(display_error_to_user=display_error_to_user)
    else:
        return ACCESS_GRANTED
Example #3
0
    def test_courseware_access(self):
        seed_milestone_relationship_types()
        self.login()

        course_with_prereq = CourseFactory.create(start=self.LAST_WEEK,
                                                  mobile_available=True)
        prerequisite_course = CourseFactory.create()
        set_prerequisite_courses(course_with_prereq.id,
                                 [unicode(prerequisite_course.id)])

        # Create list of courses with various expected courseware_access responses and corresponding expected codes
        courses = [
            course_with_prereq,
            CourseFactory.create(start=self.NEXT_WEEK, mobile_available=True),
            CourseFactory.create(visible_to_staff_only=True,
                                 mobile_available=True),
            CourseFactory.create(start=self.LAST_WEEK,
                                 mobile_available=True,
                                 visible_to_staff_only=False),
        ]

        expected_error_codes = [
            MilestoneError().error_code,  # 'unfulfilled_milestones'
            StartDateError(self.NEXT_WEEK).error_code,  # 'course_not_started'
            VisibilityError().error_code,  # 'not_visible_to_user'
            None,
        ]

        # Enroll in all the courses
        for course in courses:
            self.enroll(course.id)

        # Verify courses have the correct response through error code. Last enrolled course is first course in response
        response = self.api_response()
        for course_index in range(len(courses)):
            result = response.data[course_index]['course']['courseware_access']
            self.assertEqual(result['error_code'],
                             expected_error_codes[::-1][course_index])

            if result['error_code'] is not None:
                self.assertFalse(result['has_access'])
Example #4
0
 def test_visible_to_staff_only_course(self, role, should_succeed):
     self.init_course_access()
     self.course.visible_to_staff_only = True
     self.store.update_item(self.course, self.user.id)
     self._verify_response(should_succeed, VisibilityError(), role)