ArkID 客户端

ArkID Client 集成之前所述的所有客户端(除认证客户端以外)的功能, 为用户提供统一的接口来访问 ArkID 的服务

class arkid_client.client.ArkIDClient(base_url, authorizer=None, *args, **kwargs)[源代码]

由各种 ArkID 客户端集成而生, 他提供的所有功能都只是各个客户端的简单封装, 用来一致对外界用户使用;默认加载的为 user 相关服务接口 当然,如果您足够熟悉本项目, 您也可以直接实例化所需要的指定客户端。

Methods

query_user_list(**kwargs)

获取用户信息列表 (GET /siteapi/v1/user/)

Parameters:

keyword (str)
查询关键字,进行用户名、姓名、邮箱、手机号模糊搜索
wechat_unionid (str)
微信客户端 openid
page (int)
用于分页,Default: 1
page_size (int)
指定分页大小,Default: 30

Examples

>>> uc = arkid_client.UserClient(...)
>>> users = uc.query_user(...)
>>> for user in users:
>>>     print(user['username'], 'id: '
>>>           ,user['id'])

External Documentation

关于 用户的元数据 详情请参阅API文档。

query_isolated_user(**kwargs)

获取所有独立用户 (GET /siteapi/v1/user/isolated/)

Parameters:

page (int)
用于分页,Default: 1
page_size (int)
指定分页大小,Default: 30

Examples

>>> uc = arkid_client.UserClient(...)
>>> users = uc.query_isolated_user(...)
>>> for user in users:
>>>     print(user['username'], 'id: '
>>>           ,user['id'])
query_user(**kwargs)

获取指定用户的信息 (GET /siteapi/v1/user/<username>/)

Parameters:

username (str)
用户唯一标识

Examples

>>> uc = arkid_client.UserClient(...)
>>> user = uc.query_user(...)
>>> print(user['username'], 'id: '
>>>       ,user['id'])
create_user(**kwargs)

创建用户(需要管理员权限) (POST /siteapi/v1/user/)

Parameters:

json_body (dict)

group_uids (list[str])
用户组 uuid 的集合
dept_uids (list[str])
部门 uuid 的集合
user (dict)
用户的元信息, 参数详情请参考接口文档
node_uids (list[str])
(可选的)此字段提供时会忽略 group_uids, dept_uids

Examples

>>> uc = arkid_client.UserClient(...)
>>> user_data = {
>>>   "user": {
>>>     "password": "example",
>>>     "username": "example"
>>>     }
>>> }
>>> user = uc.create_user(user_data)
>>> print(user['username'], 'id: '
>>>           ,user['id'])

External Documentation

关于 用户的元数据 详情请参阅API文档。

update_user(**kwargs)

修改指定用户的信息 (PATCH /siteapi/v1/user/<username>)

Parameters:

username (str)
用户唯一标识
json_body (dict)
用户的元信息, 参数详情请参考接口文档

Examples

>>> uc = arkid_client.UserClient(...)
>>> query_data = {
>>>   "password": "example",
>>>   "private_email": "example@org.com"
>>> }
>>> user = uc.update_user(username, query_data)
>>> print(user['username'], 'id: '
>>>           ,user['id'])

External Documentation

关于 用户的元数据 详情请参阅API文档。

delete_user(**kwargs)

删除指定用户的信息 (DELETE /siteapi/v1/user/<username>/)

Parameters:

username (str)
用户唯一标识

Examples

>>> uc = arkid_client.UserClient(...)
>>> uc.delete_user(username)
query_specified_perm(**kwargs)

获取用户权限详情,包括权限来源 (GET /siteapi/v1/user/<username>/perm/<uid>/)

Parameters:

username (str)
用户唯一标识
uid (str)
权限唯一标识

Examples

>>> pc = arkid_client.UserClient(...)
>>> perm = pc.query_specified_perm(...)
>>> print('perm is', perm)
query_own_org(**kwargs)

查询用户所在的组织 (GET /siteapi/v1/org/)

Parameters:

role (str)
在组织内的角色

Examples

>>> oc = arkid_client.OrgClient(...)
>>> orgs = oc.query_own_org(role='admin')
>>> for org in orgs:
>>>     print(org['oid'], 'name: '
>>>           ,org['name'])
query_org(**kwargs)

查看指定组织的信息 (GET /siteapi/v1/org/<oid>/)

Parameters:

oid (str)
组织的唯一标识

Examples

>>> oc = arkid_client.OrgClient(...)
>>> org = oc.query_org(oid)
>>> print(org['oid'], 'name: '
>>>       ,org['name'])
create_org(**kwargs)

