Esempio n. 1
0
def process_outgoing(value):
    try:
        process = get_api("process")
        if process:
            url = process.get("mess",'')
            value = json.dumps(value)
            headers = {
                "Content-Type": "application/json"
            }
            r = requests.post(url, data=value, headers=headers)
            # r = requests.post(url, data=value)
            resultinfo = r.json()
            # resultinfo = {"status": 0, "message": ""}
            # return resultinfo
        else:
            resultinfo = {"status": -1, "message": "没有这个接口"}
    except Exception as e:
        resultinfo = {"status":-1,"message":str(e)}
    if resultinfo["status"] != 0:
        logmanager().log(returnid=2, username='******', ip='process', message="process_outgoing,流程传入值接口:", issuccess=0, methodname=str(resultinfo), returnparameters=str(value),
                         types="process")
    else:
        logmanager().log(returnid=0, username='******', ip='process', message="process_outgoing,流程传入值接口:", issuccess=0, methodname=str(resultinfo), returnparameters=str(value),
                         types="process")
    return resultinfo
Esempio n. 2
0
def allowtobeIntrenet(id,message):
    try:
        if id and message:
            message_dict=ast.literal_eval(message)
            old_internet_now = message_dict.get("old_internet_now",'')
            new_internet = message_dict.get("new_internet", '')
            message_username = message_dict.get("username", '')
            if new_internet:
                if old_internet_now:
                    for old_internet_dict in ast.literal_eval(old_internet_now.replace("true","'true'").replace("false","'false'").replace("null","'null'")):
                        if old_internet_dict.get("name",''):
                            RemoveUserFromGroups = adapi().Initialapi("RemoveUserFromGroup", sAMAccountName=message_username, groupname=old_internet_dict.get("name",''))
                AddUserToGroups = adapi().Initialapi("AddUserToGroup", sAMAccountName=message_username, groupname=new_internet)
                if AddUserToGroups['isSuccess'] or ("对象已存在" in AddUserToGroups['message']):
                    updatepumailuser(id, 1)
                    result = {'isSuccess': True, "message": "主管审批同意网络权限"}
                else:
                    updatepumailuser(id, 2)
                    result = {'isSuccess': False, "message": "主管审批同意网络权限,加组失败"}
            else:
                updatepumailuser(id, 2)
                result = {'isSuccess': False, "message": "主管审批同意网络权限,传入空值"}
        else:
            result = {'isSuccess': False, "message": "主管审批同意网络权限,传入空值"}
        if not result['isSuccess']:
            logmanager().log(returnid=2, username='******', ip='172.0.0.0', message="allowtobeIntrenet,主管审批同意网络权限:", issuccess=0, methodname=id, returnparameters=str(message),
                             types="internet")
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
        logmanager().log(returnid=0, username='******', ip='172.0.0.0', message="allowtobeIntrenet,主管审批同意网络权限:" + str(e), issuccess=0, methodname=id, returnparameters=str(message),
                         types="internet")
    return result
Esempio n. 3
0
def removeallgroupmemberfromadmin(request):
    try:
        log = logmanager()
        post = request.POST
        itgroupname = post.get("groupname")
        username = request.session.get('username')
        ip = request.META.get('HTTP_X_FORWARDED_FOR',
                              request.META['REMOTE_ADDR'])
        if username.lower() == "administrator":
            removeallgroupmembervalue = adapi().Initialapi(
                "RemoveAllUserFromGroup", groupname=itgroupname)
            result = {
                "isSuccess": removeallgroupmembervalue['isSuccess'],
                "message": removeallgroupmembervalue['message']
            }
            log.log(returnid=1,
                    username=username,
                    ip=ip,
                    message="清空" + itgroupname + "群组成员",
                    returnparameters=str(removeallgroupmembervalue),
                    issuccess=1,
                    methodname="removeallgroupmemberfromadmin",
                    types="other")
            response = HttpResponse()
            response['Content-Type'] = "text/javascript"
            response.write(json.dumps(result))
            return response
        else:
            return HttpResponseRedirect('/', request)
    except Exception as e:
        return HttpResponseRedirect('/adminconfig/', request)
Esempio n. 4
0
    def run(self):
        try:
            applytypevalue = None
            if self.applytype == "新建邮箱群组":
                applytypevalue = "新建邮箱群组"
                new_mailgroup(self.id, self.applydetail, self.message)
            elif self.applytype == "新建公共邮箱":
                applytypevalue = "新建公共邮箱"
                new_pubmail(self.id, self.applydetail, self.message)
            elif self.applytype == "邮箱群组权限申请":
                applytypevalue = "邮箱群组权限申请"
                mailgrouppermession(self.id, self.applydetail, self.message)
            elif self.applytype == "成为邮箱群组管理者":
                applytypevalue = "成为邮箱群组管理者"
                allowtobemanager(self.id, self.applydetail, self.message)
            elif self.applytype == "成为公共邮箱管理者":
                applytypevalue = "成为公共邮箱管理者"
                allowtobepublicmailmanager(self.id, self.applydetail, self.message)
            elif self.applytype == "申请上网权限组权限" or self.applytype == "申请无线权限组权限" or self.applytype == "申请VPN权限组权限" or self.applytype == "申请权限组权限":
                applytypevalue = self.applytype
                allowtobeIntrenet(self.id, self.message)
            sendmailtouser(applytypevalue,self.applydetail,self.adaccount)

        except Exception as e:
            log = logmanager()
            log.log(returnid=0, message="审批"+self.id+"申请单", issuccess=0, methodname="flow_agree", returnparameters=str(e),types="other")
            updatepumailuser(self.id, 2)
