async def resolve_find_user(self, info, guid, update_time):
     """default find method"""
     del update_time
     err = 'Error in GQL query - find_user.'
     with ax_model.try_catch(info.context['session'], err, no_commit=True):
         query = User.get_query(info)
         ax_user = query.filter(AxUser.guid == guid).first()
         return ax_user
 async def resolve_blocked_users(self, info, update_time=None):
     """Get all users"""
     del update_time
     err = 'Error in GQL query - all_users.'
     with ax_model.try_catch(info.context['session'], err, no_commit=True):
         query = User.get_query(info)  # SQLAlchemy query
         users_list = []
         users_list = query.filter(AxUser.is_group.is_(False)).filter(
             AxUser.is_blocked.is_(True)).all()
         return users_list
    async def resolve_only_users(self,
                                 info,
                                 search_string=None,
                                 update_time=None,
                                 guids=None,
                                 emails=None):
        """Get all users and groups in one search"""
        del update_time
        err = 'Error in GQL query - users_and_groups.'
        with ax_model.try_catch(info.context['session'], err, no_commit=True):
            query = User.get_query(info)
            users_list = []
            if search_string and guids:
                real_guids = []
                guids_dict = json.loads(guids)
                for guid in guids_dict["items"]:
                    real_guids.append(uuid.UUID(guid))

                users_list = query.filter(
                    or_(AxUser.short_name.ilike(f"%{search_string}%"),
                        AxUser.guid.in_(real_guids))).filter(
                            AxUser.is_group.is_(False)).filter(
                                AxUser.is_blocked.is_(False)).all()
            elif search_string and emails:
                real_guids = []
                email_list = ast.literal_eval(emails)

                users_list = query.filter(
                    or_(AxUser.short_name.ilike(f"%{search_string}%"),
                        AxUser.email.in_(email_list))).filter(
                            AxUser.is_group.is_(False)).filter(
                                AxUser.is_blocked.is_(False)).all()
            elif not search_string and guids:
                real_guids = []
                guids_dict = json.loads(guids)
                for guid in guids_dict["items"]:
                    real_guids.append(uuid.UUID(guid))

                users_list = query.filter(AxUser.guid.in_(real_guids)).filter(
                    AxUser.is_group.is_(False)).filter(
                        AxUser.is_blocked.is_(False)).all()
            elif search_string and not guids:
                users_list = query.filter(
                    AxUser.short_name.ilike(f"%{search_string}%")).filter(
                        AxUser.is_group.is_(False)).filter(
                            AxUser.is_blocked.is_(False)).all()
            elif not search_string and not guids and emails:
                email_list = ast.literal_eval(emails)
                users_list = query.filter(AxUser.email.in_(email_list)).filter(
                    AxUser.is_group.is_(False)).filter(
                        AxUser.is_blocked.is_(False)).all()

            return users_list
 async def resolve_page_users(self, info, page_guid, update_time=None):
     """Get users that allowed to view page"""
     del update_time
     err = 'Error in GQL query - resolve_page_users.'
     with ax_model.try_catch(info.context['session'], err, no_commit=True):
         user_list = await ax_dialects.dialect.select_page_users(
             db_session=info.context['session'], page_guid=page_guid)
         user_guids = []
         for user in user_list:
             user_guids.append(user['guid'])
         query = User.get_query(info)  # SQLAlchemy query
         ret_list = query.filter(AxUser.guid.in_(user_guids)).filter(
             AxUser.is_blocked.is_(False)).all()
         return ret_list
    async def resolve_current_ax_user(self, info, update_time):
        """ Returns current AxUser """
        del update_time
        err = 'Error in GQL query - find_user.'
        with ax_model.try_catch(info.context['session'], err, no_commit=True):
            current_user = info.context['user']
            if not current_user:
                return None

            user_guid = current_user['user_id']
            query = User.get_query(info)
            ax_user = query.filter(AxUser.guid == uuid.UUID(user_guid)).filter(
                AxUser.is_blocked.is_(False)).first()

            ax_user.is_active_admin = current_user.get('is_admin', False)
            return ax_user
 async def resolve_all_users(self,
                             info,
                             search_string=None,
                             update_time=None):
     """Get all users"""
     del update_time
     err = 'Error in GQL query - all_users.'
     with ax_model.try_catch(info.context['session'], err, no_commit=True):
         query = User.get_query(info)  # SQLAlchemy query
         users_list = []
         if not search_string:
             users_list = query.filter(AxUser.is_group.is_(False)).filter(
                 AxUser.is_blocked.is_(False)).all()
         else:
             users_list = query.filter(AxUser.is_group.is_(False)).filter(
                 AxUser.short_name.ilike(f"%{search_string}%")).filter(
                     AxUser.is_blocked.is_(False)).all()
         return users_list