Example #1
0
 def create(self, request, *args, **kwargs):
     '''
     * Set-Mailbox
     * https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/Set-Mailbox?view=exchange-ps
     * 新增/删除 用户smtp地址
     * Set-Mailbox -Identity wzx -EmailAddresses @{add='*****@*****.**'}
     * Set-Mailbox -Identity wzx -EmailAddresses @{remove='*****@*****.**'}
         - identity  联系人唯一标识 (Name,Alias,Distinguished name (DN),Canonical DN,domain name\\account name,Email address,GUID,LegacyExchangeDN,SamAccountName,User ID or user principal name (UPN))
         - EmailAddresses 邮箱地址
         - **kwargs 表示函数接收可变长度的关键字参数字典作为函数的输入
     '''
     try:
         # 1. 反序列化 将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象
         serializer = self.get_serializer(data=request.data)
         # 验证数据
         serializer.is_valid(raise_exception=True)
         headers = self.get_success_headers(serializer.data)
         data = serializer.data
         initial_data = serializer.initial_data
         kwargs = getkwargs(data, initial_data)
         result = SetMailboxEmailAddresses(data.get('identity'), **kwargs)
     except Exception as e:
         result = {
             "isSuccess": False,
             "message": '',
             'count': 0,
             'msg': str(e),
             'code': 2
         }
     insert_drf_api_log(request, str(result['isSuccess']), str(result))
     return Response(result, status=status.HTTP_200_OK)
Example #2
0
 def create(self, request, *args, **kwargs):
     '''
     * Set-DistributionGroup
     * https://docs.microsoft.com/en-us/powershell/module/exchange/users-and-groups/Set-DistributionGroup?view=exchange-ps
     * 设置群组邮箱
         - identity  联系人唯一标识 (Name,Alias,Distinguished name (DN),Canonical DN,Email address,GUID)
         - **kwargs 表示函数接收可变长度的关键字参数字典作为函数的输入
     '''
     try:
         # 1. 反序列化 将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象
         serializer = self.get_serializer(data=request.data)
         # 验证数据
         serializer.is_valid(raise_exception=True)
         headers = self.get_success_headers(serializer.data)
         data = serializer.data
         initial_data = serializer.initial_data
         kwargs = getkwargs(data, initial_data)
         result = SetDistributionGroup(data.get('identity'), **kwargs)
     except Exception as e:
         result = {
             "isSuccess": False,
             "message": '',
             'count': 0,
             'msg': str(e),
             'code': 2
         }
     insert_drf_api_log(request, str(result['isSuccess']), str(result))
     return Response(result, status=status.HTTP_200_OK)
Example #3
0
 def create(self, request, *args, **kwargs):
     '''
     * RNew-MailContact
     * https://docs.microsoft.com/en-us/powershell/module/exchange/users-and-groups/New-MailContact?view=exchange-ps
     * 新建联系人
         - Name =》CN,(displayname如果不写也会赋此值)  必须
         - ExternalEmailAddress  邮件地址  (必须)
         - **kwargs 表示函数接收可变长度的关键字参数字典作为函数的输入
     '''
     try:
         # 1. 反序列化 将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象
         serializer = self.get_serializer(data=request.data)
         # 验证数据
         serializer.is_valid(raise_exception=True)
         headers = self.get_success_headers(serializer.data)
         data = serializer.data
         initial_data = serializer.initial_data
         kwargs = getkwargs(data, initial_data)
         result = NewMailContacthight(data.get('Name'),
                                      data.get('ExternalEmailAddress'),
                                      **kwargs)
     except Exception as e:
         result = {
             "isSuccess": False,
             "message": '',
             'count': 0,
             'msg': str(e),
             'code': 2
         }
     insert_drf_api_log(request, str(result['isSuccess']), str(result))
     return Response(result, status=status.HTTP_200_OK)
Example #4
0
 def create(self, request, *args, **kwargs):
     '''
     * Enable-Mailbox
     * 官方url:https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/Enable-Mailbox?view=exchange-ps
     * 启用用户邮箱(启用归档邮箱)
         - identity 用户唯一标识(Name,Distinguished name (DN),Canonical DN,GUID)
         - ArchiveDatabase 数据库
         - **kwargs 表示函数接收可变长度的关键字参数字典作为函数的输入
     '''
     try:
         # 1. 反序列化 将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象
         serializer = self.get_serializer(data=request.data)
         # 验证数据
         serializer.is_valid(raise_exception=True)
         headers = self.get_success_headers(serializer.data)
         data = serializer.data
         initial_data = serializer.initial_data
         kwargs = getkwargs(data, initial_data)
         result = EnableMailboxarchive(data['identity'],
                                       data['ArchiveDatabase'], **kwargs)
     except Exception as e:
         result = {
             "isSuccess": False,
             "message": '',
             'count': 0,
             'msg': str(e),
             'code': 2
         }
     insert_drf_api_log(request, str(result['isSuccess']), str(result))
     return Response(result, status=status.HTTP_200_OK)