Esempio n. 5
0
def usershowid(request):
    log = logmanager()
    username = request.session.get('username')
    displayname = request.session.get('displayname')
    messagelast = ""
    if username:
        try:
            post = request.POST
            id = post.get('id')
            message = showid(id)
            if len(message):
                if message[0]['adaccount'].lower() == username.lower():
                    messagelast = message
        except Exception as e:
            log.log(returnid=0,
                    username=username,
                    message=username + "获取申请记录详细",
                    returnparameters=str(e),
                    issuccess=0,
                    methodname="showmailpubapp",
                    types="exchange")
            print(e)
        result = {'status': messagelast}
        return HttpResponse(json.dumps(result, cls=DatetimeEncoder),
                            content_type="application/json")
    else:
        return HttpResponseRedirect('/', request)
Esempio n. 6
0
def close_account():
    close = Close_account()
    close.start()
    log = logmanager()
    log.log(returnid=1,
            username='******',
            message='启动定时任务删除账号',
            methodname="Close_account",
            types="AD",
            issuccess=1)
Esempio n. 7
0
def sendjzsch():
    send_wechat = Sendsched()
    send_wechat.start()
    log = logmanager()
    log.log(returnid=1,
            username='******',
            message='启动调用定时通知',
            methodname="Close_account",
            types="AD",
            issuccess=1)
Esempio n. 8
0
def showmailpumangaer(request):
    log = logmanager()
    username = request.session.get('username')
    try:
        pubmes = get_management_configuration()
        mess = adapi().postapi(
            'GetUserFromLdap',
            ldaps='(&(objectCategory=person)(objectClass=user)(mail=*) (' +
            pubmes['pubmailfence'] + '=' + username + '))',
            path=pubmes['pubmailou'])
        temptable = []
        if mess['isSuccess']:
            for i in mess['message']:
                if i.get('useraccountcontrol', ['None'])[0] == 514 or i.get(
                        'useraccountcontrol', ['None'])[0] == 546 or i.get(
                            'useraccountcontrol',
                            ['None'])[0] == 4130 or i.get(
                                'useraccountcontrol', ['None'])[0] == 4198:
                    pass
                else:
                    mangefenc = pubmes['pubmailfence'].lower()
                    lastpwd = adapi().Initialapi(
                        'GetobjectProperty',
                        objects=i['samaccountname'][0],
                        objectClass='user')
                    temptable.append({
                        'samaccountname':
                        i.get('samaccountname', ['None'])[0],
                        'physicaldeliveryofficename':
                        i.get(mangefenc, ['None'])[0],
                        'displayname':
                        i.get('displayname', ['None'])[0],
                        'mail':
                        i.get('mail', ['None'])[0],
                        'PasswordExpirationDate':
                        lastpwd['message'][0].get('PasswordExpirationDate',
                                                  'None')
                    })
    except Exception as e:
        log.log(returnid=1,
                username=username,
                message=username + "登录获取公共邮箱管理者账号信息",
                returnparameters=str(e),
                issuccess=1,
                methodname="showmailpumangaer",
                types="exchange")
        print(e)
    result = {'status': temptable}
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Esempio n. 9
0
def delmailmemberfromadmin(request):
    try:
        log = logmanager()
        post = request.POST
        itgroupname = post.get("groupname")
        username = request.session.get('username')
        ip = request.META.get('HTTP_X_FORWARDED_FOR',
                              request.META['REMOTE_ADDR'])
        groupmembersvalue = request.POST.get('groupmembersvalue')

        if username.lower() == "administrator":
            removevalue = adapi().Initialapi("RemoveUserFromGroup",
                                             sAMAccountName=groupmembersvalue,
                                             groupname=itgroupname)
            if removevalue['isSuccess']:
                lastvalue = True
                message = ""
                log.log(returnid=1,
                        username=username,
                        ip=ip,
                        message="删除" + itgroupname + "群组信息成员" +
                        str(groupmembersvalue),
                        returnparameters=str(removevalue),
                        issuccess=1,
                        methodname="delmailmember",
                        types="exchange")
            else:
                lastvalue = False
                message = removevalue['message']
                log.log(returnid=0,
                        username=username,
                        ip=ip,
                        message="删除" + itgroupname + "群组信息成员" +
                        str(groupmembersvalue),
                        returnparameters=str(removevalue),
                        issuccess=0,
                        methodname="delmailmember",
                        types="exchange")
            result = {"lastvalue": lastvalue, "message": message}
            response = HttpResponse()
            response['Content-Type'] = "text/javascript"
            response.write(json.dumps(result))
            return response
        else:
            return HttpResponseRedirect('/', request)
    except Exception as e:
        return HttpResponseRedirect('/adminconfig/', request)
Esempio n. 10
0
def systemlog_permission(request):
    log = logmanager()
    ip = request.META.get('HTTP_X_FORWARDED_FOR', request.META['REMOTE_ADDR'])
    username = request.session.get('username')
    samcoun = request.POST.get('samcoun')
    try:
        if userisinitgroup(username):
            message = True
        else:
            message = False
    except Exception as e:
        message = False
    result = message
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Esempio n. 11
0
def pumailaccid(request):
    log = logmanager()
    username = request.session.get('username')
    displayname = request.session.get('displayname')
    ip = request.META.get('HTTP_X_FORWARDED_FOR', request.META['REMOTE_ADDR'])
    post = request.POST
    id = post.get("id")
    try:
        folowvalue = showid(id)[0]
        if folowvalue['director'].lower() == username.lower():
            updatepumailuser(id, 0)
            flow_agree(folowvalue)
            status = 1
            log.log(returnid=1,
                    username=username,
                    ip=ip,
                    message="同意申请单ID" + str(id),
                    issuccess=1,
                    methodname="pumailaccid",
                    types="other")
        else:
            status = 0
            log.log(returnid=0,
                    username=username,
                    ip=ip,
                    message="同意申请单ID" + str(id),
                    issuccess=0,
                    returnparameters="越权!",
                    methodname="pumailaccid",
                    types="other")
    except Exception as e:
        status = 0
        log.log(returnid=0,
                username=username,
                ip=ip,
                message="同意申请单ID" + str(id),
                issuccess=0,
                returnparameters=str(e),
                methodname="pumailaccid",
                types="other")
    result = {'status': status}
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Esempio n. 12
0
def showmailpubreview(request):
    log = logmanager()
    username = request.session.get('username')
    try:
        row = searchrevier(username)

    except Exception as e:
        log.log(returnid=0,
                username=username,
                message=username + "获取审批记录",
                returnparameters=str(e),
                issuccess=0,
                methodname="showmailpubreview",
                types="exchange")
    result = {'status': row}
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result, cls=DatetimeEncoder))
    return response
