예제 #1
0
 def put(self):
     """Handles PUT requests."""
     if user_services.has_fully_registered(self.user_id):
         site_language_code = self.payload.get('site_language_code')
         user_services.update_preferred_site_language_code(
             self.user_id, site_language_code)
     self.render_json({})
예제 #2
0
 def put(self):
     """Handles PUT requests."""
     if user_services.has_fully_registered(self.user_id):
         site_language_code = self.payload.get('site_language_code')
         user_services.update_preferred_site_language_code(
             self.user_id, site_language_code)
     self.render_json({})
예제 #3
0
    def put(self):
        """Handles POST requests."""
        update_type = self.payload.get('update_type')
        data = self.payload.get('data')

        if update_type == 'user_bio':
            user_services.update_user_bio(self.user_id, data)
        elif update_type == 'subject_interests':
            user_services.update_subject_interests(self.user_id, data)
        elif update_type == 'preferred_language_codes':
            user_services.update_preferred_language_codes(self.user_id, data)
        elif update_type == 'preferred_site_language_code':
            user_services.update_preferred_site_language_code(
                self.user_id, data)
        elif update_type == 'profile_picture_data_url':
            user_services.update_profile_picture_data_url(self.user_id, data)
        elif update_type == 'email_preferences':
            user_services.update_email_preferences(
                self.user_id, data['can_receive_email_updates'],
                data['can_receive_editor_role_email'],
                data['can_receive_feedback_message_email'])
        else:
            raise self.InvalidInputException('Invalid update type: %s' %
                                             update_type)

        self.render_json({})
예제 #4
0
    def put(self):
        """Handles POST requests."""
        update_type = self.payload.get('update_type')
        data = self.payload.get('data')

        if update_type == 'user_bio':
            user_services.update_user_bio(self.user_id, data)
        elif update_type == 'subject_interests':
            user_services.update_subject_interests(self.user_id, data)
        elif update_type == 'preferred_language_codes':
            user_services.update_preferred_language_codes(self.user_id, data)
        elif update_type == 'preferred_site_language_code':
            user_services.update_preferred_site_language_code(
                self.user_id, data)
        elif update_type == 'profile_picture_data_url':
            user_services.update_profile_picture_data_url(self.user_id, data)
        elif update_type == 'email_preferences':
            user_services.update_email_preferences(
                self.user_id, data['can_receive_email_updates'],
                data['can_receive_editor_role_email'],
                data['can_receive_feedback_message_email'])
        else:
            raise self.InvalidInputException(
                'Invalid update type: %s' % update_type)

        self.render_json({})
예제 #5
0
    def put(self):
        """Handles PUT requests."""
        update_type = self.payload.get('update_type')
        data = self.payload.get('data')
        bulk_email_signup_message_should_be_shown = False
        if update_type == 'user_bio':
            if len(data) > feconf.MAX_BIO_LENGTH_IN_CHARS:
                raise self.InvalidInputException(
                    'User bio exceeds maximum character limit: %s'
                    % feconf.MAX_BIO_LENGTH_IN_CHARS)

            user_services.update_user_bio(self.user_id, data)
        elif update_type == 'subject_interests':
            user_services.update_subject_interests(self.user_id, data)
        elif update_type == 'preferred_language_codes':
            user_services.update_preferred_language_codes(self.user_id, data)
        elif update_type == 'preferred_site_language_code':
            user_services.update_preferred_site_language_code(
                self.user_id, data)
        elif update_type == 'preferred_audio_language_code':
            user_services.update_preferred_audio_language_code(
                self.user_id, data)
        elif update_type == 'preferred_translation_language_code':
            user_services.update_preferred_translation_language_code(
                self.user_id, data)
        elif update_type == 'profile_picture_data_url':
            user_services.update_profile_picture_data_url(self.user_id, data)
        elif update_type == 'default_dashboard':
            user_services.update_user_default_dashboard(self.user_id, data)
        elif update_type == 'email_preferences':
            bulk_email_signup_message_should_be_shown = (
                user_services.update_email_preferences(
                    self.user_id, data['can_receive_email_updates'],
                    data['can_receive_editor_role_email'],
                    data['can_receive_feedback_message_email'],
                    data['can_receive_subscription_email']))
        else:
            raise self.InvalidInputException(
                'Invalid update type: %s' % update_type)

        self.render_json({
            'bulk_email_signup_message_should_be_shown': (
                bulk_email_signup_message_should_be_shown)
        })
 def test_evaluate_feature_for_en_user_defaults_match_to_en_lang(self):
     user_services.update_preferred_site_language_code(self.user_id, 'en')
     self.login(self.OWNER_EMAIL)
     registry.Registry.update_platform_parameter(
         self.prod_feature.name, self.user_id, 'edit rules', [{
             'filters': [{
                 'type':
                 'server_mode',
                 'conditions':
                 [['=', platform_parameter_domain.SERVER_MODES.prod]],
             }, {
                 'type': 'user_locale',
                 'conditions': [['=', 'en']],
             }],
             'value_when_matched':
             True
         }])
     with self.swap(constants, 'DEV_MODE', False):
         self.assertTrue(
             feature_services.is_feature_enabled(self.prod_feature.name))
예제 #7
0
 def test_evaluate_feature_for_fr_user_defaults_does_not_match_to_en_lang(
         self):
     user_services.update_preferred_site_language_code(self.user_id, 'fr')
     self.login(self.OWNER_EMAIL)
     registry.Registry.update_platform_parameter(
         self.prod_feature.name, self.user_id, 'edit rules',
         [
             {
                 'filters': [
                     {
                         'type': 'server_mode',
                         'conditions': [
                             [
                                 '=',
                                 platform_parameter_domain.SERVER_MODES.prod
                             ]
                         ],
                     },
                     {
                         'type': 'user_locale',
                         'conditions': [
                             [
                                 '=',
                                 'en'
                             ]
                         ],
                     }
                 ],
                 'value_when_matched': True
             }
         ]
     )
     # Since the feature is only enable for users who have French selected as
     # their preferred site language code, the feature shouldn't be enabled
     # for the current logged in user.
     with self.swap(constants, 'DEV_MODE', False):
         self.assertFalse(
             feature_services.is_feature_enabled(
                 self.prod_feature.name, self.user_id))
예제 #8
0
 def put(self):
     """Handles PUT requests."""
     site_language_code = self.normalized_payload.get('site_language_code')
     user_services.update_preferred_site_language_code(
         self.user_id, site_language_code)
     self.render_json({})