Ejemplo n.º 1
0
def check_edxapp_enrollment_is_valid(*args, **kwargs):
    """
    backend function to check if enrollment is valid
    """
    errors = []
    is_active = kwargs.get("is_active", True)
    course_id = kwargs.get("course_id")
    force = kwargs.get('force', False)
    mode = kwargs.get("mode")
    program_uuid = kwargs.get('bundle_id')
    username = kwargs.get("username")
    email = kwargs.get("email")

    if program_uuid and course_id:
        return ['You have to provide a course_id or bundle_id but not both']
    if not program_uuid and not course_id:
        return ['You have to provide a course_id or bundle_id']
    if not email and not username:
        return ['Email or username needed']
    if not check_edxapp_account_conflicts(email=email, username=username):
        return ['User not found']
    if mode not in CourseMode.ALL_MODES:
        return ['Invalid mode given:' + mode]
    if course_id:
        if not validate_org(course_id):
            errors.append('Enrollment not allowed for given org')
    if course_id and not force:
        try:
            api.validate_course_mode(course_id, mode, is_active=is_active)
        except CourseModeNotFoundError:
            errors.append('Mode not found')
        except CourseNotFoundError:
            errors.append('Course not found')
    return errors
Ejemplo n.º 2
0
 def ensure_valid_mode(cls, mode_slug, course_id):
     """
     Ensures mode_slug is a valid mode for course_id. Will raise an error if invalid.
     """
     if mode_slug is None:
         raise ValueError("Cannot create a CourseModeTarget without specifying a mode_slug.")
     try:
         validate_course_mode(six.text_type(course_id), mode_slug, include_expired=True)
     except CourseModeNotFoundError:
         raise ValueError(  # lint-amnesty, pylint: disable=raise-missing-from
             u"Track {track} does not exist in course {course_id}".format(
                 track=mode_slug,
                 course_id=course_id
             ).encode('utf8')
         )
Ejemplo n.º 3
0
 def ensure_valid_mode(cls, mode_slug, course_id):
     """
     Ensures mode_slug is a valid mode for course_id. Will raise an error if invalid.
     """
     if mode_slug is None:
         raise ValueError("Cannot create a CourseModeTarget without specifying a mode_slug.")
     try:
         validate_course_mode(unicode(course_id), mode_slug, include_expired=True)
     except CourseModeNotFoundError:
         raise ValueError(
             u"Track {track} does not exist in course {course_id}".format(
                 track=mode_slug,
                 course_id=course_id
             ).encode('utf8')
         )