Esempio n. 1
0
    def test_update_user_role(self):
        user_id = 'test_id'
        user_name = 'testname'
        user_email = '*****@*****.**'

        user_services.create_new_user(user_id, user_email)
        user_services.set_username(user_id, user_name)

        self.assertEqual(user_services.get_user_role_from_id(user_id),
                         feconf.ROLE_EXPLORATION_EDITOR)

        user_services.update_user_role(user_id, feconf.ROLE_COLLECTION_EDITOR)
        self.assertEqual(user_services.get_user_role_from_id(user_id),
                         feconf.ROLE_COLLECTION_EDITOR)
Esempio n. 2
0
    def get(self):
        view_method = self.request.get('method')

        if view_method == feconf.VIEW_METHOD_ROLE:
            role = self.request.get(feconf.VIEW_METHOD_ROLE)
            users_by_role = {
                username: role
                for username in user_services.get_usernames_by_role(role)
            }
            role_services.log_role_query(self.user_id,
                                         feconf.ROLE_ACTION_VIEW_BY_ROLE,
                                         role=role)
            self.render_json(users_by_role)
        elif view_method == feconf.VIEW_METHOD_USERNAME:
            username = self.request.get(feconf.VIEW_METHOD_USERNAME)
            user_id = user_services.get_user_id_from_username(username)
            role_services.log_role_query(self.user_id,
                                         feconf.ROLE_ACTION_VIEW_BY_USERNAME,
                                         username=username)
            if user_id is None:
                raise self.InvalidInputException(
                    'User with given username does not exist.')
            user_role_dict = {
                username: user_services.get_user_role_from_id(user_id)
            }
            self.render_json(user_role_dict)
        else:
            raise self.InvalidInputException('Invalid method to view roles.')
Esempio n. 3
0
    def post(self):
        username = self.payload.get('username')
        role = self.payload.get('role')
        topic_id = self.payload.get('topic_id')
        user_id = user_services.get_user_id_from_username(username)
        if user_id is None:
            raise self.InvalidInputException(
                'User with given username does not exist.')

        if (user_services.get_user_role_from_id(user_id) ==
                feconf.ROLE_ID_TOPIC_MANAGER):
            topic_services.deassign_user_from_all_topics(
                user_services.get_system_user(), user_id)

        user_services.update_user_role(user_id, role)
        role_services.log_role_query(self.user_id,
                                     feconf.ROLE_ACTION_UPDATE,
                                     role=role,
                                     username=username)

        if topic_id:
            user = user_services.UserActionsInfo(user_id)
            topic_services.assign_role(user_services.get_system_user(), user,
                                       topic_domain.ROLE_MANAGER, topic_id)

        self.render_json({})
Esempio n. 4
0
    def get(self):
        filter_criterion = self.request.get('filter_criterion')

        if filter_criterion == feconf.USER_FILTER_CRITERION_ROLE:
            role = self.request.get(feconf.USER_FILTER_CRITERION_ROLE)
            users_by_role = {
                username: role
                for username in user_services.get_usernames_by_role(role)
            }
            role_services.log_role_query(self.user_id,
                                         feconf.ROLE_ACTION_VIEW_BY_ROLE,
                                         role=role)
            self.render_json(users_by_role)
        elif filter_criterion == feconf.USER_FILTER_CRITERION_USERNAME:
            username = self.request.get(feconf.USER_FILTER_CRITERION_USERNAME)
            user_id = user_services.get_user_id_from_username(username)
            role_services.log_role_query(self.user_id,
                                         feconf.ROLE_ACTION_VIEW_BY_USERNAME,
                                         username=username)
            if user_id is None:
                raise self.InvalidInputException(
                    'User with given username does not exist.')
            user_role_dict = {
                username: user_services.get_user_role_from_id(user_id)
            }
            self.render_json(user_role_dict)
        else:
            raise self.InvalidInputException(
                'Invalid filter criterion to view roles.')