创建组织 (POST /siteapi/v1/org/)

Parameters:

json_body (dict)
组织的元信息, 参数详情请参考接口文档

Examples

>>> oc = arkid_client.OrgClient(...)
>>> org_data = {
>>>   "name": "example",
>>> }
>>> org = oc.create_org(org_data)
>>> print(org['oid'], 'name: '
>>>       ,org['name'])

External Documentation

关于 组织的元数据 详情请参阅API文档。

delete_org(**kwargs)

删除指定组织的信息 (DELETE /siteapi/v1/org/<oid>/)

Parameters:

oid (str)
组织的唯一标识

Examples

>>> oc = arkid_client.OrgClient(...)
>>> oc.delete_org(oid)
update_org(**kwargs)

修改指定组织的信息 (PATCH /siteapi/v1/org/<oid>/)

Parameters:

oid (str)
组织的唯一标识
json_body (dict)
组织的元信息, 参数详情请参考接口文档

Examples

>>> oc = arkid_client.OrgClient(...)
>>> org_data = {
>>>   "name": "example",
>>> }
>>> org = oc.update_org(oid, org_data)
>>> print(org['oid'], 'name: '
>>>       ,org['name'])

External Documentation

关于 组织的元数据 详情请参阅API文档。

query_orguser_list(**kwargs)

查看特定组织的成员信息 (GET /siteapi/v1/org/<oid>/user/)

Parameters:

oid (str)
组织的唯一标识
page (int)
用于分页,Default: 1
page_size (int)
指定分页大小,Default: 30

Examples

>>> oc = arkid_client.OrgClient(...)
>>> org = oc.query_orguser_list(oid)
>>> print(org['oid'], 'name: '
>>>       ,org['name'])
add_orguser(**kwargs)

向指定组织中添加成员 (PATCH /siteapi/v1/org/<oid>/user/)

Parameters:

oid (str)
组织的唯一标识
usernames (list)
用户的唯一标识组成的列表

Examples

>>> oc = arkid_client.OrgClient(...)
>>> usernames = [
>>>     'username1',
>>>     'username2',
>>>         ...
>>>     'usernamen'
>>> ]
>>> org = oc.add_orguser(oid, usernames)
>>> print(org['oid'], 'name: '
>>>       ,org['name'])
delete_orguser(**kwargs)

从指定组织中移除成员 (PATCH /siteapi/v1/org/<oid>/user/)

Parameters:

oid (str)
组织的唯一标识
usernames (list)
用户的唯一标识组成的列表

Examples

>>> oc = arkid_client.OrgClient(...)
>>> usernames = [
>>>     'username1',
>>>     'username2',
>>>         ...
>>>     'usernamen'
>>> ]
>>> org = oc.delete_orguser(oid, usernames)
>>> print(org['oid'], 'name: '
>>>       ,org['name'])
query_orguser(**kwargs)

查看指定组织的指定成员的信息 (GET /siteapi/v1/org/<oid>/user/<username>/)

Parameters:

oid (str)
组织的唯一标识
username (str)
用户唯一标识

Examples

>>> oc = arkid_client.OrgClient(...)
>>> user = oc.query_orguser(oid, username)
>>> print('user is', user)
update_orguser(**kwargs)

编辑指定组织的指定成员的信息 (PATCH /siteapi/v1/org/<oid>/user/<username>/)

Parameters:

oid (str)
组织的唯一标识
username (str)
用户唯一标识

json_body (dict)

email (str)
成员邮箱
employee_number (str)
成员工号
position (str)
成员职位
hiredate (str)
成员雇佣日期
remark (str)
成员备注

Examples

>>> oc = arkid_client.OrgClient(...)
>>> user_data = {
>>>   "email": "example@org.com",
>>> }
>>> user = oc.update_orguser(oid, username, user_data)
>>> print(user['id'], 'name: '
>>>       ,user['name'])

External Documentation

关于 成员的元数据 详情请参阅API文档。

get_org_invitation_key(**kwargs)

获取指定组织邀请用的最新的密钥 (GET /siteapi/v1/org/<oid>/invitation/)

Parameters:

oid (str)
组织的唯一标识

Examples

>>> oc = arkid_client.OrgClient(...)
>>> key = oc.get_org_invitation_key(oid)
>>> print('key: ', key)
refresh_org_invitation_key(**kwargs)

刷新指定组织邀请用的最新的密钥 (PUT /siteapi/v1/org/<oid>/invitation/)

Parameters:

oid (str)
组织的唯一标识

Examples

>>> oc = arkid_client.OrgClient(...)
>>> key = oc.refresh_org_invitation_key(oid)
>>> print('key: ', key)
view_org_by_invitation_key(**kwargs)

