<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Query Against AGOL User Store in ArcGIS API for Python Questions</title>
    <link>https://community.esri.com/t5/arcgis-api-for-python-questions/query-against-agol-user-store/m-p/1281237#M8618</link>
    <description>&lt;P&gt;I have a script that reads my AGOL User store and finds users that are about to be deactivated.&amp;nbsp; Although when I run it I get this:&lt;/P&gt;&lt;P&gt;ERROR:&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;EM&gt;Matplotlib created a temporary config/cache directory at C:\Users\J~1.KAP\AppData\Local\Temp\matplotlib-i0q8mino because the default path (H:\.matplotlib) is not a writable directory; it is highly recommended to set the MPLCONFIGDIR environment variable to a writable directory, in particular to speed up the import of Matplotlib and to better support multiprocessing.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;I am not sure what is trying to use Matplotlib in my script nor how to fix this... Any ideas?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;from arcgis.gis import GIS
import arcgis 
import csv
import time
from datetime import date, datetime, timedelta

agol_username = 'xxxx' 
agol_password = 'xxxx'  
output_csv = r'C:\Users\xxx\Desktop\GIS_projects\AGOL_Python\UsersAboutToExpire.csv'
search_user = '*'
gis = GIS('https://xxxx.maps.arcgis.com', agol_username, agol_password)
user_list = gis.users.search(query=search_user, max_users=2000)
roles = gis.users.roles.all()
rol_ids = {role.role_id: role.name for role in roles}
output = []

def main():
    with open(output_csv, 'w', encoding='utf-8') as file:
         csvfile = csv.writer(file, delimiter=',', lineterminator='\n')
         csvfile.writerow(["username",  
                           "email",
                           "roleID",
                           "level",
                           "disabled",
                           "role",
                           "licenseType",
                           "lastLogin",
                           "daysSince"
                         ])
         counter = 0   
         for user in user_list:

            lastLogintime = user.lastLogin/1000
            lastLoginTimeConvert = (datetime.utcfromtimestamp(lastLogintime).strftime('%Y-%m-%d %H:%M:%S'))
            format = '%Y-%m-%d %H:%M:%S'
            lastLoginDate = datetime.strptime(lastLoginTimeConvert, format)
            lastLoginDATE = datetime.now() - lastLoginDate
            lastLoginDAYS = lastLoginDATE.days
            varDisabvled = user.disabled

            #if lastLoginDAYS &amp;gt; 80:
            if lastLoginDAYS in range(80,90):
                if varDisabvled == False:             
                    try:
                        varusername = user.username  
                        varemail = user.email
                        varRoleID = rol_ids[user.roleId]
                        varlevel = user.level
                        vardisabledValue = user.disabled
                        varrole = user.role
                        varlicenceType = user.userLicenseTypeId
                        varLastLogin = lastLoginDate
                        varLastLoginDays = lastLoginDAYS

                        z = (varusername if isinstance(varusername, list) else [varusername]) + [varemail] + [varRoleID] + [varlevel] + [vardisabledValue] +  [varrole] + [varlicenceType] + [varLastLogin] + [varLastLoginDays]
                        output.append(z)
                        counter += 1
                        csvfile.writerow([varusername,  
                                    varemail,
                                    varRoleID,
                                    varlevel,
                                    vardisabledValue,
                                    varrole,
                                    varlicenceType,
                                    varLastLogin,
                                    varLastLoginDays      
                                    ])
                    except KeyError as e:
                        print(user.username, e)

