コード例 #1
0
ファイル: home.py プロジェクト: nextgis/uik_geo
def home_signin(request):
    result = home(request)

    if "sign_out" in request.POST.keys():
        request.session.invalidate()
        result["u_name"] = None

    else:
        email = request.POST["mail"]
        password = request.POST["pass"]

        session = DBSession()
        user = (
            session.query(User)
            .filter(User.email == email, User.password == User.password_hash(password, "rte45EWRRT"))
            .first()
        )
        if user:
            request.session["sk"] = generate_session_id()
            request.session["u_name"] = user.display_name
            request.session["u_id"] = user.id
            request.response.set_cookie("sk", value=request.session["sk"], max_age=86400)
            result["u_name"] = user.display_name
        session.close()

    result["static_version"] = request.registry.settings["static_version"]

    return result
コード例 #2
0
ファイル: register.py プロジェクト: nextgis/uik_geo
def register_post(request):
    session = DBSession()
    errors = []
    info = ''

    if not request.POST['name']:
        errors.append(u'Вы не указали ваше имя')

    if request.POST['email']:
        import re
        if not re.match(r"[^@]+@[^@]+\.[^@]+", request.POST['email']):
            errors.append(u'Неправильный формат адреса электронной почты - адрес должен иметь вид [email protected]')
        existed_email = session.query(User.email).filter(User.email == request.POST['email']).count()
        if existed_email > 0:
            errors.append(u'Пользователь с таким адресом электронной почты (%s) уже существует' % request.POST['email'])
    else:
        errors.append(u'Вы не указали адрес вашей электронной почты')

    if 'password' in request.POST.keys() or request.POST['pass']:
        if not request.POST['pass2'] or request.POST['pass'] != request.POST['pass2']:
            errors.append(u'Введенные вами пароли не совпадают')
        if len(request.POST['pass']) < 5:
            errors.append(u'Длина пароля должна быть больше 4 символов')
    else:
        errors.append(u'Вы не указали пароль')

    if not errors:
        with transaction.manager:
            user = User()
            user.display_name = request.POST['name']
            user.email = request.POST['email']
            user.password = User.password_hash(request.POST['pass'], 'rte45EWRRT')
            user.registered_time = datetime.datetime.now()
            session.add(user)
        info = u'Вы зарегистрированы. Поздравляем!'

    session.close()

    return {
        'errors': errors,
        'info': info
    }
コード例 #3
0
ファイル: home.py プロジェクト: nextgis/uik_geo
def home(request):
    user_name = None
    if (
        hasattr(request, "cookies")
        and "sk" in request.cookies.keys()
        and "sk" in request.session
        and request.session["sk"] == request.cookies["sk"]
        and "u_name" in request.session
    ):
        user_name = request.session["u_name"]

    session = DBSession()
    geocoding_precisions = session.query(GeocodingPrecision).order_by(asc(GeocodingPrecision.id)).all()
    session.close()

    return {
        "u_name": user_name,
        "project": "uik_ru",
        "geocoding_precisions": geocoding_precisions,
        "static_version": request.registry.settings["static_version"],
    }