使用邀请密钥查看指定组织的信息 (GET /siteapi/v1/org/<oid>/invitation/<invite_link_key>/)

Parameters:

oid (str)
组织的唯一标识
invite_link_key (str)
组织邀请密钥

Examples

>>> oc = arkid_client.OrgClient(...)
>>> org = oc.view_org_by_invitation_key(oid, invite_link_key)
>>> print('org: ', org)
join_org_by_invitation_key(**kwargs)

使用邀请密钥加入指定组织 (POST /siteapi/v1/org/<oid>/invitation/<invite_link_key>/)

Parameters:

oid (str)
组织的唯一标识
invite_link_key (str)
组织邀请密钥

Examples

>>> oc = arkid_client.OrgClient(...)
>>> org = oc.join_org_by_invitation_key(oid, invite_link_key)
>>> print('org: ', org)
query_node(**kwargs)

查询指定节点的信息 (GET /siteapi/v1/node/<node_uid>/)

Parameters:

node_uid (str)
节点的唯一标识

Examples

>>> nc = arkid_client.NodeClient(...)
>>> node = nc.query_node(node_uid)
>>> print('node is', node)
view_node(**kwargs)

用户查询指定节点的信息 (GET /siteapi/v1/ucenter/node/<node_uid>/)

Parameters:

node_uid (str)
节点的唯一标识

Examples

>>> nc = arkid_client.NodeClient(...)
>>> node = nc.view_node(node_uid)
>>> print('node is', node)
update_node(**kwargs)

修改指定节点的信息 (PATCH /siteapi/v1/node/<node_uid>/)

Parameters:

node_uid (str)
节点的唯一标识
json_body (dict)
节点的元信息, 参数详情请参考接口文档

Examples

>>> nc = arkid_client.NodeClient(...)
>>> node_data = {
>>>     'name': 'example'
>>> }
>>> node = nc.update_node(node_uid, node_data)
>>> print('node is', node)

External Documentation

关于 节点的元数据 详情请参阅API文档。

delete_node(**kwargs)

删除指定节点的信息 (DELETE /siteapi/v1/node/<node_uid>/)

Parameters:

node_uid (str)
节点的唯一标识
ignore_user (bool)
用于删除节点,当``true``时,若节点下有人员存在时, 会先将人员从节点内删除,再删除此节点。

Examples self.logger.info(“正在调用 NodeClient.delete_node() 接口与 ArkID 服务端进行交互”) >>> nc = arkid_client.NodeClient(…) >>> nc.delete_node(node_uid, ignore_user=True)

get_node_tree_list(**kwargs)

需要管理员权限,获取节点及其子孙节点列表,将某节点下 的子树以列表形式返回,包括该节点自身,前序遍历。 (GET /siteapi/v1/node/<node_uid>/list/)

Parameters:

node_uid (str)
节点的唯一标识

Examples

>>> nc = arkid_client.NodeClient(...)
>>> tree_list = nc.get_node_tree_list(node_uid)
>>> print('tree_list is', tree_list)
get_node_tree(**kwargs)

需要管理员权限,管理员访问到的数据将由管理范围决定, 数据包括从该节点起始的完整树。 (GET /siteapi/v1/node/<node_uid>/tree/)

Parameters:

node_uid (str)
节点的唯一标识
user_required (bool)
是否需要成员信息

Examples

>>> nc = arkid_client.NodeClient(...)
>>> tree = nc.get_node_tree(node_uid, user_required=True)
>>> print('tree is', tree)
view_node_tree(**kwargs)

普通用户访问节点下结构,访问到的数据将由节点可见范围决定, 数据包括从该节点起始的完整树。 (GET /siteapi/v1/ucenter/node/<node_uid>/tree/)

Parameters:

node_uid (str)
节点的唯一标识
user_required (bool)
是否需要成员信息

Examples

>>> nc = arkid_client.NodeClient(...)
>>> tree = nc.view_node_tree(node_uid, user_required=True)
>>> print('tree is', tree)
get_subnode(**kwargs)

获取指定节点的子节点信息 (GET /siteapi/v1/node/<node_uid>/node/)

Parameters:

node_uid (str)
节点的唯一标识

Examples

>>> nc = arkid_client.NodeClient(...)
>>> subnode = nc.get_subnode(node_uid)
>>> print('subnode is', subnode)
create_subnode(**kwargs)

创建指定节点的子节点 (POST /siteapi/v1/node/<node_uid>/node/)

Parameters:

node_uid (str)
节点的唯一标识
json_body (dict)
节点的元信息, 参数详情请参考接口文档

Examples

>>> nc = arkid_client.NodeClient(...)
>>> node_data = {
>>>     'name': 'example'
>>> }
>>> subnode = nc.create_subnode(node_uid, node_data)
>>> print('subnode is', subnode)

External Documentation

关于 节点的元数据 详情请参阅API文档。

add_subnode(**kwargs)

向指定节点添加子节点 (PATCH /siteapi/v1/node/<node_uid>/node/)

Parameters:

node_uid (str)
节点的唯一标识
node_uids (list)
节点唯一标识组成的列表

Examples

>>> nc = arkid_client.NodeClient(...)
>>> node_uids = [
>>>     'node1',
>>>     'node2',
>>>         ...
>>>     'noden'
>>> ]
>>> node = nc.add_subnode(node_uid, node_uids)
>>> print('node is', node)
sort_subnode(**kwargs)

对指定子节点按指定位置进行排序 (PATCH /siteapi/v1/node/<node_uid>/node/)

Parameters:

node_uid (str)
节点的唯一标识
node_uids (list)
节点唯一标识组成的列表

Examples

>>> nc = arkid_client.NodeClient(...)
>>> node_uids = [
>>>     'node1',
>>>     'node2',
>>>         ...
>>>     'noden'
>>> ]
>>> node = nc.sort_subnode(node_uid, node_uids)
>>> print('node is', node)
query_user_under_node(**kwargs)

查询指定节点下的直属人员的信息 (GET /siteapi/v1/node/<node_uid>/user/)

Parameters:

node_uid (str)
节点的唯一标识
**params (dict)
用户的元信息,参数详情请参考接口文档

Examples

>>> nc = arkid_client.NodeClient(...)
>>> users = nc.query_user_under_node(node_uid)
>>> for user in users:
>>>     print('user is', user)

External Documentation

关于 节点的元数据 详情请参阅API文档。

add_user_under_node(**kwargs)

向指定节点添加指定成员 (PATCH /siteapi/v1/node/<node_uid>/user/)

Parameters:

node_uid (str)
节点的唯一标识
user_uids (list)
用户唯一标识组成的列表

Examples

>>> nc = arkid_client.NodeClient(...)
>>> user_uids = [
>>>     'user1',
>>>     'user2',
>>>         ...
>>>     'usern'
>>> ]
>>> node = nc.add_user_under_node(node_uid, user_uids)
>>> print('node is', node)
delete_user_under_node(**kwargs)

从指定节点移除指定成员 (PATCH /siteapi/v1/node/<node_uid>/user/)

Parameters:

node_uid (str)
节点的唯一标识
user_uids (list)
用户唯一标识组成的列表

Examples

>>> nc = arkid_client.NodeClient(...)
>>> user_uids = [
>>>     'user1',
>>>     'user2',
>>>         ...
>>>     'usern'
>>> ]
>>> node = nc.delete_user_under_node(node_uid, user_uids)
>>> print('node is', node)
sort_user_under_node(**kwargs)

对指定人按指定位置进行排序 (PATCH /siteapi/v1/node/<node_uid>/user/)

Parameters:

node_uid (str)
节点的唯一标识
user_uids (list)
用户唯一标识组成的列表

Examples

>>> nc = arkid_client.NodeClient(...)
>>> user_uids = [
>>>     'user1',
>>>     'user2',
>>>         ...
>>>     'usern'
>>> ]
>>> node = nc.sort_user_under_node(node_uid, user_uids)
>>> print('node is', node)
override_user_under_node(**kwargs)

重置指定节点的指定用户 (PATCH /siteapi/v1/node/<node_uid>/user/)

Parameters:

node_uid (str)
节点的唯一标识
user_uids (list)
用户唯一标识组成的列表

Examples

>>> nc = arkid_client.NodeClient(...)
>>> user_uids = [
>>>     'user1',
>>>     'user2',
>>>         ...
>>>     'usern'
>>> ]
>>> node = nc.override_user_under_node(node_uid, user_uids)
>>> print('node is', node)
move_out_user_under_node(**kwargs)

将这些人从该节点移除,并加到指定节点 (PATCH /siteapi/v1/node/<node_uid>/user/)

Parameters:

node_uid (str)
节点的唯一标识
user_uids (list)
用户唯一标识组成的列表

Examples

>>> nc = arkid_client.NodeClient(...)
>>> user_uids = [
>>>     'user1',
>>>     'user2',
>>>         ...
>>>     'usern'
>>> ]
>>> node = nc.move_out_user_under_node(node_uid, user_uids)
>>> print('node is', node)