Skip To Content

PortalPy 模块

在本主题中

本帮助主题中将列出 PortalPy 模块的所有类和方法,您可以使用这些类和方法编写 Portal for ArcGIS 的管理脚本。

类:Portal

该对象表示到门户的 URL 连接。要实例化门户对象,请执行如下代码:

PortalPy.Portal(portalUrl, user, password)

以下部分将列出可用的门户方法。使用这些方法前,请注意以下内容:

  • 组 ID - 许多组功能都需要组 ID。此 ID 与组名称或标题不同。要确定组 ID,请使用 search_groups 函数并指定标题来获取组 ID。
  • 时间 - 返回时间字段有许多方法。所有返回的时间都在 1970 年 1 月 1 日之后,且以毫秒为单位。但 Python 希望返回的时间以秒为单位,因此请将 PortalPy 返回的时间除以 1,000。以下示例展示了如何将 PortalPy 时间转换为 Python 时间。
    group = portalAdmin.get_group('67e1761068b7453693a0c68c92a62e2e')
    pythontime = time.ctime(group['created']/1000)

PortalPy 方法

下面描述了可用的门户方法。

_init_

门户构造函数。此函数需要门户的 URL 或者用户名和密码。

_init_(self, url, username=None, password=None, key_file=None, cert_file=None, expiration=60, referer=None, proxy_host=None, proxy_port=None, connection=None, workdir=r'c:\users\davi3690\appdata\local\temp\2')

add_group_users

向指定的组添加用户。仅当门户对象的用户是整个门户的管理员或组的显式所有者时,才能使用此方法。

add_group_users(self, user_names, group_id)

参数

参数说明

user_names

必填字符串,以逗号分隔的用户

group_id

必填字符串,用于指定组 ID

返回值

关键字为 not_added 的字典,包含未添加到组的用户。

create_group

创建组,如果创建成功,则返回组 ID。

create_group(self, title, tags, description=None, snippet=None, access='public', thumbnail=None, is_invitation_only=False, sort_field='avgRating', sort_order='desc', is_view_only=False)

参数

参数说明

title

必填字符串,组名称

标签

必填字符串,以逗号分隔的标签列表

说明

选填字符串,用于对组进行详细描述

snippet

选填字符串,用于汇总组的少于 250 个字符

access

选填字符串,可以是私有、公共或组织

thumbnail

选填字符串,组图像的 URL

isInvitationOnly

可选的布尔型参数,用于定义用户是否可以通过请求加入

sort_field

选填字符串,用于指定如何排序与组共享的项目

sort_order

选填字符串,升序选择 asc,降序选择 desc

is_view_only

可选布尔型参数,用于定义是否可搜索组

返回值

表示组 ID 的字符串。

create_group_from_dict

创建组,如果创建成功,则返回组 ID。在大多数情况下,建议使用 create_group,这是因为使用此方法会使组字典从其他 PortalPy 调用中返回并会复制该组字典。

create_group_from_dict(self, group, thumbnail=None)

参数

参数说明

group

字典对象

thumbnail

影像 URL

示例

create_group({'title': 'Test', 'access':'public'})

delete_group

删除组。

add_group(self, group_id)

参数

参数说明

group_id

包含已删除组的 ID 的字符串。

返回值

表示操作是否成功的布尔型参数。

delete_user

从门户中删除用户,或删除或重新分配组和项目。如果用户拥有组或项目,则无法删除该用户。如果选择级联,则会将这些项目和组重新分配给在 reassign_to 选项中标识的用户。如果选择不级联,则删除是否成功取决于之前是否已转移用户的项目和组。

选择级联时,此方法最多可删除 10,000 个项目。如果用户所具有的项目多于 10,000,此方法将失败。

delete_user(self, username, cascade=False, reassign_to=None)

参数

参数说明

username

必填字符串,用户名

cascade

可选的布尔型参数,如果为 true,则表示重新分配项目和组