Esempio n. 13
0
def approvalapi (request):
    try:
        id = request.POST.get("id") #审批ID
        types = request.POST.get("types") #类型 (DFS 或者非DFS)
        status = request.POST.get("status")  #审批意见(1:同意,0:不同意)
        if id == None or types == None or status == None:
            isSuccess = False
            message = "参数不完整"
        else:
            log = logmanager()
            if types == "DFS":
                # DFS审批同意方法
                if status ==1 or status == "1":
                    thr_all_process_sucapproval(id)
                # DFS 主管审批不同意方法
                else:
                    now = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
                    approvalresult = directorapproval('0', now, '4', id)
            else:
                if status == 1 or status == "1":
                    folowvalue = showid(id)[0]
                    if folowvalue['flowstatus'] == 0:
                        updatepumailuser(id, 0)
                        flow_agree(folowvalue)
                else:
                    updatepumailuser_allow(id, 3)
            if status == 1 or status == "1":
                log.log(returnid=1, username="******", message="同意申请单ID" + str(id)+",类型"+ str(types), issuccess=1,
                        methodname="approvalapi", types="other")
            else:
                log.log(returnid=1, username="******",message="拒绝申请单ID" + str(id)+",类型"+ str(types), issuccess=1,
                methodname="approvalapi", types="other")
            isSuccess = True
            message = "审批意见已提交"
    except Exception as e:
        isSuccess = False
        message = str(e)
    result = {"isSuccess": isSuccess, "message": message}
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Esempio n. 14
0
def addgroupmembersfromadmin(request):
    try:
        log = logmanager()
        post = request.POST
        itgroupname = post.get("groupname")
        username = request.session.get('username')
        ip = request.META.get('HTTP_X_FORWARDED_FOR',
                              request.META['REMOTE_ADDR'])
        groupmembersvalue = request.POST.get('groupmembersvalue')

        if username.lower() == "administrator":
            groupmembersvaluelist = groupmembersvalue.split("\n")
            if len(groupmembersvaluelist) == 0:
                isSuccess = False
                message = ""
                lenerrorlist = 0
                log.log(returnid=1,
                        username=username,
                        ip=ip,
                        message="添加" + itgroupname + "收件人权限",
                        returnparameters=str(groupmembersvalue),
                        issuccess=1,
                        methodname="addgroupmembers",
                        types="exchange")
            else:
                erruserlist = list()
                for i in groupmembersvaluelist:
                    if i != "":
                        memberadvalue = adapi().Initialapi_noskey(
                            "ObjectExists", objectName=i, catalog="user")
                        if memberadvalue:
                            addreturnvalue = adapi().Initialapi(
                                "AddUserToGroup",
                                sAMAccountName=i,
                                groupname=itgroupname)
                            log.log(returnid=1,
                                    username=username,
                                    ip=ip,
                                    message="添加" + itgroupname + "收件人权限" +
                                    str(i),
                                    returnparameters=str(addreturnvalue),
                                    issuccess=1,
                                    methodname="addgroupmembers",
                                    types="exchange")
                            if not (
                                    addreturnvalue['isSuccess']
                            ) and "对象已存在" not in addreturnvalue['message']:
                                if i not in erruserlist:
                                    erruserlist.append(i)
                        else:
                            membergroupadvalue = adapi().Initialapi_noskey(
                                "ObjectExists", objectName=i, catalog="group")
                            if membergroupadvalue:
                                addreturnvalue = adapi().Initialapi(
                                    "AddUserToGroup",
                                    sAMAccountName=i,
                                    groupname=itgroupname)
                                log.log(returnid=1,
                                        username=username,
                                        ip=ip,
                                        message="添加" + itgroupname + "收件人权限" +
                                        str(i),
                                        returnparameters=str(addreturnvalue),
                                        issuccess=1,
                                        methodname="addgroupmembers",
                                        types="exchange")
                                if not (
                                        addreturnvalue['isSuccess']
                                ) and "对象已存在" not in addreturnvalue['message']:
                                    if i not in erruserlist:
                                        erruserlist.append(i)
                            else:
                                log.log(returnid=0,
                                        username=username,
                                        ip=ip,
                                        message="添加" + itgroupname + "收件人权限" +
                                        str(i),
                                        returnparameters="找不到" + str(i),
                                        issuccess=0,
                                        methodname="addgroupmembers",
                                        types="exchange")
                                if i not in erruserlist:
                                    erruserlist.append(i)
                isSuccess = True
                message = '
'.join(erruserlist)
                lenerrorlist = len(erruserlist)
            result = {
                "isSuccess": isSuccess,
                "message": message,
                "lenerrorlist": lenerrorlist
            }
            response = HttpResponse()
            response['Content-Type'] = "text/javascript"
            response.write(json.dumps(result))
            return response
        else:
            return HttpResponseRedirect('/', request)
    except Exception as e:
        return HttpResponseRedirect('/adminconfig/', request)
