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
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
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)
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)
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)
def close_account(): close = Close_account() close.start() log = logmanager() log.log(returnid=1, username='******', message='启动定时任务删除账号', methodname="Close_account", types="AD", issuccess=1)
def sendjzsch(): send_wechat = Sendsched() send_wechat.start() log = logmanager() log.log(returnid=1, username='******', message='启动调用定时通知', methodname="Close_account", types="AD", issuccess=1)
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
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)
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
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
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
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
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)
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
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('账号为空')
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)
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)
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
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
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
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)
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)