コード例 #1
0
ファイル: admin.py プロジェクト: 10clouds/edx-platform
def update_creator_group_callback(sender, **kwargs):
    """
    Callback for when the model's creator status has changed.
    """
    user = kwargs['user']
    updated_state = kwargs['state']
    update_course_creator_group(kwargs['caller'], user, updated_state == CourseCreator.GRANTED)
コード例 #2
0
ファイル: admin.py プロジェクト: nageshgoyal/edx-platform
def update_creator_group_callback(sender, **kwargs):
    """
    Callback for when the model's creator status has changed.
    """
    user = kwargs['user']
    updated_state = kwargs['state']
    update_course_creator_group(kwargs['caller'], user, updated_state == CourseCreator.GRANTED)

    studio_request_email = settings.MITX_FEATURES.get('STUDIO_REQUEST_EMAIL','')
    context = {'studio_request_email': studio_request_email}

    subject = render_to_string('emails/course_creator_subject.txt', context)
    subject = ''.join(subject.splitlines())
    if updated_state == CourseCreator.GRANTED:
        message_template = 'emails/course_creator_granted.txt'
    elif updated_state == CourseCreator.DENIED:
        message_template = 'emails/course_creator_denied.txt'
    else:
        # changed to unrequested or pending
        message_template = 'emails/course_creator_revoked.txt'
    message = render_to_string(message_template, context)

    try:
        user.email_user(subject, message, studio_request_email)
    except:
        log.warning("Unable to send course creator status e-mail to %s", user.email)
コード例 #3
0
 def test_update_creator_group(self):
     with mock.patch.dict('django.conf.settings.FEATURES', {"ENABLE_CREATOR_GROUP": True}):
         self.assertFalse(auth.has_access(self.user, CourseCreatorRole()))
         update_course_creator_group(self.admin, self.user, True)
         self.assertTrue(auth.has_access(self.user, CourseCreatorRole()))
         update_course_creator_group(self.admin, self.user, False)
         self.assertFalse(auth.has_access(self.user, CourseCreatorRole()))
コード例 #4
0
ファイル: test_views.py プロジェクト: 6thfdwp/edx-platform
 def test_update_creator_group(self):
     with mock.patch.dict('django.conf.settings.FEATURES', {"ENABLE_CREATOR_GROUP": True}):
         self.assertFalse(is_user_in_creator_group(self.user))
         update_course_creator_group(self.admin, self.user, True)
         self.assertTrue(is_user_in_creator_group(self.user))
         update_course_creator_group(self.admin, self.user, False)
         self.assertFalse(is_user_in_creator_group(self.user))
コード例 #5
0
ファイル: admin.py プロジェクト: xiandiancloud/edx-platform
def update_creator_group_callback(sender, **kwargs):
    """
    Callback for when the model's creator status has changed.
    """
    user = kwargs['user']
    updated_state = kwargs['state']
    update_course_creator_group(kwargs['caller'], user, updated_state == CourseCreator.GRANTED)
コード例 #6
0
def update_course_creator_status(request_user, user, set_creator):
    """
    Updates course creator status of a user.
    """
    from course_creators.models import CourseCreator
    from course_creators.views import update_course_creator_group

    course_creator, __ = CourseCreator.objects.get_or_create(user=user)
    course_creator.state = CourseCreator.GRANTED if set_creator else CourseCreator.UNREQUESTED
    course_creator.note = 'Course creator user was updated by panel admin {}'.format(
        request_user.email)
    course_creator.admin = request_user
    course_creator.save()
    if not set_creator:
        update_course_creator_group(request_user, user, set_creator)
        instructor_courses = UserBasedRole(
            user, CourseInstructorRole.ROLE).courses_with_role()
        staff_courses = UserBasedRole(
            user, CourseStaffRole.ROLE).courses_with_role()
        instructor_courses_keys = [
            course.course_id for course in instructor_courses
        ]
        staff_courses_keys = [course.course_id for course in staff_courses]
        UserBasedRole(
            user,
            CourseInstructorRole.ROLE).remove_courses(*instructor_courses_keys)
        UserBasedRole(user,
                      CourseStaffRole.ROLE).remove_courses(*staff_courses_keys)
コード例 #7
0
ファイル: test_views.py プロジェクト: sam1610/ThemeEdx
 def test_update_creator_group(self):
     with mock.patch.dict('django.conf.settings.FEATURES', {"ENABLE_CREATOR_GROUP": True}):
         self.assertFalse(auth.user_has_role(self.user, CourseCreatorRole()))
         update_course_creator_group(self.admin, self.user, True)
         self.assertTrue(auth.user_has_role(self.user, CourseCreatorRole()))
         update_course_creator_group(self.admin, self.user, False)
         self.assertFalse(auth.user_has_role(self.user, CourseCreatorRole()))