reassign_to

选填字符串,项目和组的新所有者

返回值

表示操作是否成功的布尔型参数。

generate_token

生成并返回一个新令牌,但不会重新登录。使用门户类调用此门户时不需要此方法。通过此方法可在门户类外部调用门户。

门户使用基于令牌的身份验证机制,在该机制中用户提供了他们的凭据并为调用使用短期令牌。大多数对 ArcGIS REST API 的调用均需要令牌且可将令牌追加到这些请求中。

generate_token(self, username, password, expiration=60)

参数

参数说明

username

必填字符串,用户名

password

必填密码,用户密码

expiration

可选整数,令牌有效的分钟数

返回值

含令牌的字符串。

get_group

返回指定 group_id 的组信息。

get_group(self, group_id)

参数

参数说明

group_id

必填字符串,用于表示组

返回值

含有组信息的字典对象。字典对象中的关键字包括:

参数说明

title

组名称

isInvitationOnly

如果设置为 true,则用户无法申请加入组

owner

组所有者的用户名

说明

介绍组

snippet

组的简短摘要

标签

用户定义的用于描述组的标签

phone

组的联系人信息

thumbnail

相对于 http://<community-url>/groups/<groupId>/info 的文件名

created

组的创建时间,在 1970 年 1 月 1 日以后(以毫秒为单位)

modified

上次修改组的时间,在 1970 年 1 月 1 日以后(以毫秒为单位)

access

可以是私有、组织或公共

userMembership

具有关键字 username 和 memberType 的字典

memberType

提供调用用户访问权限(所有者、管理员、成员、无)

get_group_members

返回指定组的成员。

get_group_members(self, group_id)

参数

参数说明

group_id

必填字符串,用于表示组

返回值

含关键字的字典:所有者、管理员和用户。

参数说明

owner

字符串值,组所有者

admins

字符串列表,通常与所有者相同

用户

字符串列表,组成员

示例

打印组中的用户:

response = portal.get_group_members("67e1761068b7453693a0c68c92a62e2e")
for user in response['users'] :
   print user

get_group_thumbnail

返回组成特定 group_id 的缩略图的字节。

get_group_thumbnail(self, group_id)

参数

参数说明

group_id

必填字符串,用于指定组的缩略图

返回值

表示影像的字节。

示例

response = portal.get_group_thumbnail("67e1761068b7453693a0c68c92a62e2e")
f = open(filename, 'wb')
f.write(response)

get_users

返回门户组织内的所有用户。

get_users(self, max_users=1000)

参数

参数说明

max_users

可选整数值,返回的用户的最大数量

返回值

字典列表。每个字典均具有以下关键字:

username

字符串

storageUsage

整型

storageQuota

整型

说明

字符串

标签

字符串列表

region

字符串

created

整数值,帐户的创建时间,在 1970 年 1 月 1 日以后(以毫秒为单位)

modified

整数值,上次修改帐户的时间,在 1970 年 1 月 1 日以后(以毫秒为单位)

email

字符串

culture

字符串

orgId

字符串

preferredView

字符串

群组

字符串列表

role

字符串(user、publisher、admin、<custom_role_name> [其中 <custom_role_name> 是自定义角色的名称,例如 hostedservicepublisher])

旧版本:

在 Portal for ArcGIS 10.3 和更早版本中,可以接受的非自定义角色值包括 org_userorg_publisherorg_admin。10.3.1 版本已经弃用这些值,并替换为上述值。在 10.3.1 版本中,您可以继续使用这些弃用值,但是请注意,未来版本可能无法接受这些值。

fullName

字符串

thumbnail

字符串

idpUsername

字符串

示例

打印门户中的所有用户名:

resp = portalAdmin.get_users()
for user in resp:
   print user['username']

get_properties

返回门户属性,除非 force=True,否则使用缓存。

get_properties(self, force=False)

get_user

返回指定用户名的用户信息。

get_user(self, username)

参数