Example #5
0
 def create(self, request, *args, **kwargs):
     '''
     * Remove-ADPermission
     * https://docs.microsoft.com/zh-cn/powershell/module/exchange/active-directory/remove-adpermission?view=exchange-ps
     * 删除邮箱用户权限 代理发送权限
         - identity 用户DN(必须)
         - User 删除哪个用户的权限(必须)
         - **kwargs 表示函数接收可变长度的关键字参数字典作为函数的输入
     '''
     try:
         # 1. 反序列化 将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象
         serializer = self.get_serializer(data=request.data)
         # 验证数据
         serializer.is_valid(raise_exception=True)
         headers = self.get_success_headers(serializer.data)
         data = serializer.data
         initial_data = serializer.initial_data
         kwargs = getkwargs(data, initial_data)
         result = RemoveADPermissionhight(data.get('identity'),
                                          data.get('User'),
                                          parametername='InheritanceType',
                                          parametervalue='All',
                                          parametername0='ExtendedRights',
                                          parametervalue0='send-as',
                                          **kwargs)
     except Exception as e:
         result = {
             "isSuccess": False,
             "message": '',
             'count': 0,
             'msg': str(e),
             'code': 2
         }
     insert_drf_api_log(request, str(result['isSuccess']), str(result))
     return Response(result, status=status.HTTP_200_OK)
Example #6
0
 def create(self, request, *args, **kwargs):
     '''
     * Remove-MoveRequest
     * https://docs.microsoft.com/en-us/powershell/module/exchange/move-and-migration/Remove-MoveRequest?view=exchange-ps
     * 删除用户邮箱迁移请求
         - identity 移动请求用户的唯一标识(GUID,Distinguished name (DN),Domain\Account,User principal name (UPN),Legacy Exchange DN,SMTP address,Alias)
         - **kwargs 表示函数接收可变长度的关键字参数字典作为函数的输入
     '''
     try:
         # 1. 反序列化 将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象
         serializer = self.get_serializer(data=request.data)
         # 验证数据
         serializer.is_valid(raise_exception=True)
         headers = self.get_success_headers(serializer.data)
         data = serializer.data
         initial_data = serializer.initial_data
         kwargs = getkwargs(data, initial_data)
         result = RemoveMoveRequesthight(data.get('identity'), **kwargs)
     except Exception as e:
         result = {
             "isSuccess": False,
             "message": '',
             'count': 0,
             'msg': str(e),
             'code': 2
         }
     insert_drf_api_log(request, str(result['isSuccess']), str(result))
     return Response(result, status=status.HTTP_200_OK)
Example #7
0
 def create(self, request, *args, **kwargs):
     '''
     * Add-MailboxPermission
     * https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/Add-MailboxPermission?view=exchange-ps
     * 添加邮箱用户权限,添加完全访问权限
         - identity 联系人唯一标识(必须)(Name,Alias,Distinguished name (DN),Canonical DN,domain name\\account name,Email address,GUID,LegacyExchangeDN,SamAccountName,User ID or user principal name (UPN))
         - User 添加哪个用户的权限(必须)
         - **kwargs 表示函数接收可变长度的关键字参数字典作为函数的输入
     '''
     try:
         # 1. 反序列化 将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象
         serializer = self.get_serializer(data=request.data)
         # 验证数据
         serializer.is_valid(raise_exception=True)
         headers = self.get_success_headers(serializer.data)
         data = serializer.data
         initial_data = serializer.initial_data
         kwargs = getkwargs(data, initial_data)
         result = AddMailboxPermissionhight(data.get('identity'),
                                            data.get('User'),
                                            parametername='AccessRights',
                                            parametervalue='FullAccess',
                                            **kwargs)
     except Exception as e:
         result = {
             "isSuccess": False,
             "message": '',
             'count': 0,
             'msg': str(e),
             'code': 2
         }
     insert_drf_api_log(request, str(result['isSuccess']), str(result))
     return Response(result, status=status.HTTP_200_OK)