if __name__ == '__main__':
    main()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 21 Apr 2023 18:07:02 GMT</pubDate>
    <dc:creator>kapalczynski</dc:creator>
    <dc:date>2023-04-21T18:07:02Z</dc:date>
    <item>
      <title>Query Against AGOL User Store</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/query-against-agol-user-store/m-p/1281237#M8618</link>
      <description>&lt;P&gt;I have a script that reads my AGOL User store and finds users that are about to be deactivated.&amp;nbsp; Although when I run it I get this:&lt;/P&gt;&lt;P&gt;ERROR:&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;EM&gt;Matplotlib created a temporary config/cache directory at C:\Users\J~1.KAP\AppData\Local\Temp\matplotlib-i0q8mino because the default path (H:\.matplotlib) is not a writable directory; it is highly recommended to set the MPLCONFIGDIR environment variable to a writable directory, in particular to speed up the import of Matplotlib and to better support multiprocessing.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;I am not sure what is trying to use Matplotlib in my script nor how to fix this... Any ideas?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;from arcgis.gis import GIS
import arcgis 
import csv
import time
from datetime import date, datetime, timedelta

agol_username = 'xxxx' 
agol_password = 'xxxx'  
output_csv = r'C:\Users\xxx\Desktop\GIS_projects\AGOL_Python\UsersAboutToExpire.csv'
search_user = '*'
gis = GIS('https://xxxx.maps.arcgis.com', agol_username, agol_password)
user_list = gis.users.search(query=search_user, max_users=2000)
roles = gis.users.roles.all()
rol_ids = {role.role_id: role.name for role in roles}
output = []

def main():
    with open(output_csv, 'w', encoding='utf-8') as file:
         csvfile = csv.writer(file, delimiter=',', lineterminator='\n')
         csvfile.writerow(["username",  
                           "email",
                           "roleID",
                           "level",
                           "disabled",
                           "role",
                           "licenseType",
                           "lastLogin",
                           "daysSince"
                         ])
         counter = 0   
         for user in user_list:

            lastLogintime = user.lastLogin/1000
            lastLoginTimeConvert = (datetime.utcfromtimestamp(lastLogintime).strftime('%Y-%m-%d %H:%M:%S'))
            format = '%Y-%m-%d %H:%M:%S'
            lastLoginDate = datetime.strptime(lastLoginTimeConvert, format)
            lastLoginDATE = datetime.now() - lastLoginDate
            lastLoginDAYS = lastLoginDATE.days
            varDisabvled = user.disabled

            #if lastLoginDAYS &amp;gt; 80:
            if lastLoginDAYS in range(80,90):
                if varDisabvled == False:             
                    try:
                        varusername = user.username  
                        varemail = user.email
                        varRoleID = rol_ids[user.roleId]
                        varlevel = user.level
                        vardisabledValue = user.disabled
                        varrole = user.role
                        varlicenceType = user.userLicenseTypeId
                        varLastLogin = lastLoginDate
                        varLastLoginDays = lastLoginDAYS

                        z = (varusername if isinstance(varusername, list) else [varusername]) + [varemail] + [varRoleID] + [varlevel] + [vardisabledValue] +  [varrole] + [varlicenceType] + [varLastLogin] + [varLastLoginDays]
                        output.append(z)
                        counter += 1
                        csvfile.writerow([varusername,  
                                    varemail,
                                    varRoleID,
                                    varlevel,
                                    vardisabledValue,
                                    varrole,
                                    varlicenceType,
                                    varLastLogin,
                                    varLastLoginDays      
                                    ])
                    except KeyError as e:
                        print(user.username, e)

if __name__ == '__main__':
    main()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 21 Apr 2023 18:07:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/query-against-agol-user-store/m-p/1281237#M8618</guid>
      <dc:creator>kapalczynski</dc:creator>
      <dc:date>2023-04-21T18:07:02Z</dc:date>
    </item>
    <item>
      <title>Re: Query Against AGOL User Store</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/query-against-agol-user-store/m-p/1282574#M8633</link>
      <description>&lt;P&gt;Anyone see this error before or know how to get rid of it?&lt;/P&gt;</description>
      <pubDate>Tue, 25 Apr 2023 21:36:54 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/query-against-agol-user-store/m-p/1282574#M8633</guid>
      <dc:creator>kapalczynski</dc:creator>
      <dc:date>2023-04-25T21:36:54Z</dc:date>
    </item>
  </channel>
</rss>