Esempio n. 15
0
 def run(self):
     log = logmanager()
     account = Sendsched_account()
     today = datetime.datetime.now()  # 获取当天时间
     today_new = today.strftime('%Y-%m-%d')  # 将时间格式转换为字符串
     tomorrow = today + datetime.timedelta(days=1)  # 拼接明天时间(到期前1天)
     tomorrow = tomorrow.strftime('%Y-%m-%d')  # 对时间格式化,转换成字符串
     The_day_after_tomorrow = today + datetime.timedelta(
         days=2)  # 拼接后天时间(到期前2天)
     The_day_after_tomorrow = The_day_after_tomorrow.strftime(
         '%Y-%m-%d')  # 对时间格式化,转换成字符串
     Three_days_from_now = today + datetime.timedelta(
         days=3)  # 拼接大后天时间(到期前3天)
     Three_days_from_now = Three_days_from_now.strftime(
         '%Y-%m-%d')  # 对时间格式化,转换成字符串
     if account != '':
         for i in account:
             deadtime = i['deadtime']
             deadtime_new = deadtime.strftime('%Y-%m-%d %H:%M:%S')
             expire = deadtime
             jzcount = i['jzcount']
             displayname = i['displayname']
             phone = i['phone']
             sqname = i['sqname']
             sqmail = i['sqmail']
             expire = expire.strftime('%Y-%m-%d')  # 将datetime.date形式 转换成字符串
             message = '您好,您的兼职账号' + jzcount + '将于' + deadtime_new + '到期,如需继续使用请联系' + sqname + '进行续约,到期后将会被删除,并无法恢复,如不需使用,请忽略此条信息'
             mailmessage = '您好,兼职账号' + jzcount + '将于' + deadtime_new + '到期,如需继续请及时续约,到期后将会被删除,并无法恢复,如不需使用请及时关闭或等待自动关闭'
             if expire == today_new:
                 subject = "兼职账号关闭当天提醒"
                 Send_message(phone, message)
                 tolist = [sqmail]
                 Send_mail = send_html_email(subject, mailmessage, tolist)
                 log.log(returnid=1,
                         username='******',
                         message=jzcount + "兼职账号关闭当天提醒" + '通知手机' + phone +
                         '通知MAIL' + tolist,
                         methodname="Sendsched",
                         types="AD",
                         issuccess=1)
             if expire == tomorrow:  # 到期前1天提醒,时间字符串对比
                 subject = "兼职账号关闭前一天提醒"
                 Send_message(phone, message)
                 tolist = [sqmail]
                 Send_mail = send_html_email(subject, mailmessage, tolist)
                 log.log(returnid=1,
                         username='******',
                         message=jzcount + "兼职账号关闭前一天提醒" + '通知手机' + phone +
                         '通知MAIL' + tolist,
                         methodname="Sendsched",
                         types="AD",
                         issuccess=1)
             if expire == The_day_after_tomorrow:  # 到期前2天提醒,时间字符串对比
                 subject = "兼职账号关闭前两天提醒"
                 Send_message(phone, message)
                 tolist = [sqmail]
                 Send_mail = send_html_email(subject, mailmessage, tolist)
                 log.log(returnid=1,
                         username='******',
                         message=jzcount + "兼职账号关闭前两天提醒" + '通知手机' + phone +
                         '通知MAIL' + tolist,
                         methodname="Sendsched",
                         types="AD",
                         issuccess=1)
             if expire == Three_days_from_now:  # 到期前3天提醒,时间字符串对比
                 subject = "兼职账号关闭前三天提醒"
                 Send_message(phone, message)
                 tolist = [sqmail]
                 Send_mail = send_html_email(subject, mailmessage, tolist)
                 log.log(returnid=1,
                         username='******',
                         message=jzcount + "兼职账号关闭前三天提醒" + '通知手机' + phone +
                         '通知MAIL' + tolist,
                         methodname="Sendsched",
                         types="AD",
                         issuccess=1)
         result = False
         return result
     else:
         log.log(returnid=0,
                 username='******',
                 message='账号为空,没有执行',
                 methodname="Sendsched",
                 types="AD",
                 issuccess=0)
         result = False
         return result
Esempio n. 16
0
 def run(self):
     account = getCloseaccount()
     log = logmanager()
     if account != '':
         for i in account:
             Closeaccount = i['jzcount']
             id = i['id']  #数据库ID
             status = '4'  # 4到期自动关闭
             nowdeadtime = datetime.datetime.now().strftime(
                 '%Y-%m-%d %H:%M:%S')  #当前时间
             jzound = get_PermissionsGrops()['jz_account_dn']  #获取兼职DN
             jzcountdn = adapi().Initialapi('ObjectExistsOU',
                                            objectName=Closeaccount,
                                            catalog='user',
                                            ouname=jzound)  #判断账号是否在兼职账号OU中
             property = adapi().Initialapi('GetuseraccountExpires',
                                           objects=Closeaccount)
             if property['isSuccess']:
                 propertydate = property['message']  #从AD中获取账号到期时间
                 propertydate = datetime.datetime.strptime(
                     propertydate,
                     "%Y/%m/%d %H:%M:%S")  # 将时间字符串转换成datetime.date形式
                 propertydate = propertydate.strftime(
                     '%Y-%m-%d %H:%M:%S')  # 将datetime.date形式 转换成字符串
                 if jzcountdn == True and propertydate <= nowdeadtime:
                     dejzcount = adapi().Initialapi('delaccount',
                                                    username=Closeaccount)
                     log.log(returnid=1,
                             username='******',
                             message=Closeaccount + '调用API删除账号,状态未知',
                             methodname="Close_account",
                             types="AD",
                             issuccess=1)
                     if dejzcount['isSuccess']:
                         log.log(returnid=1,
                                 username='******',
                                 message=Closeaccount + '账号删除成功',
                                 methodname="Close_account",
                                 types="AD",
                                 issuccess=1)
                         updel_jzcountid(status, id)
                     else:
                         print('账号删除失败')
                         log.log(returnid=0,
                                 username='******',
                                 message=Closeaccount + '账号删除失败',
                                 methodname="Close_account",
                                 types="AD",
                                 issuccess=0)
                 else:
                     print('账号不在特定OU或账号在AD中未到期')
                     log.log(returnid=0,
                             username='******',
                             message=Closeaccount +
                             '删除失败,账号不在特定OU或账号在AD中未到期',
                             methodname="Close_account",
                             types="AD",
                             issuccess=0)
             else:
                 print('未知错误')
                 log.log(returnid=0,
                         username='******',
                         message=Closeaccount + '未知错误',
                         methodname="Close_account",
                         types="AD",
                         issuccess=0)
     else:
         print('账号为空')
