mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-04 16:31:13 +00:00
BigIntegerField
This commit is contained in:
@@ -33,10 +33,9 @@ from seahub.dingtalk.settings import ENABLE_DINGTALK, \
|
|||||||
DINGTALK_DEPARTMENT_LIST_DEPARTMENT_URL, \
|
DINGTALK_DEPARTMENT_LIST_DEPARTMENT_URL, \
|
||||||
DINGTALK_DEPARTMENT_GET_DEPARTMENT_URL, \
|
DINGTALK_DEPARTMENT_GET_DEPARTMENT_URL, \
|
||||||
DINGTALK_DEPARTMENT_GET_DEPARTMENT_USER_LIST_URL, \
|
DINGTALK_DEPARTMENT_GET_DEPARTMENT_USER_LIST_URL, \
|
||||||
DINGTALK_DEPARTMENT_USER_SIZE
|
DINGTALK_DEPARTMENT_USER_SIZE, DINGTALK_PROVIDER
|
||||||
|
|
||||||
DEPARTMENT_OWNER = 'system admin'
|
DEPARTMENT_OWNER = 'system admin'
|
||||||
DINGTALK_PROVIDER = 'dingtalk'
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -301,7 +300,7 @@ class AdminDingtalkDepartmentsImport(APIView):
|
|||||||
sub_department_resp_json = requests.get(DINGTALK_DEPARTMENT_LIST_DEPARTMENT_URL, params=data).json()
|
sub_department_resp_json = requests.get(DINGTALK_DEPARTMENT_LIST_DEPARTMENT_URL, params=data).json()
|
||||||
sub_department_list = sub_department_resp_json.get('department', [])
|
sub_department_list = sub_department_resp_json.get('department', [])
|
||||||
department_list = current_department_list + sub_department_list
|
department_list = current_department_list + sub_department_list
|
||||||
department_list = sorted(department_list, key=lambda x:x['dept_id'])
|
department_list = sorted(department_list, key=lambda x:x['id'])
|
||||||
|
|
||||||
# get department user list
|
# get department user list
|
||||||
data = {
|
data = {
|
||||||
@@ -322,7 +321,7 @@ class AdminDingtalkDepartmentsImport(APIView):
|
|||||||
# check department argument
|
# check department argument
|
||||||
new_group_name = department_obj.get('name')
|
new_group_name = department_obj.get('name')
|
||||||
department_obj_id = department_obj.get('id')
|
department_obj_id = department_obj.get('id')
|
||||||
parent_department_id = department_obj.get('parentid')
|
parent_department_id = department_obj.get('parentid', 0)
|
||||||
if department_obj_id is None or not new_group_name or not validate_group_name(new_group_name):
|
if department_obj_id is None or not new_group_name or not validate_group_name(new_group_name):
|
||||||
failed_msg = self._api_department_failed_msg(
|
failed_msg = self._api_department_failed_msg(
|
||||||
department_obj_id, new_group_name, '部门参数错误')
|
department_obj_id, new_group_name, '部门参数错误')
|
||||||
@@ -360,10 +359,9 @@ class AdminDingtalkDepartmentsImport(APIView):
|
|||||||
|
|
||||||
ExternalDepartment.objects.create(
|
ExternalDepartment.objects.create(
|
||||||
group_id=group_id,
|
group_id=group_id,
|
||||||
parent_group_id=parent_group_id,
|
provider=DINGTALK_PROVIDER,
|
||||||
outer_id=department_obj_id,
|
outer_id=department_obj_id,
|
||||||
outer_parent_id=parent_department_id,
|
outer_parent_id=parent_department_id,
|
||||||
provider=DINGTALK_PROVIDER,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
department_map_to_group_dict[department_obj_id] = group_id
|
department_map_to_group_dict[department_obj_id] = group_id
|
||||||
|
@@ -351,7 +351,7 @@ class AdminWorkWeixinDepartmentsImport(APIView):
|
|||||||
# check department argument
|
# check department argument
|
||||||
new_group_name = department_obj.get('name')
|
new_group_name = department_obj.get('name')
|
||||||
department_obj_id = department_obj.get('id')
|
department_obj_id = department_obj.get('id')
|
||||||
parent_department_id = department_obj.get('parentid')
|
parent_department_id = department_obj.get('parentid', 0)
|
||||||
if department_obj_id is None or not new_group_name or not validate_group_name(new_group_name):
|
if department_obj_id is None or not new_group_name or not validate_group_name(new_group_name):
|
||||||
failed_msg = self._api_department_failed_msg(
|
failed_msg = self._api_department_failed_msg(
|
||||||
department_obj_id, new_group_name, '部门参数错误')
|
department_obj_id, new_group_name, '部门参数错误')
|
||||||
@@ -389,10 +389,9 @@ class AdminWorkWeixinDepartmentsImport(APIView):
|
|||||||
|
|
||||||
ExternalDepartment.objects.create(
|
ExternalDepartment.objects.create(
|
||||||
group_id=group_id,
|
group_id=group_id,
|
||||||
parent_group_id=parent_group_id,
|
provider=WORK_WEIXIN_PROVIDER,
|
||||||
outer_id=department_obj_id,
|
outer_id=department_obj_id,
|
||||||
outer_parent_id=parent_department_id,
|
outer_parent_id=parent_department_id,
|
||||||
provider=WORK_WEIXIN_PROVIDER,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
department_map_to_group_dict[department_obj_id] = group_id
|
department_map_to_group_dict[department_obj_id] = group_id
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
# Copyright (c) 2012-2016 Seafile Ltd.
|
# Copyright (c) 2012-2016 Seafile Ltd.
|
||||||
import datetime
|
import datetime
|
||||||
import hashlib
|
import hashlib
|
||||||
from seahub.group.utils import group_id_to_name
|
|
||||||
import urllib.request, urllib.parse, urllib.error
|
import urllib.request, urllib.parse, urllib.error
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
@@ -173,10 +172,9 @@ class ExternalDepartmentManager(models.Manager):
|
|||||||
|
|
||||||
class ExternalDepartment(models.Model):
|
class ExternalDepartment(models.Model):
|
||||||
group_id = models.IntegerField(unique=True)
|
group_id = models.IntegerField(unique=True)
|
||||||
parent_group_id = models.IntegerField()
|
|
||||||
outer_id = models.IntegerField()
|
|
||||||
outer_parent_id = models.IntegerField()
|
|
||||||
provider = models.CharField(max_length=32)
|
provider = models.CharField(max_length=32)
|
||||||
|
outer_id = models.BigIntegerField()
|
||||||
|
outer_parent_id = models.BigIntegerField()
|
||||||
|
|
||||||
objects = ExternalDepartmentManager()
|
objects = ExternalDepartmentManager()
|
||||||
|
|
||||||
|
@@ -28,3 +28,6 @@ DINGTALK_DEPARTMENT_USER_SIZE = 100
|
|||||||
DINGTALK_MESSAGE_SEND_TO_CONVERSATION_URL = getattr(settings, 'DINGTALK_MESSAGE_SEND_TO_CONVERSATION_URL', 'https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2')
|
DINGTALK_MESSAGE_SEND_TO_CONVERSATION_URL = getattr(settings, 'DINGTALK_MESSAGE_SEND_TO_CONVERSATION_URL', 'https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2')
|
||||||
|
|
||||||
DINGTALK_GET_DETAILED_USER_INFO_URL = getattr(settings, 'DINGTALK_GET_DETAILED_USER_INFO_URL', 'https://oapi.dingtalk.com/user/get')
|
DINGTALK_GET_DETAILED_USER_INFO_URL = getattr(settings, 'DINGTALK_GET_DETAILED_USER_INFO_URL', 'https://oapi.dingtalk.com/user/get')
|
||||||
|
|
||||||
|
# constants
|
||||||
|
DINGTALK_PROVIDER = 'dingtalk'
|
||||||
|
@@ -248,6 +248,7 @@ INSTALLED_APPS = [
|
|||||||
'seahub.file_tags',
|
'seahub.file_tags',
|
||||||
'seahub.related_files',
|
'seahub.related_files',
|
||||||
'seahub.work_weixin',
|
'seahub.work_weixin',
|
||||||
|
'seahub.dingtalk',
|
||||||
'seahub.file_participants',
|
'seahub.file_participants',
|
||||||
'seahub.repo_api_tokens',
|
'seahub.repo_api_tokens',
|
||||||
'seahub.abuse_reports',
|
'seahub.abuse_reports',
|
||||||
|
@@ -1286,10 +1286,9 @@ CREATE TABLE `repo_auto_delete` (
|
|||||||
CREATE TABLE `external_department` (
|
CREATE TABLE `external_department` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
`group_id` int(11) NOT NULL,
|
`group_id` int(11) NOT NULL,
|
||||||
`parent_group_id` int(11) NOT NULL,
|
|
||||||
`outer_id` int(11) NOT NULL,
|
|
||||||
`outer_parent_id` int(11) NOT NULL,
|
|
||||||
`provider` varchar(32) NOT NULL,
|
`provider` varchar(32) NOT NULL,
|
||||||
|
`outer_id` bigint(20) NOT NULL,
|
||||||
|
`outer_parent_id` bigint(20) NOT NULL,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY `group_id` (`group_id`),
|
UNIQUE KEY `group_id` (`group_id`),
|
||||||
UNIQUE KEY `external_department_provider_outer_id_8dns6vkw_uniq` (`provider`,`outer_id`)
|
UNIQUE KEY `external_department_provider_outer_id_8dns6vkw_uniq` (`provider`,`outer_id`)
|
||||||
|
Reference in New Issue
Block a user