ArkID Client 集成之前所述的所有客户端(除认证客户端以外)的功能, 为用户提供统一的接口来访问 ArkID 的服务
arkid_client.client.ArkIDClient(base_url, authorizer=None, *args, **kwargs)[源代码]¶由各种 ArkID 客户端集成而生, 他提供的所有功能都只是各个客户端的简单封装, 用来一致对外界用户使用;默认加载的为 user 相关服务接口 当然,如果您足够熟悉本项目, 您也可以直接实例化所需要的指定客户端。
Methods
query_user()query_isolated_user()query_user()create_user()update_user()delete_user()query_specified_perm()query_own_org()query_org()create_org()delete_org()update_org()query_orguser()add_orguser()delete_orguser()query_orguser()update_orguser()get_org_invitation_key()refresh_org_invitation_key()view_org_by_invitation_key()join_org_by_invitation_key()query_node()view_node()update_node()delete_node()get_node_tree_list()get_node_tree()view_node_tree()get_subnode()create_subnode()add_subnode()sort_subnode()query_user_under_node()add_user_under_node()delete_user_under_node()override_user_under_node()sort_user_under_node()move_out_user_under_node()view_perm()view_profile()view_current_org()switch_current_org()query_apps()get_sms_captcha()verify_sms_captcha()query_all_perm()create_perm()query_perm()update_perm()query_perm_owner()update_perm_owner()query_specified_user_perm()update_specified_user_perm()query_dept_perm()update_dept_perm()query_group_perm()update_group_perm()query_node_perm()update_node_perm()query_app_list()create_app()query_app()update_app()delete_app()register_app()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)
- 成员邮箱
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)