Esempio n. 17
0
def access(request):
    try:
        username = request.session.get('username')
        displayname = request.session.get('displayname')
        ip = request.META.get('HTTP_X_FORWARDED_FOR', request.META['REMOTE_ADDR'])
        if username:
            internet_group_now = []
            wifi_group_now = []
            vpn_group_now = []
            internet_group_now_des = []
            wifi_group_now_des = []
            vpn_group_now_des = []
            internet_group_list = []
            wifi_group_list = []
            vpn_group_list = []
            get_management_configurations = get_management_configuration()
            if get_management_configurations :
                if get_management_configurations.get('internet_group',''):
                    internet_group_list= ast.literal_eval(get_management_configurations.get('internet_group','').replace("true", "'true'").replace("false", "'false'").replace("null", "'null'")) #上网权限,
                if get_management_configurations.get('wifi_group', ''):
                    wifi_group_list = ast.literal_eval(get_management_configurations.get('wifi_group', '').replace("true", "'true'").replace("false", "'false'").replace("null", "'null'")) #无线权限
                if get_management_configurations.get('vpn_group', ''):
                    vpn_group_list = ast.literal_eval(get_management_configurations.get('vpn_group', '').replace("true", "'true'").replace("false", "'false'").replace("null", "'null'"))  #VPN权限
                #确定用户权限
                #获取用户属性
                GetobjectPropertys = adapi().Initialapi("GetobjectProperty", objects=username, objectClass='user')
                if GetobjectPropertys['isSuccess']:
                    memberof = GetobjectPropertys['message'][0].get("memberof", '')
                    if memberof:
                        for member in memberof:
                            for internet_group in internet_group_list:
                                internet_group_name = internet_group.get("name",'')
                                internet_group_cn = "CN=" + str(internet_group_name) + ","
                                if internet_group_cn in member:
                                    internet_group_now.append(internet_group)
                            for wifi_group in wifi_group_list:
                                wifi_group_name = wifi_group.get("name",'')
                                wifi_group_cn = "CN=" + str(wifi_group_name) + ","
                                if wifi_group_cn in member:
                                    wifi_group_now.append(wifi_group)
                            for vpn_group in vpn_group_list:
                                vpn_group_name = vpn_group.get("name",'npne')
                                vpn_group_cn = "CN=" + str(vpn_group_name) + ","
                                if vpn_group_cn in member:
                                    vpn_group_now.append(vpn_group)
                if internet_group_list and internet_group_now:
                    for internet_group_now_str in internet_group_now:
                        internet_group_now_des.append(internet_group_now_str.get("description",''))
                        # internet_group_list.remove(internet_group_now_str)
                if wifi_group_list and wifi_group_now:
                    for wifi_group_now_str in wifi_group_now:
                        wifi_group_now_des.append(wifi_group_now_str.get("description", ''))
                        # wifi_group_list.remove(wifi_group_now_str)
                if vpn_group_list and vpn_group_now:
                    for vpn_group_now_str in vpn_group_now:
                        vpn_group_now_des.append(vpn_group_now_str.get("description", ''))
                        # vpn_group_list.remove(vpn_group_now_str )

            return render_to_response('internetweb/access.html', locals())
        else:
            return HttpResponseRedirect('/', request)
    except Exception as e:
        logmanager().log(returnid=0, username=username, ip=ip, message="access,网络权限申请页面:"+str(e), issuccess=0, methodname="access",returnparameters = str(request.POST), types="internet")
        return HttpResponseRedirect('/', request)
Esempio n. 18
0
def saveInternet(request):
    username = request.session.get('username')
    displayname = request.session.get('displayname')
    ip = request.META.get('HTTP_X_FORWARDED_FOR', request.META['REMOTE_ADDR'])
    old_internet_now = request.POST.get('old_internet_now',"") #旧权限组可为空
    new_internet = request.POST.get('new_internet',"") #新权限组,不可为空
    type_internet = request.POST.get('type_internet', "")  # 权限类型,不可为空
    if username:
        try:
            if new_internet and type_internet:
                types = 'internet'
                if type_internet =="access":
                    manger = getmanger(username, "networkmanger")
                    applytype = "申请上网权限组权限"
                elif type_internet =="wifi":
                    manger = getmanger(username, "networkmanger")
                    applytype = "申请无线权限组权限"
                elif type_internet =="vpn":
                    manger = getmanger(username, "vnpmanger")
                    applytype = "申请VPN权限组权限"
                else:
                    manger = getmanger(username, "networkmanger")
                    applytype = "申请权限组权限"
                process = get_api("process")
                message = str({'old_internet_now': old_internet_now, "new_internet": new_internet, "type_internet": type_internet, "username": username})
                if process:
                    insert_pubmailflow_processs = insert_pubmailflow_process(ip, username, displayname, types, applytype, new_internet, director='系统', message=message)
                    if insert_pubmailflow_processs:
                        value = {"status": 0,
                                 "message": {"id": insert_pubmailflow_processs['id'], "username": username, "displayname": displayname, "types": types, "applytype": applytype, "applydetail": new_internet}}
                        process_outgoings = process_outgoing(value)
                        if process_outgoings['status']==0:
                            result = {'isSuccess': True, "message": "权限申请成功"}
                        else:
                            result = {'isSuccess': False, "message": "插入数据库,调用流程接口失败"}
                    else:
                        result = {'isSuccess': False, "message": "未能插入数据库"}
                elif manger:
                    insert_pubmailflowds = insert_pubmailflow(ip, username, displayname, types, applytype, new_internet, director=manger, message=message)
                    if insert_pubmailflowds==():#申请权限插入数据库成功
                        mangervalue = adapi().Initialapi("GetobjectProperty", objects=manger, objectClass="user")
                        if mangervalue['isSuccess']:
                            subject = u'您有一个新申请单待审批'
                            submit_time = datetime.now()
                            emaillists = [{"username":username,"displayname":displayname,"applytype":applytype,"new_internet":new_internet,"submit_time":submit_time}]
                            email_data = {'emaillists': emaillists,"username":username}
                            template = "internetweb/interdirectoremail.html"
                            to_list = [mangervalue['message'][0]['mail']]
                            send_email_by_template(subject, template, email_data, to_list)
                        result = {'isSuccess': True, "message": "权限申请成功"}
                    else:
                        result = {'isSuccess': False, "message": "未能插入数据库"}
                else:
                    result = {'isSuccess': False, "message": "没有获取到主管"}
            else:
                result = {'isSuccess': False, "message": "传入空值"}
            if not result['isSuccess']:
                logmanager().log(returnid=2, username=username, ip=ip, message="saveInternet,申请网络权限:", issuccess=0, methodname="saveInternet", returnparameters=str(request.POST),
                                 types="internet")
        except Exception as e:
            result = {'isSuccess': False, "message": str(e)}
            logmanager().log(returnid=0, username=username, ip=ip, message="saveInternet,申请网络权限:" + str(e), issuccess=0, methodname="saveInternet", returnparameters=str(request.POST),
                             types="internet")
        response = HttpResponse()
        response['Content-Type'] = "text/javascript"
        response.write(json.dumps(result))
        return response
    else:
        return HttpResponseRedirect('/', request)
