コード例 #1
0
ファイル: admin.py プロジェクト: yudhik11/oppia
    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.')
コード例 #2
0
ファイル: admin.py プロジェクト: atpug22/oppia
    def get(self):
        filter_criterion = self.normalized_request.get('filter_criterion')
        if filter_criterion == feconf.USER_FILTER_CRITERION_ROLE:
            role = self.normalized_request.get(
                feconf.USER_FILTER_CRITERION_ROLE)
            role_services.log_role_query(self.user_id,
                                         feconf.ROLE_ACTION_VIEW_BY_ROLE,
                                         role=role)
            self.render_json(
                {'usernames': user_services.get_usernames_by_role(role)})
        elif filter_criterion == feconf.USER_FILTER_CRITERION_USERNAME:
            username = self.normalized_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_settings = user_services.get_user_settings(user_id)
            user_roles = user_settings.roles
            managed_topic_ids = []
            if feconf.ROLE_ID_TOPIC_MANAGER in user_roles:
                managed_topic_ids = [
                    rights.id for rights in
                    topic_fetchers.get_topic_rights_with_user(user_id)
                ]
            user_roles_dict = {
                'roles': user_roles,
                'managed_topic_ids': managed_topic_ids,
                'banned': user_settings.banned
            }
            self.render_json(user_roles_dict)
コード例 #3
0
ファイル: admin.py プロジェクト: pengcheng95/oppia
    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.')
コード例 #4
0
ファイル: user_services_test.py プロジェクト: unit-00/oppia
    def test_get_usernames_by_role(self):
        user_ids = ['test1', 'test2', 'test3', 'test4']
        usernames = ['name1', 'name2', 'name3', 'name4']
        user_emails = [
            '*****@*****.**', '*****@*****.**', '*****@*****.**',
            '*****@*****.**'
        ]

        for uid, email, name in zip(user_ids, user_emails, usernames):
            user_services.create_new_user(uid, email)
            user_services.set_username(uid, name)

        user_services.update_user_role(user_ids[0], feconf.ROLE_ID_MODERATOR)
        user_services.update_user_role(user_ids[1], feconf.ROLE_ID_MODERATOR)
        user_services.update_user_role(user_ids[2], feconf.ROLE_ID_BANNED_USER)
        user_services.update_user_role(user_ids[3], feconf.ROLE_ID_BANNED_USER)

        self.assertEqual(
            set(user_services.get_usernames_by_role(feconf.ROLE_ID_MODERATOR)),
            set(['name1', 'name2']))

        self.assertEqual(
            set(user_services.get_usernames_by_role(
                feconf.ROLE_ID_BANNED_USER)), set(['name3', 'name4']))