Example #8
0
 def create(self, request, *args, **kwargs):
     '''
     * get-ADPermission
     * https://docs.microsoft.com/en-us/powershell/module/exchange/active-directory/Get-ADPermission?view=exchange-ps
     * 获取邮箱用户权限,获取代理发送权限
         - identity 用户DN,如果有空格,需要用双引号括起来
         - **kwargs 表示函数接收可变长度的关键字参数字典作为函数的输入
     '''
     try:
         # 1. 反序列化 将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象
         serializer = self.get_serializer(data=request.data)
         # 验证数据
         serializer.is_valid(raise_exception=True)
         headers = self.get_success_headers(serializer.data)
         data = serializer.data
         initial_data = serializer.initial_data
         kwargs = getkwargs(data, initial_data)
         result = getADPermission(data.get('identity'), **kwargs)
     except Exception as e:
         result = {
             "isSuccess": False,
             "message": '',
             'count': 0,
             'msg': str(e),
             'code': 2
         }
     insert_drf_api_log(request, str(result['isSuccess']), str(result))
     return Response(result, status=status.HTTP_200_OK)
Example #9
0
 def create(self, request, *args, **kwargs):
     '''
     * New-MoveRequest
     * https://docs.microsoft.com/zh-cn/powershell/module/exchange/move-and-migration/new-moverequest?view=exchange-ps
     * 迁移用户邮箱和存档数据库
         - identity 用户唯一标识(必须)(GUID,Distinguished name (DN),Domain\Account,User principal name (UPN),LegacyExchangeDN,SMTP address,Alias)
         - TargetDatabase迁移用户邮箱的目标数据库(和ArchiveTargetDatabase至少要有一个)
         - ArchiveTargetDatabase迁移用户归档邮箱的目标数据库(和TargetDatabase至少要有一个)
         - **kwargs 表示函数接收可变长度的关键字参数字典作为函数的输入
     '''
     try:
         # 1. 反序列化 将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象
         serializer = self.get_serializer(data=request.data)
         # 验证数据
         serializer.is_valid(raise_exception=True)
         headers = self.get_success_headers(serializer.data)
         data = serializer.data
         initial_data = serializer.initial_data
         kwargs = getkwargs(data, initial_data)
         result = NewMoveRequest(data.get('identity'),
                                 data.get('TargetDatabase', None),
                                 data.get('ArchiveTargetDatabase', None),
                                 **kwargs)
     except Exception as e:
         result = {
             "isSuccess": False,
             "message": '',
             'count': 0,
             'msg': str(e),
             'code': 2
         }
     insert_drf_api_log(request, str(result['isSuccess']), str(result))
     return Response(result, status=status.HTTP_200_OK)
Example #10
0
 def create(self, request, *args, **kwargs):
     '''
     * get-mailboxdatabase
     * 官方url:https://docs.microsoft.com/en-us/powershell/module/exchange/mailbox-databases-and-servers/Get-MailboxDatabase?view=exchange-ps
     * 获取所有数据库名称/获取单一数据库信息
         - **kwargs 表示函数接收可变长度的关键字参数字典作为函数的输入
     '''
     try:
         # 1. 反序列化 将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象
         serializer = self.get_serializer(data=request.data)
         # 验证数据
         # serializer.is_valid(raise_exception=True)
         # headers = self.get_success_headers(serializer.data)
         # data = serializer.data
         kwargs = serializer.initial_data
         result = GetMailboxdatabase(**kwargs)
     except Exception as e:
         result = {
             "isSuccess": False,
             "message": '',
             'count': 0,
             'msg': str(e),
             'code': 2
         }
     insert_drf_api_log(request, str(result['isSuccess']), str(result))
     return Response(result, status=status.HTTP_200_OK)
Example #11
0
 def create(self, request, *args, **kwargs):
     '''
     * Get-ExchangeServer
     * https://docs.microsoft.com/en-us/powershell/module/exchange/organization/Get-ExchangeServer?view=exchange-ps
     * 获取邮箱服务器
         - **kwargs 表示函数接收可变长度的关键字参数字典作为函数的输入
     '''
     try:
         # 1. 反序列化 将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象
         serializer = self.get_serializer(data=request.data)
         kwargs = serializer.initial_data
         result = GetExchangeServer(**kwargs)
     except Exception as e:
         result = {
             "isSuccess": False,
             "message": '',
             'count': 0,
             'msg': str(e),
             'code': 2
         }
     insert_drf_api_log(request, str(result['isSuccess']), str(result))
     return Response(result, status=status.HTTP_200_OK)