Esempio n. 19
0
def psdpubmailset(request):
    log = logmanager()
    ip = request.META.get('HTTP_X_FORWARDED_FOR', request.META['REMOTE_ADDR'])
    username = request.session.get('username')
    samcoun = request.POST.get('samcoun')
    mailaddress = request.session.get('mail')
    try:
        configsql = getmailou_new()
        publicmailconfig = configsql[0]['pubmailou']
        pubmailfence = configsql[0]['pubmailfence']
        if pubmailfence != "" and pubmailfence != None:
            pubmailfencelastvalue = pubmailfence
        else:
            pubmailfencelastvalue = "physicalDeliveryOfficeName"
        if publicmailconfig != "" and publicmailconfig != None:
            ad_path = publicmailconfig
        else:
            ad_path = dbinfo_select_global_configuration()[0]['ad_path']
        publicmailvalue = adapi().postapi(
            'GetUserFromLdap',
            ldaps=
            '(&(objectCategory=person)(objectClass=user)(mail=*) (sAMAccountName='
            + samcoun + '))',
            path=ad_path)
        if publicmailvalue['isSuccess'] and publicmailvalue['Count'] != 0:
            publicmailvaluemessage = publicmailvalue['message'][0]
            managervalue = publicmailvaluemessage.get(
                pubmailfencelastvalue.lower(), [None])[0]
            if managervalue.lower() == username.lower():
                passwd = genpwd()
                message = adapi().Initialapi('ResetPasswordByOU',
                                             username=samcoun,
                                             newpassword=passwd)
                if message['isSuccess']:
                    subject = u'公共邮箱密码重置'
                    emaillists = '您的公共邮箱:' + samcoun + '已经重置密码,新密码为' + passwd + ',请妥善保管密码,并同步给使用此公共邮箱的同事'
                    email_data = {'emaillists': emaillists}
                    template = "mailmould/sendmailpassword.html"
                    to_list = [mailaddress]
                    send_email_by_template(subject, template, email_data,
                                           to_list)
                    log.log(returnid=1,
                            username=username,
                            ip=ip,
                            message=username + "重置公共邮箱密码",
                            returnparameters='密码修改成功',
                            issuccess=1,
                            methodname="psdpubmailset",
                            types="AD")
                else:
                    message = {
                        'message': {
                            'message': '重置失败。'
                        },
                        'isSuccess': False
                    }
                    log.log(returnid=0,
                            username=username,
                            ip=ip,
                            message=username + "重置公共邮箱密码",
                            returnparameters=str(message),
                            issuccess=0,
                            methodname="psdpubmailset",
                            types="AD")
            else:
                message = {'message': {'message': '越权操作。'}, 'isSuccess': False}
    except Exception as e:
        message = {'message': {'message': '异常。'}, 'isSuccess': False}
        print(e)
        log.log(returnid=0,
                username=username,
                ip=ip,
                message=username + "重置公共邮箱密码",
                returnparameters=str(e),
                issuccess=0,
                methodname="psdpubmailset",
                types="AD")
    result = message
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Esempio n. 20
0
def updatepubmess(request):
    log = logmanager()
    username = request.session.get('username')
    ip = request.META.get('HTTP_X_FORWARDED_FOR', request.META['REMOTE_ADDR'])
    pubmailadd = request.POST.get('pubmailadd')
    samcoun = request.POST.get('sancount')
    displaypub = request.POST.get('displaypub')
    pbmanger = request.POST.get('pbmanger')
    oldmanger = request.POST.get('oldmanger')
    try:
        configsql = getmailou_new()
        publicmailconfig = configsql[0]['pubmailou']
        pubmailfence = configsql[0]['pubmailfence']
        if pubmailfence != "" and pubmailfence != None:
            pubmailfencelastvalue = pubmailfence
        else:
            pubmailfencelastvalue = "physicalDeliveryOfficeName"
        if publicmailconfig != "" and publicmailconfig != None:
            ad_path = publicmailconfig
        else:
            ad_path = dbinfo_select_global_configuration()[0]['ad_path']
        publicmailvalue = adapi().postapi(
            'GetUserFromLdap',
            ldaps=
            '(&(objectCategory=person)(objectClass=user)(mail=*) (sAMAccountName='
            + samcoun + '))',
            path=ad_path)
        if publicmailvalue['isSuccess'] and publicmailvalue['Count'] != 0:
            publicmailvaluemessage = publicmailvalue['message'][0]
            managervalue = publicmailvaluemessage.get(
                pubmailfencelastvalue.lower(), [None])[0]
            if managervalue.lower() == username.lower():
                if oldmanger.lower() != pbmanger.lower():
                    usermail = adapi().Initialapi('GetobjectProperty',
                                                  objects=pbmanger.lower(),
                                                  objectClass='user')
                    pnmangermail = usermail['message'][0]['mail']
                    setdisname = adapi().Initialapi('SetuserProperty',
                                                    username=samcoun,
                                                    PropertyName='displayName',
                                                    PropertyValue=displaypub)
                    setmanger = adapi().Initialapi(
                        'SetuserProperty',
                        username=samcoun,
                        PropertyName='physicalDeliveryOfficeName',
                        PropertyValue=pbmanger)
                    if setdisname['isSuccess'] and setmanger['isSuccess']:
                        log.log(returnid=1,
                                ip=ip,
                                message=username + "修改公共邮箱属性,修改管理者为" +
                                pbmanger + '修改显示名称' + displaypub,
                                issuccess=1,
                                inparameters=str(setdisname) + str(setmanger),
                                methodname="updatepubmess",
                                types="exchange")
                        subject = u'公共邮箱更改'
                        emaillists = '您已经拥有公共邮箱:' + pubmailadd + '的权限,如果想要重置密码,请登录平台重置该公共邮箱的密码! '
                        email_data = {'emaillists': emaillists}
                        template = "mailmould/sendmailpassword.html"
                        to_list = [pnmangermail]
                        send_email_by_template(subject, template, email_data,
                                               to_list)
                        status = 1
                    else:
                        log.log(returnid=0,
                                ip=ip,
                                message=username + "修改公共邮箱属性,修改管理者为" +
                                pbmanger + '修改显示名称' + displaypub,
                                issuccess=0,
                                inparameters=str(setdisname) + str(setmanger),
                                methodname="updatepubmess",
                                types="exchange")
                        status = 2
                else:
                    setdisname = adapi().Initialapi('SetuserProperty',
                                                    username=samcoun,
                                                    PropertyName='displayName',
                                                    PropertyValue=displaypub)
                    if setdisname['isSuccess']:
                        log.log(returnid=1,
                                ip=ip,
                                message=username + "修改公共邮箱属性,修改显示名称" +
                                displaypub,
                                issuccess=1,
                                inparameters=str(setdisname),
                                methodname="updatepubmess",
                                types="exchange")
                        status = 1
                    else:
                        log.log(returnid=0,
                                ip=ip,
                                message=username + "修改公共邮箱属性,修改显示名称" +
                                displaypub,
                                issuccess=0,
                                inparameters=str(setdisname),
                                methodname="updatepubmess",
                                types="exchange")
                        status = 2
            else:
                status = 2
    except Exception as e:
        log.log(returnid=0,
                ip=ip,
                message=username + "修改公共邮箱属性,修改显示名称" + displaypub,
                issuccess=0,
                inparameters=str(e),
                methodname="updatepubmess",
                types="exchange")
        print(e)
    result = {'status': status}
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Esempio n. 21
0
def mailcountdel(request):
    log = logmanager()
    username = request.session.get('username')
    ip = request.META.get('HTTP_X_FORWARDED_FOR', request.META['REMOTE_ADDR'])
    count = request.POST.get('count')
    try:
        configsql = getmailou_new()
        publicmailconfig = configsql[0]['pubmailou']
        pubmailfence = configsql[0]['pubmailfence']
        if pubmailfence != "" and pubmailfence != None:
            pubmailfencelastvalue = pubmailfence
        else:
            pubmailfencelastvalue = "physicalDeliveryOfficeName"
        if publicmailconfig != "" and publicmailconfig != None:
            ad_path = publicmailconfig
        else:
            ad_path = dbinfo_select_global_configuration()[0]['ad_path']
        publicmailvalue = adapi().postapi(
            'GetUserFromLdap',
            ldaps=
            '(&(objectCategory=person)(objectClass=user)(mail=*) (sAMAccountName='
            + count + '))',
            path=ad_path)
        if publicmailvalue['isSuccess'] and publicmailvalue['Count'] != 0:
            publicmailvaluemessage = publicmailvalue['message'][0]
            managervalue = publicmailvaluemessage.get(
                pubmailfencelastvalue.lower(), [None])[0]
            if managervalue.lower() == username.lower():
                message = adapi().Initialapi('SetuserProperty',
                                             username=count,
                                             PropertyName='userAccountControl',
                                             PropertyValue=514)
                if message['isSuccess']:
                    status = 1
                    log.log(returnid=0,
                            ip=ip,
                            message=username + "删除公共邮箱成功" + count,
                            issuccess=0,
                            inparameters=str(publicmailvalue),
                            methodname="mailcountdel",
                            types="exchange")
                else:
                    log.log(returnid=0,
                            ip=ip,
                            message=username + "删除公共邮箱失败" + count,
                            issuccess=0,
                            inparameters=str(publicmailvalue),
                            methodname="mailcountdel",
                            types="exchange")
                    status = 2
            else:
                status = 2
                log.log(returnid=0,
                        ip=ip,
                        message=username + "越权" + count,
                        issuccess=0,
                        inparameters=str(publicmailvalue),
                        methodname="mailcountdel",
                        types="exchange")
        else:
            status = 2
            log.log(returnid=0,
                    ip=ip,
                    message=username + "为查询到公共邮箱,疑似越权" + count,
                    issuccess=0,
                    inparameters=str(publicmailvalue),
                    methodname="mailcountdel",
                    types="exchange")
    except Exception as e:
        status = 2
        log.log(returnid=0,
                ip=ip,
                message=username + "删除公共邮箱异常" + count,
                issuccess=0,
                inparameters=str(e),
                methodname="mailcountdel",
                types="exchange")
        print(e)
    result = {'status': status}
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Esempio n. 22
0
def userindexvalueshow(request):
    log = logmanager()
    username = request.session.get('username')
    displayname = request.session.get('displayname')
    ip = request.META.get('HTTP_X_FORWARDED_FOR', request.META['REMOTE_ADDR'])
    isSuccess = False
    message = {}
    if username:
        try:
            uservalue = adapi().Initialapi("GetobjectProperty",
                                           objects=username,
                                           objectClass="user")
            if uservalue['isSuccess']:
                userdisplayname = uservalue['message'][0]['displayName']
                usermail = uservalue['message'][0]['mail']
                PasswordExpirationDate = uservalue['message'][0][
                    'PasswordExpirationDate']
                usermemberof = uservalue['message'][0]['memberof']
                usermemberoflist = list()
                usermemberoflastlist = list()
                userip = ip
                strtype = ""
                listtype = list()
                if type(usermemberof) == type(strtype) or type(
                        usermemberof) == type(listtype):
                    if type(usermemberof) == type(strtype):
                        usermemberoflist.append(usermemberof)
                    else:
                        usermemberoflist = usermemberof
                    li = list()
                    rows = list()
                    for i in usermemberoflist:
                        t = MyThread(i)
                        li.append(t)
                        t.start()
                    for t in li:
                        t.join()
                        usermemberoflastlist.append(t.get_result())
                usermaillist = list()
                userinternetlist = list()
                userwifilist = list()
                uservpnlist = list()
                for i in usermemberoflastlist:
                    if i['mail'] != None:
                        usermaillist.append({
                            "displayname": i['displayName'],
                            "mail": i['mail']
                        })
                    internet_group = ast.literal_eval(
                        get_management_configuration()['internet_group'])
                    for internet_group_one in internet_group:
                        if internet_group_one['name'].lower(
                        ) == i['sAMAccountName'].lower():
                            userinternetlist.append(
                                internet_group_one['description'])
                    wifi_group = ast.literal_eval(
                        get_management_configuration()['wifi_group'])
                    for wifi_group_one in wifi_group:
                        if wifi_group_one['name'].lower(
                        ) == i['sAMAccountName'].lower():
                            userwifilist.append(wifi_group_one['description'])
                    vpn_group = ast.literal_eval(
                        get_management_configuration()['vpn_group'])
                    for vpn_group_one in vpn_group:
                        if vpn_group_one['name'].lower(
                        ) == i['sAMAccountName'].lower():
                            uservpnlist.append(vpn_group_one['description'])
                isSuccess = True
                message = {
                    "userdisplayname": userdisplayname,
                    "usermail": usermail,
                    "usermaillist": usermaillist,
                    "userinternetlist": userinternetlist,
                    "userwifilist": userwifilist,
                    "uservpnlist": uservpnlist,
                    "ip": ip,
                    "PasswordExpirationDate": PasswordExpirationDate
                }
        except Exception as e:
            isSuccess = False
            message = {}
        result = {'isSuccess': isSuccess, "message": message}
        return HttpResponse(json.dumps(result, cls=DatetimeEncoder),
                            content_type="application/json")
    else:
        return HttpResponseRedirect('/', request)