参数说明

username

必填字符串,想要获取其信息的用户名

返回值

如果已找到用户,则返回含有以下关键字的字典对象。如果未找到用户,则不返回任何内容。

access

字符串

created

整数值,帐户的创建时间,在 1970 年 1 月 1 日以后(以毫秒为单位)

culture

字符串,由两个字母组成的语言代码 (en)

说明

字符串

email

字符串

fullName

字符串

idpUsername

字符串,企业系统中的用户名

群组

字典列表。有关字典关键字的列表,请参阅 get_group

modified

整数值,上次修改帐户的时间,在 1970 年 1 月 1 日以后(以毫秒为单位)

orgId

字符串,组织 ID

preferredView

字符串,值可以为 Web、GIS 或为空

region

字符串,无字母或由两个字母组成的国家代码

role

字符串(user、publisher、admin、<custom_role_name> [其中 <custom_role_name> 是自定义角色的名称,例如 hostedservicepublisher])

旧版本:

在 Portal for ArcGIS 10.3 和更早版本中,可以接受的非自定义角色值包括 org_userorg_publisherorg_admin。10.3.1 版本已经弃用这些值,并替换为上述值。在 10.3.1 版本中,您可以继续使用这些弃用值,但是请注意,未来版本可能无法接受这些值。

storageUsage

整型

storageQuota

整型

标签

字符串列表

thumbnail

字符串

username

字符串

get_version

返回软件版本号,除非 force=True,否则使用缓存。会在创建门户对象时检索版本信息,并会对其进行缓存以备将来之需。如果您希望向门户发出请求而不依赖于缓存,请将 force 参数设置为 True。

get_version(self, force=False)

参数

参数说明

force

布尔型参数,true=发出请求,false=使用缓存

返回值

含版本的字符串。该版本是一个内部编号,可能与所安装产品的版本不匹配。

invite_group_users

邀请用户加入组。被邀请加入到组的用户可在门户的“组”选项卡中查看邀请列表。用户可接受或拒绝邀请。执行此命令的用户必须是组所有者。

invite_group_users(self, user_names, group_id, role='group_member', expiration=10080)

参数

参数说明

user_names

必填字符串,要邀请的用户列表(以逗号分隔)

group_id

必填字符串,用于指定要邀请用户加入的组的 ID

role

选填字符串,group_member 或 group_admin

expiration

可选整数值,用于指定该邀请的有效期(以分钟为单位)

返回值

表示操作是否成功的布尔型参数。

is_all_ssl

如果门户需要 SSL,则返回 true。

is_all_ssl(self)

is_logged_in

如果用户已登录本门户,则返回 true。

is_logged_in(self)

is_org

如果门户是一个组织,则返回 true。

is_org(self)

leave_group

从指定组中移除已登录的用户。必须是已登录的用户才能使用此方法。

leave_group(self, group_id)

参数

参数说明

group_id

必填字符串,用于指定组 ID

返回值

表示操作是否成功的布尔型参数。

logged_in_user

返回已登录用户的信息。

logged_in_user(self)

返回值

含以下键的字典:

username

字符串

storageUsage

整型

说明

字符串

标签

以逗号分隔的字符串

created

整数值,帐户的创建时间,在 1970 年 1 月 1 日以后(以毫秒为单位)

modified

整数值,上次修改帐户的时间,在 1970 年 1 月 1 日以后(以毫秒为单位)

fullName

字符串

email

字符串

idpUsername

字符串,企业系统中的用户名

login

使用用户名和密码登录到门户。可在构造门户对象时登录到门户,也可在稍后登录。此函数用于稍后登录。

login(self, username, password, expiration=60)

参数

参数说明

username

必填字符串

password

必填字符串

expiration

可选整数值,令牌生成后可持续的时间

返回值

含令牌的字符串。

logout

登出门户。门户将忘记所使用的任何现有令牌,在进行另一登录调用前将一直匿名调用所有后续门户。

