ArcGIS API For Python 06 - 访问和管理群组
群组是GIS中的协作空间,用户可在其中分享内容。群组支持元数据,并允许你根据其主题来自定义。你可以在群众创建用户并分配给其相关的群组权限。在gis模块中,Group类表示群组。与Items、Users和Roles一样,GroupManager的实例对象用来创建、查询和赋予权限给Group对象,可通过GIS对象的groups来获取其实例对象。查询群组可以使用search()方法来查询群组。se...
群组是GIS中的协作空间,用户可在其中分享内容。群组支持元数据,并允许你根据其主题来自定义。你可以在群众创建用户并分配给其相关的群组权限。
在gis
模块中,Group
类表示群组。与Items
、Users
和Roles
一样,GroupManager
的实例对象用来创建、查询和赋予权限给Group
对象,可通过GIS
对象的groups
来获取其实例对象。
查询群组
可以使用search()
方法来查询群组。search()
方法接收标准的ArcGIS REST API
的查询参数。
from arcgis.gis import GIS
gis = GIS(url="https://singlega.jiaoxn.local/arcgis", username="esricd", password="12345678", verify_cert=False)
all_groups = gis.groups.search()
all_groups
from arcgis.gis import GIS
gis = GIS(url="https://singlega.jiaoxn.local/arcgis", username="esricd", password="12345678", verify_cert=False)
all_groups = gis.groups.search(query='owner:esri and description:basemaps', max_groups=15)
all_groups
群组的属性
在Python中可以使用dir(<object>)
查询群组实例的属性,Group群组实例的常用的属性有:
id
access
owner
created
groupid
isFav
创建群组
通过Python API,可调用GroupManager
示例的create()
方法来创建新的群组。和其他ResourcesManager
实例的create()
方法一样,该方法会返回一个Group
对象。
from arcgis.gis import GIS
gis = GIS(url="https://singlega.jiaoxn.local/arcgis", username="esricd", password="12345678", verify_cert=False)
new_group = gis.groups.create(title='Recreational geocaching',
tags = 'hobby, geocaching, gps, hide n seek',
description = 'Group to share your landmarks and games',
snippet = 'Share your GPX tracks as feature layers here',
access = 'org',
is_invitation_only = 'False',
thumbnail = r'../../static/img/geocaching.jpeg')
分享内容到群组
在一个ArcGIS组织中,一个内容项可以设置特定的访问权限:private
、group
、org
和everyone
。当被分享到一个群组时,该群组内的用户均可访问它。
# new_content是新创建的用户项
new_content.share(groups=new_group)
管理你的群组
查看群组的内容项列表
使用Group
群组对象实例的content()
方法,可以查看当前群组有权访问的内容项列表。
my_group.content()
添加用户到群组
Python API添加用户可以有两种方法:一种是通过使用Group
对象实例的add_user()
方法,同时以列表的方式提供用户名称;另一种是通过使用Group
对象实例的invite_users()
方法邀请用户加入这个群组。
my_group.add_users([]"api_data_owner")
# 返回
{
"notAdded": []
}
该方法将会返回哪些用户没有被成功添加到群组。
查看群组中的用户
使用Group
群组对象实例的get_members()
方法,查看当前群组中的用户列表。
my_group.get_members()
该方法不仅会返回群组中的用户列表,并且会将这些用户分类到owner
、admins
和users
这三个类别中。返回示例:
{
"owner": "arcgis_python",
"admins": ["arcgis_python"],
"users": ["api_data_owner"]
}
更新群组
使用Group
对象实例的update()
方法可以更新群组,通过该函数,可以更新创建群组时提供的任意一个群组字段,这也意味着更新群组的参数和创建群组的参数是一致的。
my_group.update(is_invitation_only=True)
终止群组
当一个群组已经完成了其服务的目标或者其需求已经改变了,群组管理员和群组成员可以有几种选择。他们可以通过leave()
方法离开群组。当一个用户离开群组时,其分享的内容会自动的被取消当前群组的分享。群组的所有者或者管理员可通过delete()
方法来删除群组。
当群组和群组的内容必须得保留,可通过ressign_to()
更改群组的所有者并制定新的用户名。这一块需要注意的是,只有组织的管理员才能够更改群组的所有者。
# 更改群组的所有者
geocaching_group.reassign_to(target_owner = 'api_data_owner')
# 删除群组
geocaching_group.delete()
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)