def get(self, idencode): params = {} params[KEY.IDENCODE] = idencode #先判段是是否有人确认过了 verify_user_info = db.get_user_verify_info(params) if verify_user_info is None: return self.write('the link is fail') #没有的话 清除数据 db.clear_verify_user_info(verify_user_info) #判段时间是否失效 s = verify_user_info[KEY.TIME] emailTime = time.mktime(s.timetuple()) nowTime = time.time() timeInterval = nowTime - emailTime verify_user_info[KEY.EMAIL] = verify_user_info[KEY.EMAIL].replace("%40", "@") if timeInterval > 86400: sendEmail.sendEmail([verify_user_info[KEY.EMAIL]], "认证失败消息", "您的实名认证失败,请重新认证") return self.write('the link is fail (The effective time has passed.)') else: verify_user_info[KEY.IS_VERIFY] = 1 success = db.update_user(verify_user_info) if success: return self.write("success comfirm") else: sendEmail.sendEmail([verify_user_info[KEY.EMAIL]], "认证失败消息", "您的实名认证失败,请重新认证") return self.write("server error")
def accept_action(request, myid, id): print("Enter accept_action") if request.method != "GET": raise Http404 user = request.user userEmail = user.email myitem = ExchangeItem.objects.get(pk=myid) item = ExchangeItem.objects.get(pk=id) owner = item.user ownerEmail = owner.email msg = """Hi {0},\n\n Your exchange for "{1}" with your "{2}" has been accepted.\n Come back to {5} to confirm the exchange if you hasn't change your mind!\n You can contact "{1}"'s owner {3} through SwapSpace's chat room or at {4}. Thanks!"""\ .format(owner, myitem.name, item.name, user, userEmail, HOST) sendEmail(ownerEmail, "accept", msg) # update item status if myitem.status < 2: myitem.status = 2 myitem.bestmatch = item myitem.save() if item.status < 2: item.status = 2 item.bestmatch = myitem item.save() # update exchange logic list item.request.remove(myitem) myitem.accept.add(item) return redirect(reverse('status', kwargs={'id': myid}))
def cancel_action(request, myid, id): print("Enter cancel_action") if request.method != "GET": raise Http404 user = request.user myitem = ExchangeItem.objects.get(pk=myid) item = ExchangeItem.objects.get(pk=id) owner = item.user ownerEmail = owner.email msg = """Hi {0},\n\n Your exchange for "{1}" with your "{2}" has been cancelled by user {3}.\n Come back to check for more exchange options!""".format(owner, myitem.name, item.name, user) sendEmail(ownerEmail, "cancel", msg) # update exchange logic list if myitem in item.request.all(): item.request.remove(myitem) elif item in myitem.request.all(): myitem.request.remove(item) elif myitem in item.accept.all(): item.accept.remove(myitem) elif item in myitem.accept.all(): myitem.accept.remove(item) return redirect(reverse('status', kwargs={'id': myid}))
def register_action(request): context = {} if request.method == "GET": return render(request, 'register.html') form = UserRegisterForm(request.POST) context["registerForm"] = form if not form.is_valid(): print("User Registration Form is invalid ...") return render(request, 'register.html', context) print("User Registration Form is valid.") username, email = form.cleaned_data['username'], form.cleaned_data['email'] password = form.cleaned_data['password1'] user = User.objects.create_user(username=username, email=email, password=password) user.save() profile = UserProfile(user=user, good=0, fair=0, bad=0) profile.save() cart = ShoppingCart(user=user) cart.save() sendEmail(email) # send registration email print("New user is created but not activated.") return redirect('/login')
def post(self): resp = {} resp[KEY.STATUS] = 500 params = {} #对当前请求对象的参数解析,得到当前请求对象里面的参数 params = utils.decode_params(self.request) if KEY.EMAIL in params and KEY.ACCOUNT in params: userInfo = {} userInfo = db.get_user_information_by_email(params) if userInfo is not None: if KEY.NICKNAME in userInfo and userInfo[KEY.NICKNAME] == params[KEY.ACCOUNT]: #获得验证码 idencode = ''.join(random.sample(string.ascii_letters, 4)) #emailt = email.PlainEmail() userEmail = params[KEY.EMAIL].replace('%40', '@') #if emailt.sendPlainEmail(params[KEY.EMAIL], "找回密码", "您的验证码为:" + idencode) == 200: if sendEmail.sendEmail([userEmail], "找回密码", "您的验证码为:" + idencode) == 200: md5_encode = hashlib.md5() md5_encode.update(userInfo[KEY.NICKNAME] + idencode) idencode = md5_encode.hexdigest() resp[KEY.STATUS] = 200 resp["secret"] = idencode self.write(json_encode(resp))
def post(self): resp = {} resp[KEY.STATUS] = 500 params = {} params = utils.decode_params(self.request) if KEY.EMAIL in params and KEY.ACCOUNT in params: isExist = db.isAccountHasExist(params) if isExist is not None: #如果这个账户不存在 if isExist == 0: idencode = ''.join(random.sample(string.ascii_letters, 4)) #emailt = email.PlainEmail() params[KEY.EMAIL] = params[KEY.EMAIL].replace("%40", '@') if sendEmail.sendEmail([params[KEY.EMAIL]], "新用户注册", "您的验证码为:" + idencode) == 200: md5_encode = hashlib.md5() md5_encode.update(params[KEY.ACCOUNT] + idencode + "?" + params[KEY.EMAIL]) idencode = md5_encode.hexdigest() resp[KEY.STATUS] = 200 resp["secret"] = idencode else: resp[KEY.STATUS] = 400 self.write(json_encode(resp))
def forget_pwd_action(request): userForgetPwdForm = UserForgetPwdForm() if request.method == "GET": return render(request, 'forgetpwd.html', {'forgetPwdForm': userForgetPwdForm}) context = {} form = UserForgetPwdForm(request.POST) context["forgetPwdForm"] = form if not form.is_valid(): print("User forget pwd form is invalid ...") return render(request, 'forgetpwd.html', context) email = form.cleaned_data['email'] print("Send to %s"%(email)) sendEmail(email, 'forget') return render(request, 'send-success.html')
def confirm_action(request, myid, id): print("Enter confirm_action") if request.method != "GET": raise Http404 user = request.user userEmail = user.email myitem = ExchangeItem.objects.get(pk=myid) item = ExchangeItem.objects.get(pk=id) owner = item.user ownerEmail = owner.email msg = """Hi {0},\n\n Your exchange for "{2}" with your "{1}" has been confirmed.\n Remember to rate this exchange at {5}:/rate/{6}!\n You can contact "{2}"'s owner {3} at {4}. Thanks!"""\ .format(owner, item.name, myitem.name, user, userEmail, HOST, id) sendEmail(ownerEmail, "confirm", msg) # update item status myitem.status = 3 myitem.bestmatch = item myitem.save() item.status = 3 item.bestmatch = myitem item.save() # clean up exchange logic list myitem.request.clear() myitem.myRequesteds.clear() myitem.accept.clear() myitem.myAccepteds.clear() myitem.automatch.clear() myitem.myAutoMatcheds.clear() item.request.clear() item.myRequesteds.clear() item.accept.clear() item.myAccepteds.clear() item.automatch.clear() item.myAutoMatcheds.clear() return redirect(reverse('status', kwargs={'id': myid}))
def post(self): params = utils.decode_params(self.request) resp = {} resp[KEY.STATUS] = 500 if KEY.TITLE in params and KEY.CONTENT in params: content_t = params[KEY.TITLE] + "---" + params[KEY.CONTENT] if sendEmail.sendEmail([KEY.EMAIL_BOSS], "User-Feedback", content_t) == 200: resp[KEY.STATUS] = 200 self.write(json_encode(resp))
def __init__(self): self.q = Queue() self.myUtils = myUtils() self.mail = sendEmail() self.gt = getTotal() self.su = s3util() self.log = logUtil('mylog') self.num = 1 self.qUrl = 'https://api.newrelic.com/v2/applications.json?page=' self.appBasicUrl = 'https://api.newrelic.com/v2/applications/' self.tmp_content = 'Below applications in NewRelic stopped reporting, please take a look.<br><br>If no action taken in three days, these applications will be deleted.<br><br>'
def get(self, idencode): params = {} params[KEY.IDENCODE] = idencode #先判段是是否有人确认过了 verify_user_info = db.get_user_verify_info(params) if verify_user_info is None: return self.write('the link is fail') #没有的话 清除数据 db.clear_verify_user_info(verify_user_info) #判段时间是否失效 s = verify_user_info[KEY.TIME] emailTime = time.mktime(s.timetuple()) nowTime = time.time() timeInterval = nowTime - emailTime verify_user_info[KEY.EMAIL] = verify_user_info[KEY.EMAIL].replace( "%40", "@") if timeInterval > 86400: sendEmail.sendEmail([verify_user_info[KEY.EMAIL]], "认证失败消息", "您的实名认证失败,请重新认证") return self.write( 'the link is fail (The effective time has passed.)') else: verify_user_info[KEY.IS_VERIFY] = 1 success = db.update_user(verify_user_info) if success: return self.write("success comfirm") else: sendEmail.sendEmail([verify_user_info[KEY.EMAIL]], "认证失败消息", "您的实名认证失败,请重新认证") return self.write("server error")
def post(self): id = self.get_secure_cookie("id") resp = {} if self.get_secure_cookie("passwordVerify") != "yes": resp[KEY.STATUS] = 400 else: params = utils.decode_params(self.request) resp[KEY.STATUS] = 500 if KEY.ID in params and KEY.EMAIL in params: emailAddress = params[KEY.EMAIL].replace("%40", "@") #防止有人跨过登录这个地址 while (True): idencode = ''.join(random.sample(string.ascii_letters, 4)) tempParams = {} tempParams[KEY.IDENCODE] = idencode if db.get_verify_email_by_idencode(tempParams) == None: params[KEY.IDENCODE] = idencode break link = "链接为: " + "http://120.24.208.130:8000/account/userinfo/modify/email_verify/" + params[KEY.IDENCODE] # link = "链接为: " + "localhost:8000/account/userinfo/modify/email_verify/" + params[KEY.IDENCODE] if sendEmail.sendEmail([emailAddress], "邮箱验证", link) == 200: params[KEY.ID] = int(params[KEY.ID]) verify = db.add_email_verify(params) if verify != -1: #self.set_secure_cookie("passwordVerify", "no") resp[KEY.STATUS] = 200 return self.write(json_encode(resp))
def post(self): resp = {} resp[KEY.STATUS] = 500 params = {} params = utils.decode_params(self.request) if KEY.EMAIL in params and KEY.ACCOUNT in params: idencode = ''.join(random.sample(string.ascii_letters, 4)) #emailt = email.PlainEmail() params[KEY.EMAIL] = params[KEY.EMAIL].replace("%40", '@') if sendEmail.sendEmail([params[KEY.EMAIL]], "账号信息修改", "您的验证码为:" + idencode) == 200: md5_encode = hashlib.md5() md5_encode.update(params[KEY.ACCOUNT] + idencode + "?" + params[KEY.EMAIL]) idencode = md5_encode.hexdigest() resp[KEY.STATUS] = 200 resp["secret"] = idencode self.write(json_encode(resp))
def post(self): id = self.get_secure_cookie("id") resp = {} if self.get_secure_cookie("passwordVerify") != "yes": resp[KEY.STATUS] = 400 else: params = utils.decode_params(self.request) resp[KEY.STATUS] = 500 if KEY.ID in params and KEY.EMAIL in params: emailAddress = params[KEY.EMAIL].replace("%40", "@") #防止有人跨过登录这个地址 while (True): idencode = ''.join(random.sample(string.ascii_letters, 4)) tempParams = {} tempParams[KEY.IDENCODE] = idencode if db.get_verify_email_by_idencode(tempParams) == None: params[KEY.IDENCODE] = idencode break link = "链接为: " + "http://120.24.208.130:8000/account/userinfo/modify/email_verify/" + params[ KEY.IDENCODE] # link = "链接为: " + "localhost:8000/account/userinfo/modify/email_verify/" + params[KEY.IDENCODE] if sendEmail.sendEmail([emailAddress], "邮箱验证", link) == 200: params[KEY.ID] = int(params[KEY.ID]) verify = db.add_email_verify(params) if verify != -1: #self.set_secure_cookie("passwordVerify", "no") resp[KEY.STATUS] = 200 return self.write(json_encode(resp))
def request_item_view(request, ids): print("Enter exchange/request_item_view") if request.method != "GET": raise Http404 ids = ids.split(" ") # double check the url data if len(ids) != 2 or not ids[0].isnumeric() or not ids[1].isnumeric(): raise Http404 myItemId, itemId = int(ids[0]), int(ids[1]) # check if the ids are valid if ExchangeItem.objects.filter(pk=myItemId).count() == 0 or \ ExchangeItem.objects.filter(pk=myItemId).count() ==0: raise Http404 # ids.append(roomname) # sendrequest.delay(" ".join(ids)) myItem = ExchangeItem.objects.get(pk=myItemId) user = request.user userEmail = user.email otherItem = ExchangeItem.objects.get(pk=itemId) owner = otherItem.user ownerEmail = owner.email roomname = generateRandomCode(ROOMNAME_LENGTH) chatroom = ChatRoom(user1=user, user2=owner, roomname=roomname) chatroom.save() # update both item status myItem.request.add(otherItem) if myItem.status < 1: myItem.status = 1 if otherItem.status < 1: otherItem.status = 1 myItem.save() otherItem.save() context = { "name": otherItem.name, "id": otherItem.pk, "description": otherItem.description, "price": otherItem.price, "status": otherItem.status, "item": otherItem, "owner": otherItem.user } # master # context = {"name": otherItem.name, # "id": otherItem.pk, # "description": otherItem.description, # "price": otherItem.price, # "status": otherItem.status, # "owner": otherItem.user, # "item": otherItem, # "myItem": myItem} # master print(userEmail, ownerEmail) msg1 = """Hi {0},\n\n User {1} would like to exchange for your "{2}" with "{3}".\n Accept this request if you are interested!\n You can contact {1} through:\n 1. SwapSpace's chatroom at http://74739114.ngrok.io/chat, enter code <{5}> to start chatting!\n 2. Or at {4}. Thanks!""".format(owner, user, otherItem, myItem, userEmail, roomname) sendEmail(ownerEmail, "request", msg1) msg2 = """Hi {0},\n\n Your exchange request for "{1}" with your "{2}" has been sent successfully!\n To follow up this request, \n 1. SwapSpace's chatroom at http://74739114.ngrok.io/chat, enter code <{4}> to start chatting!\n 2. Or at {3}. Thanks!""".format(user, otherItem, myItem, ownerEmail, roomname) sendEmail(userEmail, "request", msg2) return redirect(reverse('item_detail', kwargs={'id': otherItem.pk}))