dingtalk.client.api.user 源代码

# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals

from dingtalk.client.api.base import DingTalkBaseAPI


[文档]class User(DingTalkBaseAPI):
[文档] def auth_scopes(self): """ 获取CorpSecret授权范围 :return: """ return self._get('/auth/scopes')
[文档] def get_org_user_count(self, only_active): """ 获取企业员工人数 :param only_active: 是否包含未激活钉钉的人员数量 :return: 企业员工数量 """ return self._get( '/user/get_org_user_count', {'onlyActive': 0 if only_active else 1}, result_processor=lambda x: x['count'] )
[文档] def getuserinfo(self, code): """ 通过CODE换取用户身份 :param code: requestAuthCode接口中获取的CODE :return: """ return self._get( '/user/getuserinfo', {'code': code} )
[文档] def get(self, userid, lang='zh_CN'): """ 获取成员详情 :param userid: 员工在企业内的UserID,企业用来唯一标识用户的字段 :param lang: 通讯录语言(默认zh_CN,未来会支持en_US) :return: """ return self._get( '/user/get', {'userid': userid, 'lang': lang} )
[文档] def create(self, user_data): """ 创建成员 :param user_data: 用户信息 :return: userid """ return self._post( '/user/create', user_data, result_processor=lambda x: x['userid'] )
[文档] def update(self, user_data): """ 更新成员 :param user_data: 用户信息 :return: """ return self._post( '/user/update', user_data )
[文档] def delete(self, userid): """ 删除成员 :param userid: 员工在企业内的UserID,企业用来唯一标识用户的字段 :return: """ return self._get( '/user/delete', {'userid': userid} )
[文档] def batchdelete(self, user_ids): """ 批量删除成员 :param user_ids: 员工UserID列表。列表长度在1到20之间 :return: """ return self._post( '/user/delete', {'useridlist': list(user_ids)} )
[文档] def simple_list(self, department_id, offset=0, size=100, order='custom', lang='zh_CN'): """ 获取部门成员 :param department_id: 获取的部门id :param offset: 偏移量 :param size: 表分页大小,最大100 :param order: 排序规则 entry_asc 代表按照进入部门的时间升序 entry_desc 代表按照进入部门的时间降序 modify_asc 代表按照部门信息修改时间升序 modify_desc 代表按照部门信息修改时间降序 custom 代表用户定义排序 :param lang: 通讯录语言(默认zh_CN另外支持en_US) :return: """ return self._get( '/user/simplelist', { 'department_id': department_id, 'offset': offset, 'size': size, 'order': order, 'lang': lang } )
[文档] def list(self, department_id, offset=0, size=100, order='custom', lang='zh_CN'): """ 获取部门成员(详情) :param department_id: 获取的部门id :param offset: 偏移量 :param size: 表分页大小,最大100 :param order: 排序规则 entry_asc 代表按照进入部门的时间升序 entry_desc 代表按照进入部门的时间降序 modify_asc 代表按照部门信息修改时间升序 modify_desc 代表按照部门信息修改时间降序 custom 代表用户定义排序 :param lang: 通讯录语言(默认zh_CN另外支持en_US) :return: """ return self._get( '/user/list', { 'department_id': department_id, 'offset': offset, 'size': size, 'order': order, 'lang': lang } )
[文档] def get_admin(self): """ 获取管理员列表 :return: sys_level 管理员角色 1:主管理员,2:子管理员 """ return self._get( '/user/get_admin', result_processor=lambda x: x['admin_list'] )
[文档] def can_access_microapp(self, app_id, user_id): """ 获取管理员的微应用管理权限 :param app_id: 微应用id :param user_id: 员工唯一标识ID :return: 是否能管理该微应用 """ return self._get( '/user/can_access_microapp', {'appId': app_id, 'userId': user_id}, result_processor=lambda x: x['canAccess'] )
[文档] def get_userid_by_unionid(self, unionid): """ 根据unionid获取成员的userid :param unionid: 用户在当前钉钉开放平台账号范围内的唯一标识 :return: """ return self._get( '/user/getUseridByUnionid', {'unionid': unionid} )
[文档] def get_dept_member(self, dept_id): """ 获取部门用户userid列表 :param dept_id: 用户在当前钉钉开放平台账号范围内的唯一标识 :return 部门userid列表: """ return self._get( '/user/getDeptMember', {'deptId': dept_id}, result_processor=lambda x: x['userIds'] )
[文档] def listbypage(self, department_id, offset=0, size=100, order='custom', lang='zh_CN'): """ 获取部门用户 :param department_id: 获取的部门id :param offset: 偏移量 :param size: 表分页大小,最大100 :param order: 排序规则 entry_asc 代表按照进入部门的时间升序 entry_desc 代表按照进入部门的时间降序 modify_asc 代表按照部门信息修改时间升序 modify_desc 代表按照部门信息修改时间降序 custom 代表用户定义排序 :param lang: 通讯录语言(默认zh_CN另外支持en_US) :return: """ return self._get( '/user/list', { 'department_id': department_id, 'offset': offset, 'size': size, 'order': order, 'lang': lang } )
[文档] def get_admin_scope(self, userid): """ 查询管理员通讯录权限范围 :param userid: 用户id """ return self._top_request( "dingtalk.oapi.user.get_admin_scope", {"userid": userid}, result_processor=lambda x: x['dept_ids'] )