def confirm_request(request, key): req_user = RegistrationRequest().get(key) try: user_obj = UserProfile.create_inactive_user(user_name=string.lower(req_user.email), email=string.lower(req_user.email), password="******") except DuplicateKeyError: user_obj = UserProfile.all().filter('user_name =', string.lower(req_user.email)).get() user_obj.first_name = req_user.first_name user_obj.password = req_user.password user_obj.telephone = req_user.telephone user_obj.manager = req_user.manager user_obj.company_name = req_user.company user_obj.put() req_user.delete() return redirect(url_for('admin/reg_requests'))
def txn(): reg_request_obj = RegistrationRequest( first_name=request.form["first_name"], email=request.form["email"], telephone=request.form["telephone"], company=request.form["company"], password=crypto.gen_pwhash(request.form["password"]), manager=db.Key(request.form.get("manager")), ) reg_request_obj.put() taskqueue.add( url=url_for("auth5/send_request_to_manager", request_key=str(reg_request_obj.key())), transactional=True, )
def send_request_to_manager(request, request_key): req_request = RegistrationRequest.get(request_key) subject = render_to_string("auth5/request_2manager_subject.txt", {"id": req_request.key().id()}) subject = "".join(subject.splitlines()) message = render_to_string("auth5/request_2manager_body.txt", {"reg_request": req_request}) if req_request.manager: mail.send_mail(subject=subject, body=message, sender=settings.DEFAULT_MAIL_FROM, to=req_request.manager.email) else: managers = Manager.all() for manager in managers: mail.send_mail(subject=subject, body=message, sender=settings.DEFAULT_MAIL_FROM, to=manager.email) return Response("OK")
def refuse_request(request, key): req_user = RegistrationRequest().get(key) req_user.delete() return redirect(url_for('admin/reg_requests'))
def reg_request(request): form = RegistrationRequestForm() managers = Manager.all().filter("is_hidden =", False) if request.method == "POST": if form.validate(request.form): email = request.form["email"] user = UserProfile.all().filter("email =", email).count() if user: default_manager = request.form.get("manager") default_manager = Manager.get(default_manager).key() form.append_errors( u"Этот email уже используется. \ Возможно Вы уже зарегистрировались.", "email", ) return render_to_response( "auth5/reg_request.html", {"form": form.as_widget(), "managers": managers, "default_manager": default_manager}, ) reg_reqs = RegistrationRequest.all().filter("email =", email).count() if reg_reqs: default_manager = request.form.get("manager") default_manager = Manager.get(default_manager).key() form.append_errors( u"Этот email уже используется. \ Возможно Вы уже отправили заявку на регистрацию.", "email", ) return render_to_response( "auth5/reg_request.html", {"form": form.as_widget(), "managers": managers, "default_manager": default_manager}, ) def txn(): reg_request_obj = RegistrationRequest( first_name=request.form["first_name"], email=request.form["email"], telephone=request.form["telephone"], company=request.form["company"], password=crypto.gen_pwhash(request.form["password"]), manager=db.Key(request.form.get("manager")), ) reg_request_obj.put() taskqueue.add( url=url_for("auth5/send_request_to_manager", request_key=str(reg_request_obj.key())), transactional=True, ) db.run_in_transaction(txn) return render_to_response("auth5/thanks.html") default_manager = None if request.form.get("manager"): default_manager = request.form.get("manager") default_manager = Manager.get(default_manager).key() else: def_mangers = Manager.all().filter("is_hidden =", False).filter("is_default", True) if def_mangers.count(): default_manager = random.randrange(0, def_mangers.count()) default_manager = def_mangers[default_manager].key() else: if managers.count(): default_manager = random.randrange(0, managers.count()) default_manager = managers[default_manager].key() return render_to_response( "auth5/reg_request.html", {"form": form.as_widget(), "managers": managers, "default_manager": default_manager} )