コード例 #8
0
 def test_update_creator_group(self):
     with mock.patch.dict('django.conf.settings.MITX_FEATURES',
                          {"ENABLE_CREATOR_GROUP": True}):
         self.assertFalse(is_user_in_creator_group(self.user))
         update_course_creator_group(self.admin, self.user, True)
         self.assertTrue(is_user_in_creator_group(self.user))
         update_course_creator_group(self.admin, self.user, False)
         self.assertFalse(is_user_in_creator_group(self.user))
コード例 #9
0
    def test_staff_permission_required(self):
        """
        Tests that any method changing the course creator authz group must be called with staff permissions.
        """
        with self.assertRaises(PermissionDenied):
            add_user_with_status_granted(self.user, self.user)

        with self.assertRaises(PermissionDenied):
            update_course_creator_group(self.user, self.user, True)
コード例 #10
0
ファイル: test_views.py プロジェクト: 6thfdwp/edx-platform
    def test_staff_permission_required(self):
        """
        Tests that any method changing the course creator authz group must be called with staff permissions.
        """
        with self.assertRaises(PermissionDenied):
            add_user_with_status_granted(self.user, self.user)

        with self.assertRaises(PermissionDenied):
            update_course_creator_group(self.user, self.user, True)
コード例 #11
0
ファイル: test_views.py プロジェクト: qunub/MHST2013-14
    def test_staff_permission_required(self):
        """
        Tests that add methods and course creator group method must be called with staff permissions.
        """
        with self.assertRaises(PermissionDenied):
            add_user_with_status_granted(self.user, self.user)

        with self.assertRaises(PermissionDenied):
            add_user_with_status_unrequested(self.user, self.user)

        with self.assertRaises(PermissionDenied):
            update_course_creator_group(self.user, self.user, True)
コード例 #12
0
ファイル: test_views.py プロジェクト: InMooc/edx-platform
    def test_staff_permission_required(self):
        """
        Tests that add methods and course creator group method must be called with staff permissions.
        """
        with self.assertRaises(PermissionDenied):
            add_user_with_status_granted(self.user, self.user)

        with self.assertRaises(PermissionDenied):
            add_user_with_status_unrequested(self.user, self.user)

        with self.assertRaises(PermissionDenied):
            update_course_creator_group(self.user, self.user, True)
コード例 #13
0
ファイル: utils.py プロジェクト: REDHOUSEVE/edx-platform
def set_global_course_creator_status(request, user, set_global_creator):
    """
    Updates global course creator status of a user.
    """
    from course_creators.models import CourseCreator
    from course_creators.views import update_course_creator_group

    request_user = request.user

    course_creator, __ = CourseCreator.objects.get_or_create(user=user)
    course_creator.state = CourseCreator.GRANTED if set_global_creator else CourseCreator.UNREQUESTED
    course_creator.note = 'Global course creator user was updated by panel admin {} on {}'.format(
        request_user.email, datetime.now())
    course_creator.admin = request_user
    course_creator.save()
    edly_user_info_cookie = request.COOKIES.get(
        settings.EDLY_USER_INFO_COOKIE_NAME, None)
    edx_org = get_edx_org_from_cookie(edly_user_info_cookie)
    update_course_creator_group(request_user, user, set_global_creator)
    if set_global_creator:
        GlobalCourseCreatorRole(edx_org).add_users(user)
    else:
        GlobalCourseCreatorRole(edx_org).remove_users(user)
        instructor_courses = UserBasedRole(
            user, CourseInstructorRole.ROLE).courses_with_role()
        staff_courses = UserBasedRole(
            user, CourseStaffRole.ROLE).courses_with_role()
        instructor_courses_keys = [
            course.course_id for course in instructor_courses
        ]
        staff_courses_keys = [course.course_id for course in staff_courses]
        UserBasedRole(
            user,
            CourseInstructorRole.ROLE).remove_courses(*instructor_courses_keys)
        UserBasedRole(user,
                      CourseStaffRole.ROLE).remove_courses(*staff_courses_keys)
コード例 #14
0
ファイル: admin.py プロジェクト: qunub/MHST2013-14
def update_creator_group_callback(sender, **kwargs):
    """
    Callback for when the model's creator status has changed.
    """
    update_course_creator_group(kwargs['caller'], kwargs['user'],
                                kwargs['add'])
コード例 #15
0
ファイル: admin.py プロジェクト: InMooc/edx-platform
def update_creator_group_callback(sender, **kwargs):
    """
    Callback for when the model's creator status has changed.
    """
    update_course_creator_group(kwargs['caller'], kwargs['user'], kwargs['add'])