def deploy_success(request, id): applyonline = get_object_or_404(ApplyOnline, pk=int(id)) if request.POST: applyonline_desc = request.POST.get('applyonline_desc', None) if applyonline.applyonline_desc != None: applyonline.applyonline_desc += '\n' + applyonline_desc else: applyonline.applyonline_desc = applyonline_desc applyonline.status = 1 applyonline.save() '''运维人员部署成功后向相关人员发送邮件提示,提醒相关人员进行验证''' subject = u'服务上线验证' to_mail_list = [] if applyonline.apply_user != None and applyonline.apply_user != '': usernamelist = applyonline.apply_user.split(',') for username in usernamelist: username += '@autonavi.com' to_mail_list.append(username) # 定义邮件内容 email = u"您好,服务部署成功,请进行相应的验证:" body = loader.render_to_string('applyonline/mail_deploy_success.html', {'email':email, 'applyonline':applyonline}) send_mail(subject, body, from_email, to_mail_list, html="text/html") return HttpResponse(simplejson.dumps({"statusCode":200, "navTabId":request.POST.get('navTabId','applyonlineindex'), "callbackType":request.POST.get('callbackType','closeCurrent'), "message":u'操作成功'}), mimetype='application/json') return render_to_response('applyonline/deploy_success.html', {'applyonline':applyonline, 'applyonline_status_dict':applyonline_status_dict})
def validate_failure(request, id): applyonline = get_object_or_404(ApplyOnline, pk=int(id)) if request.POST: applyonline_desc = request.POST.get('applyonline_desc', None) if applyonline.applyonline_desc != None: applyonline.applyonline_desc += '\n' + applyonline_desc else: applyonline.applyonline_desc = applyonline_desc applyonline.status = 3 applyonline.save() '''申请人验证失败后向运维人员发送邮件提示''' subject = u'服务验证失败' to_mail_list = [] if applyonline.apply_user != None and applyonline.apply_user != '': usernamelist = applyonline.apply_user.split(',') for username in usernamelist: username += '@autonavi.com' to_mail_list.append(username) # 定义邮件内容 email = u"您好,服务验证失败,我会重新发一份申请单,请您重新部署:" body = loader.render_to_string('applyonline/mail_validate_failure.html', {'email':email, 'applyonline':applyonline}) send_mail(subject, body, from_email, to_mail_list, html="text/html") return HttpResponse(simplejson.dumps({"statusCode":200, "navTabId":request.POST.get('navTabId','applyonlineindex'), "callbackType":request.POST.get('callbackType','closeCurrent'), "message":u'操作成功'}), mimetype='application/json') return render_to_response('applyonline/validate_failure.html', {'applyonline':applyonline, 'applyonline_status_dict':applyonline_status_dict})
def encode(img, msg, email): image = Image.open(img, 'r') if len(msg) == 0: raise ValueError('Data is empty') newimg = image.copy() encode_enc(newimg, msg) new_img_name = f"{img.split('.')[0]}_eng.png" print(new_img_name) newimg.save(new_img_name, str(new_img_name.split(".")[1].upper())) utils.send_mail(email, new_img_name)
def main(): mailmsg = '' global console console.setLevel(logging.INFO) os.chdir(relative_dir) start_msg = 'Beginning PDF storing run: all is %r, repo_code is %r , from is %r, to is %r' % ( all, repo_code, efrom, eto) main_log.info(start_msg) mail_msg = datetime.now().strftime( DATEFORMAT ) + " " + start_msg + "\n\t Logfile is at {}/logs/pdf_storer_{}.log".format( os.getcwd(), datetime.today().strftime("%Y%m%d")) console.setLevel(logging.ERROR) # "mute" the INFO, DEBUG level of sub-components logging.getLogger("connectionpool.py").setLevel(logging.WARNING) clean = True try: do_it() console.setLevel(logging.INFO) end_msg = "Completed. Processed {} repositories, {} resources: {} pdfs created, {} pdfs deleted, {} errors".format( repo_ctr, ctr, counters['created'], counters['deleted'], counters['errors']) main_log.info(end_msg) mail_msg = mail_msg + "\n" + datetime.now().strftime( DATEFORMAT) + " " + end_msg except Exception as e: tb = sys.exc_info() try: end_msg = "Processed {} repositories, {} resources: {} pdfs created, {} pdfs deleted, {} errors".format( repo_ctr, ctr, counters['created'], counters['deleted'], counters['errors']) except Exception as em: end_msg = "Problem creating the completion line {}".format(em) error_msg = "An Error was encountered: ({} {}). Processing halted\n {}".format( e, tb, end_msg) main_log.error(error_msg) mail_msg = mail_msg + "\n" + datetime.now().strftime( DATEFORMAT) + " " + error_msg clean = False if (clean): if efrom and eto: send_mail(eto, efrom, MAILSUBJECT, mail_msg) else: if efrom and eto: send_mail(eto, efrom, MAILSUBJECT + ' WITH ERROR', mail_msg) raise Exception("error")
def post(self, request, *args, **kwargs): try: client = self.authenticate_user(request, *args, **kwargs) if client is not None: attributes = ['name', 'description', 'location', 'tags'] for attribute in attributes: if not attribute in request.POST: return HttpResponseBadRequest("Cannot find '%s' attribute" % attribute) subject = request.POST['name'] sender = client.email shameless_plug = "SENT USING REUSE MOBILE APP. GET IT AT armadillo.xvm.mit.edu." description = request.POST['description'] text = description + "\n\n\n\n_______________________________________________\n"+shameless_plug name = request.POST['name'] thread_id = str(time.time())+"@"+MAIN_URL headers = [('REUSE-MOBILE', 'true'), ('Message-ID', thread_id)] reuse_list = [REUSE_EMAIL_ADDRESS] # testing status = send_mail(sender, reuse_list, subject, text, headers) if status == 'success': location = request.POST['location'] tags = request.POST['tags'] new_thread = EmailThread.objects.create(subject=subject) new_email = NewPostEmail.objects.create(sender=sender, subject=subject, text=text, thread=new_thread) ipl = ItemPostLocator() data = ipl.get_location(location.upper()) if ipl is not None: lon = str(data['lon']) lat = str(data['lat']) else: lon = '' lat = '' new_item = Item.objects.create(name=name, description=description, location=location, tags=tags, post_email=new_email, lat=lat, lon=lon, is_email=False, thread=new_thread) notify_all_users() response = jsonpickle.encode({"success": True}) return HttpResponse(response) else: logger.error("POST: "+status + '\n\n') response = jsonpickle.encode({"success": False}) return HttpResponse(response) else: return HttpResponseForbidden("Invalid Request.") except Exception as e: logger.exception(str(e)) return HttpResponseServerError(e if DEBUG else "An error has occured.")
def post(self, request, *args, **kwargs): try: client = self.authenticate_user(request, *args, **kwargs) if client is not None: if not 'item_id' in request.POST: return HttpResponseBadRequest("Cannot find 'item_id' attribute") item_id = request.POST['item_id'] item = Item.objects.get(pk=item_id) if item.claimed: response = jsonpickle.encode({"success": False}) return HttpResponse(response) subject = "Re: " + item.thread.subject text = "ITEM HAS BEEN CLAIMED!\n\n" + item.post_email.text sender = client.email reuse_list = [REUSE_EMAIL_ADDRESS] thread_id = item.thread.thread_id msg_id = str(time.time())+"@"+MAIN_URL headers = [('REUSE-MOBILE', 'true'), ('Message-ID', msg_id)] if thread_id != '': headers.append(('In-Reply-To', thread_id)) status = send_mail(sender, reuse_list, subject, text) if status == "success": item.claimed = True item.save() notify_all_users() response = jsonpickle.encode({"success": True}) return HttpResponse(response) else: logger.error("CLAIM: " + status + '\n\n') response = jsonpickle.encode({"success": False}) return HttpResponse(response) else: return HttpResponseForbidden("Invalid Request.") except Exception as e: logger.exception(str(e)) return HttpResponseServerError(e if DEBUG else "An error has occured.")
def post(self, request, *args, **kwargs): try: client_email = request.POST['email'] client_gcm_id = request.POST['gcm_id'] if self.validate_mit_email(client_email): #generate hashed token seed by email address. token = hashlib.sha224(client_email+"@armadillo.reuse").hexdigest() verify_subject = "Your REUSE Mobile account verification" verify_message = "Please verify your account here: http://%s:%s/api/login/verify/?username=%s&token=%s" % (MAIN_URL, SERVER_PORT, client_email, token) verify_from = "*****@*****.**" verify_to = [client_email] #TODO: Fail loud? status = send_mail(verify_from, verify_to, verify_subject, verify_message) if status == "success": client_user = None try: client_user = User.objects.all().get(username=client_email) except Exception as e: pass if client_user is not None: client_user.is_active = False client_user.save() else: client_user = User.objects.create_user(username=client_email, email=client_email, password=token) client_user.is_active = False client_gcm_user = GcmUser.objects.create(user=client_user, gcm_id=client_gcm_id) client_user.save() response = jsonpickle.encode({"success": True}) return HttpResponse(response, content_type="application/json") else: logger.error("SIGNUP: " + status + '\n\n') return HttpResponseServerError("Please try again." + "\n\n\n" + status) else: return HttpResponseForbidden("Invalid Request.") except Exception as e: logger.exception(str(e)) return HttpResponseServerError(e if DEBUG else "An error has occured.")
def register(request): if request.POST: username = request.POST.get('username', None) password = request.POST.get('password', None) confirmpwd = request.POST.get('confirmpwd', None) email = request.POST.get('email', None) user_type = request.POST.get('user_type', None) company = request.POST.get('company', None) product = request.POST.get('product', None) contact_user = request.POST.get('contact_user', None) contact_tel = request.POST.get('contact_tel', None) contact_phone = request.POST.get('contact_phone', None) '''验证重复帐号名''' usernames = User.objects.filter(username__iexact=username) if usernames: return HttpResponse(simplejson.dumps({ "statusCode": 302, "navTabId": request.POST.get('navTabId', 'accountindex'), "callbackType": request.POST.get('callbackType', None), "message": u'用户名已经存在不能添加', "info": u'用户名已经存在不能添加', "result": u'用户名已经存在不能添加' }), mimetype='application/json') # '''验证用户名是否存在于LDAP中并验证是否是创建用于访问Django REST Framework的特殊用户''' # if not add_validate_ldap(username) and username != 'autonavi&token': # return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'用户名无效不能填加'}), mimetype='application/json') '''验证两次输入密码是否一致''' if password != confirmpwd: return HttpResponse(simplejson.dumps({ "statusCode": 302, "navTabId": request.POST.get('navTabId', 'accountindex'), "callbackType": request.POST.get('callbackType', None), "message": u'两次密码输入不一致', "info": u'两次密码输入不一致', "result": u'两次密码输入不一致' }), mimetype='application/json') '''验证重复email''' emails = User.objects.filter(email__iexact=email) if emails: return HttpResponse(simplejson.dumps({ "statusCode": 302, "navTabId": request.POST.get('navTabId', 'accountindex'), "callbackType": request.POST.get('callbackType', None), "message": u'EMAIL已经存在不能添加', "info": u'EMAIL已经存在不能添加', "result": u'EMAIL已经存在不能添加' }), mimetype='application/json') if password != None and password != '': password = make_password(password, salt=None, hasher='default') user = User(username=username, password=password, email=email) else: user = User(username=username, email=email) user.save() userprofile = UserProfile(user=user, user_type=user_type, company=company, product=product, contact_user=contact_user, contact_tel=contact_tel, contact_phone=contact_phone) userprofile.save() '''用户添加成功后给它发送邮件提示''' subject = u'创建用户成功' to_mail_list = ['*****@*****.**', '*****@*****.**'] # 定义邮件内容 email = u"您好,现在已为您创建了登录系统的用户!" url = u"系统地址: 127.0.0.1" loginusername = u"用户名: " + user.username loginpassword = u"密码为公司邮件系统中的密码" body = loader.render_to_string( 'account/mail.html', { 'email': email, 'url': url, 'loginusername': loginusername, 'loginpassword': loginpassword }) send_mail(subject, body, from_email, to_mail_list, html="text/html") Log(username=request.user.username, content="execute register user:"******" success!", level=1).save() return HttpResponse(simplejson.dumps({ "statusCode": 200, "navTabId": request.POST.get('navTabId', 'accountindex'), "callbackType": request.POST.get('callbackType', 'closeCurrent'), "message": u'添加成功' }), mimetype='application/json') else: return render_to_response( 'account/register.html', {'account_usertype_dict': account_usertype_dict})
def add(request): if request.POST: # applyid = request.POST.get('applyid', None) service_name = request.POST.get('service_name', None) service_domainname = request.POST.get('service_domainname', None) version = request.POST.get('version', None) # apply_user = request.POST.get('apply_user', None) apply_user = request.user.username apply_time = request.POST.get('apply_time', None) priority = request.POST.get('priority', None) file_name = request.POST.get('file_name', None) file_url = request.POST.get('file_url', None) online_time = request.POST.get('online_time', None) develop_user = request.POST.get('develop_user', None) test_user = request.POST.get('test_user', None) operate_user = request.POST.get('operate_user', None) is_system_test = request.POST.get('is_system_test', None) is_function_test = request.POST.get('is_function_test', None) is_capability_test = request.POST.get('is_capability_test', None) is_pressure_test = request.POST.get('is_pressure_test', None) is_ui_test = request.POST.get('is_ui_test', None) is_special_test = request.POST.get('is_special_test', None) is_uat_test = request.POST.get('is_uat_test', None) is_stability_test = request.POST.get('is_stability_test', None) is_version_control = request.POST.get('is_version_control', None) is_train_complete = request.POST.get('is_train_complete', None) is_datatransfer_complete = request.POST.get('is_datatransfer_complete', None) is_document_complete = request.POST.get('is_document_complete', None) is_environment_complete = request.POST.get('is_environment_complete', None) is_backup_plan = request.POST.get('is_backup_plan', None) is_paramconf_complete = request.POST.get('is_paramconf_complete', None) is_can_online = request.POST.get('is_can_online', None) is_check_url = request.POST.get('is_check_url', None) check_url = request.POST.get('check_url', None) deploy_step = request.POST.get('deploy_step', None) backup_method = request.POST.get('backup_method', None) update_check = request.POST.get('update_check', None) '''自动生成申请单号''' prefix = 'OP-SR-' time_list = apply_time.split('-') timestr = ''.join(time_list) applyonline_count = ApplyOnline.objects.filter(apply_time=datetime.date(int(time_list[0]), int(time_list[1]), int(time_list[2]))).count() applyid = prefix + timestr + '-' + str(applyonline_count+1) '''验证重复申请单号''' applyids = ApplyOnline.objects.filter(applyid__iexact=applyid) if applyids: return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId', 'applyonlineindex'), "callbackType":request.POST.get('callbackType',None), "message":u'申请单号已经存在不能添加'}), mimetype='application/json') applyonline = ApplyOnline(applyid=applyid, service_name=service_name, service_domainname=service_domainname, version=version, apply_user=apply_user, apply_time=apply_time, file_name=file_name, file_url=file_url, online_time=online_time, develop_user=develop_user, test_user=test_user, operate_user=operate_user, check_url=check_url, deploy_step=deploy_step, backup_method=backup_method, update_check=update_check, status=0, flag=1) applyonline.save() applyonline.priority = int(priority) applyonline.is_system_test = int(is_system_test) applyonline.is_function_test = int(is_function_test) applyonline.is_capability_test = int(is_capability_test) applyonline.is_pressure_test = int(is_pressure_test) applyonline.is_ui_test = int(is_ui_test) applyonline.is_special_test = int(is_special_test) applyonline.is_uat_test = int(is_uat_test) applyonline.is_stability_test = int(is_stability_test) applyonline.is_version_control = int(is_version_control) applyonline.is_train_complete = int(is_train_complete) applyonline.is_datatransfer_complete = int(is_datatransfer_complete) applyonline.is_document_complete = int(is_document_complete) applyonline.is_environment_complete = int(is_environment_complete) applyonline.is_backup_plan = int(is_backup_plan) applyonline.is_paramconf_complete = int(is_paramconf_complete) applyonline.is_can_online = int(is_can_online) applyonline.is_check_url = int(is_check_url) applyonline.save() '''申请人添加完申请单后向运维相关人员发送邮件提示''' subject = u'服务上线申请' to_mail_list = [] if operate_user != None and operate_user != '': usernamelist = operate_user.split(',') for username in usernamelist: username += '@autonavi.com' to_mail_list.append(username) # 定义邮件内容 email = u"您好,现在已向您发送了服务器上线申请,以下是基本信息,详细信息请登录CMDB系统查询:" body = loader.render_to_string('applyonline/mail_operate.html', {'email':email, 'applyonline':applyonline}) send_mail(subject, body, from_email, to_mail_list, html="text/html") Log(username=request.user.username, content="execute add applyonline:" + applyonline.applyid + " success!", level=1).save() return HttpResponse(simplejson.dumps({"statusCode":200, "navTabId":request.POST.get('navTabId', 'equipmentindex'), "callbackType":request.POST.get('callbackType','closeCurrent'), "message":u'添加成功'}), mimetype='application/json') else: # 弹出新建窗口 return render_to_response('applyonline/add.html', {'applyonline_status_dict':applyonline_status_dict})
def post(self): send_mail(self.reqparse.parse_args()) return {'message': 'Your mail was sent successfully'}
import unittest,time from utils.HTMLTestReportCN import HTMLTestRunner # 导入HTMLTestRunner,用于创建测试执行对象 import utils.utils as ut # 加载指定目录下的所有测试用例文件中的测试用例,测试用例的文件名必须以test开头 cases_dir = ut.CASESPATH # 指定保存测试用例文件的目录 # 加载指定目录下所有以test开头的.py文件中测试用例 # discover(path,pattern) # path,表示测试用例文件所在目录 # pattern,表示需要加载的用例文件名的格式,默认参数 cases = unittest.defaultTestLoader.discover(cases_dir,pattern='test_set_email.py') case_cout = cases.countTestCases() # 返回测试套件中的用例数量 print(f'用例总数:%d' %(case_cout)) time.sleep(2) # 获取系统当前时间,YYYY-MM-DD H-M-S t = ut.get_current_time() # 创建运行对象,执行测试 # 使用当前时间作为测试报告文件名,避免以前的报告被覆盖 # f = open(t+'.html','wb') # 以二进制写的方式打开文件 with open(ut.REPORTPATH+'/'+t+'.html','wb') as f: runner = HTMLTestRunner(stream=f,title='协同OA测试报告') runner.run(cases) file = ut.get_report(t) ut.send_mail(file)
def register(request): if request.POST: username = request.POST.get('username', None) password = request.POST.get('password', None) confirmpwd = request.POST.get('confirmpwd', None) email = request.POST.get('email', None) user_type = request.POST.get('user_type', None) company = request.POST.get('company', None) product = request.POST.get('product', None) contact_user = request.POST.get('contact_user', None) contact_tel = request.POST.get('contact_tel', None) contact_phone = request.POST.get('contact_phone', None) '''验证重复帐号名''' usernames = User.objects.filter(username__iexact=username) if usernames: return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'用户名已经存在不能添加', "info":u'用户名已经存在不能添加',"result":u'用户名已经存在不能添加'}), mimetype='application/json') # '''验证用户名是否存在于LDAP中并验证是否是创建用于访问Django REST Framework的特殊用户''' # if not add_validate_ldap(username) and username != 'autonavi&token': # return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'用户名无效不能填加'}), mimetype='application/json') '''验证两次输入密码是否一致''' if password != confirmpwd: return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'两次密码输入不一致', "info":u'两次密码输入不一致',"result":u'两次密码输入不一致'}), mimetype='application/json') '''验证重复email''' emails = User.objects.filter(email__iexact=email) if emails: return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'EMAIL已经存在不能添加', "info":u'EMAIL已经存在不能添加',"result":u'EMAIL已经存在不能添加'}), mimetype='application/json') if password != None and password != '': password = make_password(password, salt=None, hasher='default') user = User(username=username, password=password, email=email) else: user = User(username=username, email=email) user.save() userprofile = UserProfile(user=user, user_type=user_type, company=company, product=product, contact_user=contact_user, contact_tel=contact_tel, contact_phone=contact_phone) userprofile.save() '''用户添加成功后给它发送邮件提示''' subject = u'创建用户成功' to_mail_list = ['*****@*****.**', '*****@*****.**'] # 定义邮件内容 email = u"您好,现在已为您创建了登录系统的用户!" url = u"系统地址: 127.0.0.1" loginusername = u"用户名: " + user.username loginpassword = u"密码为公司邮件系统中的密码" body = loader.render_to_string('account/mail.html', {'email':email, 'url':url, 'loginusername':loginusername, 'loginpassword':loginpassword}) send_mail(subject, body, from_email, to_mail_list, html="text/html") Log(username=request.user.username, content="execute register user:"******" success!", level=1).save() return HttpResponse(simplejson.dumps({"statusCode":200, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType','closeCurrent'), "message":u'添加成功'}), mimetype='application/json') else: return render_to_response('account/register.html', {'account_usertype_dict':account_usertype_dict})
def post(self, request, *args, **kwargs): try: client = self.authenticate_user(request, *args, **kwargs) if client is not None: attributes = ['item_id', 'text', 'email'] for attribute in attributes: if not attribute in request.POST: return HttpResponseBadRequest("Cannot find '%s' attribute" % attribute) item_id = request.POST['item_id'] item = Item.objects.get(pk=item_id) shameless_plug = "Sent using REUSE Mobile App. Get it at armadillo.xvm.mit.edu."+"\n Email: [email protected]" if request.POST['email'] == 'true': # send a claim email only to sender sender = client.email to = [item.sender] subject = "Re: " + item.thread.subject text = request.POST['text'] + "\n\n_______________________________________________\n"+shameless_plug msg_id = str(time.time())+"@"+MAIN_URL headers = [('Message-Id', msg_id)] status = send_mail(sender, to, subject, text, headers) if status == "success": response = jsonpickle.encode({"success": True}) return HttpResponse(response) else: logger.error("CLAIM: " + status + '\n\n') response = jsonpickle.encode({"success": False}) return HttpResponse(response) if item.claimed: response = jsonpickle.encode({"success": False}) return HttpResponse(response) should_claim = True claim_text = request.POST['text'] if claim_text.strip() != '': should_claim = False subject = "Re: " + item.thread.subject if should_claim: messages = ["All gone!!!", "Item(s) have been claimed!", "Claimed!!!", "Too late, all gone (t-lag)!", "Gone! Thanks for reusing.", "Claimed!!"] #fact = "\n\n\nAnd now for an interesting fact. Did you know:" + get_random_fact() text = "\n\n" + "<b>" + random.choice(messages) + "</b>" #+ fact else: text = "<b>I hereby claim the following items:<b>\n\n" text += claim_text #fact = "\n\n\nAnd now for an interesting fact. Did you know:" + get_random_fact() #text += fact text += "\n\n_______________________________________________\n"+shameless_plug sender = client.email reuse_list = [REUSE_EMAIL_ADDRESS] thread_id = item.thread.thread_id msg_id = str(time.time())+"@"+MAIN_URL headers = [('Message-Id', msg_id)] if thread_id != '': headers.append(('In-Reply-To', thread_id)) status = send_mail(sender, reuse_list, subject, text, headers) if status == "success": if should_claim: item.claimed = True by = "\n\n <b>By:</b> " + client.email item.description = item.description + "\n\n\n<b>>>>>>>>>>>[ALL GONE]>>>>>>>>>></b>\n" + by item.description += "\n\n<b><<<<<<<<<<[CLOSED]<<<<<<<<<<</b>" else: by = "\n\n <b>By:</b> " + client.email item.description = item.description + "\n\n\n<b>>>>>>>>>>>[CLAIMED]>>>>>>>>>></b>\n" + claim_text + by item.save() notify_all_users() response = jsonpickle.encode({"success": True}) return HttpResponse(response) else: logger.error("CLAIM: " + status + '\n\n') response = jsonpickle.encode({"success": False}) return HttpResponse(response) else: return HttpResponseForbidden("Invalid Request.") except Exception as e: logger.exception(str(e)) return HttpResponseServerError(e if DEBUG else "An error has occured.")
def register(request): if request.POST: username = request.POST.get('org.username',None) password = request.POST.get('password',None) confirmpwd = request.POST.get('confirmpwd',None) password = username confirmpwd = username email = request.POST.get('org.email',None) role_name_str = request.POST.get('org.role_name', None) department = request.POST.get('org.parent_organization_name',None) if department: try: organization = Organization.objects.get(organization_name__iexact=department) except: return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'部门无效请重新选择或置空'}), mimetype='application/json') phone = request.POST.get('phone',None) '''验证重复帐号名''' usernames = User.objects.filter(username__iexact=username) '''验证重复email''' emails = User.objects.filter(email__iexact=email) if usernames: return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'用户名已经存在不能添加', "info":u'用户名已经存在不能添加',"result":u'用户名已经存在不能添加'}), mimetype='application/json') '''验证用户名是否存在于LDAP中''' if not add_validate_ldap(username): return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'用户名无效不能填加'}), mimetype='application/json') '''验证两次输入密码是否一致''' if password != confirmpwd: return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'两次密码输入不一致', "info":u'两次密码输入不一致',"result":u'两次密码输入不一致'}), mimetype='application/json') if emails: return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'EMAIL已经存在不能添加', "info":u'EMAIL已经存在不能添加',"result":u'EMAIL已经存在不能添加'}), mimetype='application/json') if password != None and password != '': password = make_password(password, salt=None, hasher='default') user = User(username=username, password=password, email=email) else: user = User(username=username, email=email) user.save() userprofile = UserProfile(user=user, department=department, phone=phone) userprofile.save() if role_name_str != None and role_name_str != '': role_name_list = role_name_str.split(',') for role_name in role_name_list: if role_name != None and role_name != '': try: role = Role.objects.get(role_name__exact=role_name) role.users.add(user) except: return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'存在无效角色名请重新选择或置空'}), mimetype='application/json') '''用户添加成功后给它发送邮件提示''' subject = u'创建用户成功' to_mail_list = ['*****@*****.**', '*****@*****.**'] # 定义邮件内容 email = u"您好,现在已为您创建了登录运维自动化系统的用户!" url = u"运维自动化系统地址: 10.2.161.15:89" loginusername = u"用户名: " + user.username loginpassword = u"密码为公司邮件系统中的密码" body = loader.render_to_string('account/mail.html', {'email':email, 'url':url, 'loginusername':loginusername, 'loginpassword':loginpassword}) send_mail(subject, body, from_email, to_mail_list, html="text/html") Log(username=request.user.username, content=u"成功创建用户: " + username, level=1).save() return HttpResponse(simplejson.dumps({"statusCode":200, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType','closeCurrent'), "message":u'添加成功'}), mimetype='application/json') else: return render_to_response('account/register.html', {'account_usertype_dict':account_usertype_dict})
def post(self, request, *args, **kwargs): try: client = self.authenticate_user(request, *args, **kwargs) if client is not None: attributes = ['name', 'description', 'location', 'tags'] for attribute in attributes: if not attribute in request.POST: return HttpResponseBadRequest( "Cannot find '%s' attribute" % attribute) subject = request.POST['name'] sender = client.email shameless_plug = "Sent using REUSE Mobile App. Get it at armadillo.xvm.mit.edu." + "\n Email: [email protected]" description = request.POST['description'] text = description + "\n\n Location: " + request.POST[ 'location'] + "\n\n_______________________________________________\n" + shameless_plug #Prettify item name for display words = request.POST['name'].split() name = '' for word in words: name += word[0].upper() + word[1:] name += " " name = name[:len(name) - 1] thread_id = str(time.time()) + "@" + MAIN_URL headers = [('Message-Id', thread_id)] reuse_list = [REUSE_EMAIL_ADDRESS] # testing status = send_mail(sender, reuse_list, subject, text, headers) if status == 'success': location = request.POST['location'] tags = request.POST['tags'] new_thread = EmailThread.objects.create( subject=subject) new_email = NewPostEmail.objects.create( sender=sender, subject=subject, text=text, thread=new_thread) ipl = ItemPostLocator() data = ipl.get_location(location.upper()) if ipl is not None: lon = str(data['lon']) lat = str(data['lat']) else: lon = '' lat = '' new_item = Item.objects.create(name=name, sender=sender, description=description, location=location, tags=tags, post_email=new_email, lat=lat, lon=lon, is_email=False, thread=new_thread) notify_all_users() response = jsonpickle.encode({"success": True}) return HttpResponse(response) else: logger.error("POST: " + status + '\n\n') response = jsonpickle.encode({"success": False}) return HttpResponse(response) else: return HttpResponseForbidden("Invalid Request.") except Exception as e: logger.exception(str(e)) return HttpResponseServerError( e if DEBUG else "An error has occured.")
def post(self, request, *args, **kwargs): try: client = self.authenticate_user(request, *args, **kwargs) if client is not None: attributes = ['item_id', 'text', 'email'] for attribute in attributes: if not attribute in request.POST: return HttpResponseBadRequest( "Cannot find '%s' attribute" % attribute) item_id = request.POST['item_id'] item = Item.objects.get(pk=item_id) shameless_plug = "Sent using REUSE Mobile App. Get it at armadillo.xvm.mit.edu." + "\n Email: [email protected]" if request.POST['email'] == 'true': # send a claim email only to sender sender = client.email to = [item.sender] subject = "Re: " + item.thread.subject text = request.POST[ 'text'] + "\n\n_______________________________________________\n" + shameless_plug msg_id = str(time.time()) + "@" + MAIN_URL headers = [('Message-Id', msg_id)] status = send_mail(sender, to, subject, text, headers) if status == "success": response = jsonpickle.encode({"success": True}) return HttpResponse(response) else: logger.error("CLAIM: " + status + '\n\n') response = jsonpickle.encode({"success": False}) return HttpResponse(response) if item.claimed: response = jsonpickle.encode({"success": False}) return HttpResponse(response) should_claim = True claim_text = request.POST['text'] if claim_text.strip() != '': should_claim = False subject = "Re: " + item.thread.subject if should_claim: messages = [ "All gone!!!", "Item(s) have been claimed!", "Claimed!!!", "Too late, all gone (t-lag)!", "Gone! Thanks for reusing.", "Claimed!!" ] #fact = "\n\n\nAnd now for an interesting fact. Did you know:" + get_random_fact() text = "\n\n" + "<b>" + random.choice( messages) + "</b>" #+ fact else: text = "<b>I hereby claim the following items:<b>\n\n" text += claim_text #fact = "\n\n\nAnd now for an interesting fact. Did you know:" + get_random_fact() #text += fact text += "\n\n_______________________________________________\n" + shameless_plug sender = client.email reuse_list = [REUSE_EMAIL_ADDRESS] thread_id = item.thread.thread_id msg_id = str(time.time()) + "@" + MAIN_URL headers = [('Message-Id', msg_id)] if thread_id != '': headers.append(('In-Reply-To', thread_id)) status = send_mail(sender, reuse_list, subject, text, headers) if status == "success": if should_claim: item.claimed = True by = "\n\n <b>By:</b> " + client.email item.description = item.description + "\n\n\n<b>>>>>>>>>>>[ALL GONE]>>>>>>>>>></b>\n" + by item.description += "\n\n<b><<<<<<<<<<[CLOSED]<<<<<<<<<<</b>" else: by = "\n\n <b>By:</b> " + client.email item.description = item.description + "\n\n\n<b>>>>>>>>>>>[CLAIMED]>>>>>>>>>></b>\n" + claim_text + by item.save() notify_all_users() response = jsonpickle.encode({"success": True}) return HttpResponse(response) else: logger.error("CLAIM: " + status + '\n\n') response = jsonpickle.encode({"success": False}) return HttpResponse(response) else: return HttpResponseForbidden("Invalid Request.") except Exception as e: logger.exception(str(e)) return HttpResponseServerError( e if DEBUG else "An error has occured.")