示例#1
0
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'))
示例#2
0
 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,
     )
示例#3
0
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")
示例#4
0
def refuse_request(request, key):
    req_user = RegistrationRequest().get(key)
    req_user.delete()
    return redirect(url_for('admin/reg_requests'))
示例#5
0
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}
    )