logout(self)

返回值

不返回任何值。

reassign_group

将组重新分配给另一所有者。

reassign_group(self, group_id, target_owner)

参数

参数说明

group_id

必填字符串,组的唯一标识符

target_owner

必填字符串,新组所有者的用户名

返回值

表示操作是否成功的布尔型参数。

remove_group_users

从组中移除用户。

remove_group_users(self, user_names, group_id)

参数

参数说明

user_names

必填字符串,以逗号分隔的用户列表

group_id

必填字符串,组的唯一标识符

返回值

含关键字 notRemoved 的字典,表示未移除的用户列表。

reset_user

重置用户密码、安全性问题和安全性答案。该函数不适用于使用企业标识存储(如 ActiveDirectory 或 LDAP)中的帐户进行配置的门户。仅适用于内置门户用户。如果指定了新安全性问题,则需提供相应的新安全性答案。

reset_user(self, username, password, new_password=None, new_security_question=None, new_security_answer=None)

参数

参数说明

username

必填字符串,重置的帐户

password

必填字符串,当前密码

new_password

选填字符串,新密码(如果重置了密码)

new_security_question

可选整数值,新安全性问题(如有需要)

new_security_answer

选填字符串,新安全性问题答案(如有需要)

返回值

表示操作是否成功的布尔型参数。

search

search(self, q, bbox=None, sort_field='title', sort_order='asc', max_results=1000, add_org=True)

search_groups

搜索门户组。使用此方法时应考虑以下问题:

  • 查询语法具有许多未在此处描述的功能。要查看所有功能,请参阅 ArcGIS REST API 中的搜索参考
  • 通常在组织内搜索组。为方便起见,默认情况下,该方法会自动将您的组织 ID 追加到查询。如果您不希望将 API 追加到查询,请将 add_org 设置为 false。

search_groups(self, q, sort_field='title', sort_order='asc', max_groups=1000, add_org=True)

参数

参数说明

q

必填字符串,查询字符串

sort_field

选填字符串、有效值可以是标题、所有者或已创建的值

sort_order

选填字符串,有效值为 asc 或 desc

max_groups

可选 int,返回的组的最大数

add_org

可选的布尔型参数,用于控制是否可在组织内进行搜索

返回值

字典列表。每个字典均具有以下关键字:

access

字符串,值可以是私有、组织或公共

created

整数值,帐户的创建时间,在 1970 年 1 月 1 日以后(以毫秒为单位)

说明

字符串

id

字符串,组的唯一 ID

isInvitationOnly

布尔型

isViewOnly

布尔型

modified

整数值,上次修改帐户的时间,在 1970 年 1 月 1 日以后(以毫秒为单位)

owner

字符串,所有者的用户名

phone

字符串

snippet

字符串,组的简短摘要

sortField

字符串,对共享项目进行排序的方法

sortOrder

字符串,升序或降序

标签

字符串列表,用于搜索的用户提供的标签

thumbnail

字符串,文件名称。追加至 http://<community url>/groups/<group id>/info/

title

字符串,展示给用户的组名称

search_users

搜索门户用户。使用此方法时应考虑以下问题:

  • 查询语法具有许多未在此处描述的功能。要查看所有功能,请参阅 ArcGIS REST API 中的搜索参考
  • 通常在组织内搜索用户。为方便起见,默认情况下,该方法会自动将您的组织 ID 追加到查询。如果您不希望将 API 追加到查询,请将 add_org 设置为 false。

search_users(self, q, sort_field='username', sort_order='asc', max_users=1000, add_org=True)

参数

参数说明

q

必填字符串,查询字符串

sort_field

选填字符串、有效值可以是标题、所有者或已创建的值

sort_order

选填字符串,有效值为 asc 或 desc

max_users

可选的整型参数,返回的最大用户数

add_org

可选的布尔型参数,用于控制是否可在组织内进行搜索

返回值

字典列表。每个字典均具有以下关键字:

created

整数值,帐户的创建时间,在 1970 年 1 月 1 日以后(以毫秒为单位)

culture

字符串,由两个字母组成的语言代码

说明

字符串

fullName

字符串,用户名

modified

整数值,上次修改帐户的时间,在 1970 年 1 月 1 日以后(以毫秒为单位)

region

字符串,可能为“None”

标签

字符串列表,用于搜索的用户提供的标签

thumbnail

字符串,文件名称。追加至 http://<community url>/groups/<group id>/info/

username

字符串,用户名

signup

将用户注册到 Portal for ArcGIS。此方法仅适用于 Portal for ArcGIS,可被匿名调用。但也可在门户中禁用自注册。同时,此方法可创建内置帐户;该帐户不能与来自企业标识存储中的企业帐户一起使用。

还有一种被称为 createUser 的方法可始终用于 Portal for ArcGIS 10.2.1 或更高版本。该方法需要管理员访问权限,可用于创建内置用户或将企业帐户添加到门户。

signup(self, username, password, fullname, email)

参数

参数说明

username

必填字符串,在门户中必须是唯一的,且必须多于 4 个字符

password

必填字符串,必须多于或等于 8 个字符

fullname

必填字符串,用户名

email

必填字符串,必须是有效的电子邮件地址

返回值

表示操作是否成功的布尔型参数。

update_group

用于更新组。您仅需要提供希望更新的参数值。

update_group(self, group_id, title=None, tags=None, description=None, snippet=None, access=None, is_invitation_only=None, sort_field=None, sort_order=None, is_view_only=None, thumbnail=None)

参数

参数说明

group_id

必填字符串,要修改的组 ID

title

必填字符串,要修改的组名称

标签

必填字符串,以逗号分隔的标签列表

说明

选填字符串,用于对组进行详细描述

snippet

选填字符串,用于汇总组的少于 250 个字符

access

选填字符串,可以是私有、公共或组织

thumbnail

选填字符串,组图像的 URL

isInvitationOnly

可选的布尔型参数,用于定义用户是否可以通过请求加入

sort_field

选填字符串,用于指定如何排序与组共享的项目

sort_order

选填字符串,升序选择 asc,降序选择 desc

is_view_only

可选布尔型参数,用于定义是否可搜索组

返回值

表示操作是否成功的布尔型参数。

update_user

更新用户属性。只需提供想要更新的参数值。

update_user(self, username, access=None, preferred_view=None, description=None, tags=None, thumbnail=None, fullname=None, email=None, culture=None, region=None)

参数

username

必填字符串,更新用户名

access

选填字符串,值:私有、组织、公共

preferred_view

选填字符串,值:Web、GIS 或为空

说明

选填字符串,对用户的描述

标签

选填字符串,以逗号分隔的用于搜索的标签

thumbnail

选填字符串,文件路径或 URL。可以为 PNG、GIF 或 JPEG。最大大小为 1 MB。

fullName

选填字符串,仅用于内置用户的用户名

email

选填字符串,仅用于内置用户的电子邮件地址

culture

选填字符串,由两个字母组成的语言代码,例如 fr。

region

选填字符串,由两个字母组成的国家代码,例如 FR

返回值

表示操作是否成功的布尔型参数。

update_user_role

更新用户角色。

update_user_role(self, username, role)

参数

username

必填字符串,要更改角色的用户的名称

role

必填字符串,user、publisher、admin、<custom_role_name>(其中 <custom_role_name> 是自定义角色的名称,例如 hostedservicepublisher)

旧版本:

在 Portal for ArcGIS 10.3 和更早版本中,可以接受的非自定义角色值包括 org_userorg_publisherorg_admin。10.3.1 版本已经弃用这些值,并替换为上述值。在 10.3.1 版本中,您可以继续使用这些弃用值,但是请注意,未来版本可能无法接受这些值。

返回值

表示操作是否成功的布尔型参数。