Esempio n. 23
0
    def run(self):
        try:
            User = adapi().Initialapi('Createobject',
                                      objects=self.count,
                                      oudn=self.ou,
                                      objectClass='user',
                                      sn=self.manger,
                                      displayName=self.maildisname,
                                      wWWHomePage='None',
                                      password=self.passwd,
                                      guid='None')
            if User['isSuccess']:
                logmanager().log(returnid=1,
                                 message="新建公共邮箱,账号创建完成",
                                 issuccess=1,
                                 inparameters=str(User),
                                 methodname="new_pubmail",
                                 types="exchange")
                Changeporty = adapi().Initialapi('SetuserProperty',
                                                 username=self.count,
                                                 PropertyName=self.mailpen,
                                                 PropertyValue=self.manger)
                if Changeporty['isSuccess']:
                    logmanager().log(returnid=1,
                                     message="新建公共邮箱,管理员栏位属性修改完成",
                                     issuccess=1,
                                     inparameters=str(User),
                                     methodname="new_pubmail",
                                     types="exchange")
                    sleep(60)
                    Usermail = adapi().Initialapi('UserToExc',
                                                  username=self.count,
                                                  dbname=self.db)
                    if Usermail['isSuccess']:
                        logmanager().log(returnid=1,
                                         message="新建公共邮箱,邮件创建完成",
                                         issuccess=1,
                                         inparameters=str(Usermail),
                                         methodname="new_pubmail",
                                         types="exchange")
                        updatepumailuser(self.id, 1)

                    else:
                        logmanager().log(returnid=0,
                                         message="新建公共邮箱,邮件创建失败",
                                         issuccess=0,
                                         inparameters=str(Usermail),
                                         methodname="new_pubmail",
                                         types="exchange")
                        updatepumailuser(self.id, 2)
                else:
                    logmanager().log(returnid=0,
                                     message="新建公共邮箱,管理员栏位属性修改失败",
                                     issuccess=0,
                                     inparameters=str(User),
                                     methodname="new_pubmail",
                                     types="exchange")
                    updatepumailuser(self.id, 2)
            else:
                logmanager().log(returnid=0,
                                 message="新建公共邮箱,账号创建失败",
                                 issuccess=0,
                                 inparameters=str(User),
                                 methodname="new_pubmail",
                                 types="exchange")
                updatepumailuser(self.id, 2)
        except Exception as e:
            logmanager().log(returnid=0,
                             message="新建公共邮箱,创建出现异常",
                             issuccess=0,
                             inparameters=str(e),
                             methodname="new_pubmail",
                             types="exchange")
            updatepumailuser(self.id, 2)