Example #1
0
def login(request):
    if request.method == 'POST':
        from logic.models import User
        cur_user = User()
        form = RegisterForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['uid']
            password = form.cleaned_data['password']
            q = User.objects.filter(uid=username, password=password)
            if q.__len__() != 0:
                cur_user.name = q[0].name
                cur_user.uid = q[0].uid
                q[0].lobby_id = 0
                q[0].save()
                userdict = {'uid': username, 'name': cur_user.name}
                all_lobbies = Lobby.objects.all()
                lobbies = []
                into_lobby_form = IntoLobbyForm()
                lobby_length = all_lobbies.__len__()
                for i in range(0, lobby_length):
                    lobby = {
                        'user_num':
                        User.objects.filter(lobby_id=(i + 1)).__len__(),
                        'lobby_name': all_lobbies[i].name
                    }
                    lobbies.append(lobby)
                return render(
                    request, 'login_complete.html', {
                        'lobbies': lobbies,
                        'Dict': json.dumps(userdict),
                        'into_lobby_form': into_lobby_form,
                    })
            else:
                return HttpResponse("用户名或密码错误!")
Example #2
0
def register():
    """注册
    1. 接收参数(手机号, 短信验证码, 密码(明文))
    2. 校验参数(判断参数是否齐全,手机号是否合法)
    3.查询服务器存储的短信验证码
    4. 跟客户传入的短信验证码对比
    5. 如果对比成功,则创建USer模型对象,并赋值属性
    6. 同步数据模型到数据库
    7. 将状态保持数据写入session(实现注册即登录)
    8. 返回注册结果"""
    # 1.接收参数(手机号, 短信验证码, 密码(明文))
    # json 封装了==json.loads(json_str)
    json_dict = request.json
    mobile = json_dict.get('mobile')
    smscode_client = json_dict.get('smscode')
    password = json_dict.get('password')
    # 2.校验参数(判断参数是否齐全, 手机号是否合法)
    if not all([mobile, smscode_client, password]):
        # '{'errno':'0', 'errmsg':'OK'}'
        return jsonify(errno=response_code.RET.PARAMERR, errmsg='缺少参数')
    if not re.match(r'^1[345678][0-9]{9}$', mobile):
        return jsonify(errno=response_code.RET.PARAMERR, errmsg='手机号格式错误')
    # 3.查询服务器存储的短信验证码
    try:
        smscode_server = redis_store.get('SMS:' + mobile)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=response_code.RET.DBERR, errmsg='查询短信验证码失败')

    if not smscode_server:
        return jsonify(errno=response_code.RET.NODATA, errmsg='短信验证码不存在')
    # 4.跟客户传入的短信验证码对比
    if smscode_client != smscode_server:
        return jsonify(errno=response_code.RET.PARAMERR, errmsg='输入短信验证码错误')
    # 5.如果对比成功, 则创建USer模型对象, 并赋值属性
    user = User()
    user.mobile = mobile
    user.nick_name = mobile
    user.password = password
    user.last_login = datetime.datetime.now()
    # 6.同步数据模型到数据库
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errno=response_code.RET.DBERR, errmsg='存储数据失败')
    # 7. 将状态保持数据写入session(实现注册即登录)
    session['user_id'] = user.id
    session['mobile'] = user.mobile
    session['nick_name'] = user.nick_name
    # 8. 返回注册结果
    return jsonify(errno=response_code.RET.OK, errmsg='注册成功')
Example #3
0
def new_user():
    username = request.json.get('username')
    password = request.json.get('password')
    email = request.json.get('email')

    if username is None or password is None or email is None:
        abort(400, 'Missing username, password or email')
    if User.query.filter_by(username=username).first() is not None:
        abort(400, 'User already exists')
    user = User(username=username, email=email)
    user.hash_password(password)
    db.session.add(user)
    db.session.commit()
    return jsonify({'response': user.username + ' created'}), 201
Example #4
0
def register():

    # cut the page for authenticated users
    if current_user.is_authenticated:
        return redirect(url_for('index'))

    # declare the Registration Form
    form = RegistrationForm()
    if form.validate_on_submit():
        user = User(username=form.username.data, email=form.email.data)
        user.set_password(form.password.data)
        db.session.add(user)
        db.session.commit()
        flash('Congrats! You have suceessfully registered.')
        return redirect(url_for('login'))
    return render_template('auth/register.html', title='Register', form=form)
Example #5
0
def register(request):
    if request.method == 'GET':
        from logic.models import User
        new_user = User()
        new_user.uid = request.GET['reg_user']
        new_user.password = request.GET['reg_password']
        password_again = request.GET['reg_password_again']
        new_user.name = request.GET['reg_name']
        new_user.lobby_id = 0
        new_user.iconnum = request.GET['iconnum']
        new_user.status = 10000
        new_user.latest_time = "2015-01-01 12:00:00"
        new_user.score = 0
        new_user.win_num = 0
        new_user.tie_num = 0
        new_user.lose_num = 0
        dict1 = {'login': '******', 'reg': '0'}
        form = RegisterForm()
        all_lobbies = Lobby.objects.all()
        lobbies = []
        lobby_length = all_lobbies.__len__()
        for i in range(0, lobby_length):
            user_num = User.objects.filter(lobby_id=(i + 1)).__len__()
            lobby = {'user_num': user_num, 'lobby_name': all_lobbies[i].name}
            lobbies.append(lobby)
        if new_user.password == password_again:
            if not has_same_uid(new_user):
                new_user.save()
                return render(request, 'index.html', {
                    'Dict': json.dumps(dict1),
                    'lobbies': lobbies,
                    'form': form,
                })
            else:
                dict1['reg'] = '1'
                return render(request, 'index.html', {
                    'Dict': json.dumps(dict1),
                    'lobbies': lobbies,
                    'form': form,
                })
        else:
            dict1['reg'] = '2'
            return render(request, 'index.html', {
                'Dict': json.dumps(dict1),
                'lobbies': lobbies,
                'form': form,
            })
Example #6
0
def register(request):
    if request.method == 'GET':
        from logic.models import User
        new_user = User()
        new_user.uid = request.GET['reg_user']
        new_user.password = request.GET['reg_password']
        password_again = request.GET['reg_password_again']
        new_user.name = request.GET['reg_name']
        new_user.lobby_id = 0
        if new_user.password == password_again:
            if not has_same_uid(new_user):
                new_user.save()
                return HttpResponseRedirect("http://127.0.0.1:8000")
            else:
                return HttpResponse("same name!")
        else:
            return HttpResponse("两次密码输入不一致!")
Example #7
0
def create_admin(name, password):

    if not all([name, password]):
        print("参数错误")

    user = User()
    user.nick_name = name
    user.mobile = name
    user.password = password
    user.is_admin = True

    try:
        db.session.add(user)
        db.session.commit()
    except Exception as err:
        print(err)
        db.session.rollback()
Example #8
0
def login(request):
    if request.method == 'POST':
        if request.session['has_loggedin']:
            from logic.models import User
            cur_user = User.objects.get(uid=request.session['uid'])
            userdict = {
                'uid': cur_user.uid,
                'name': cur_user.name,
                'iconnum': cur_user.iconnum
            }
            all_lobbies = Lobby.objects.all()
            lobbies = []
            lobby_length = all_lobbies.__len__()
            for i in range(0, lobby_length):
                lobby = {
                    'user_num':
                    User.objects.filter(lobby_id=(i + 1)).__len__(),
                    'lobby_name': all_lobbies[i].name
                }
                lobbies.append(lobby)
            into_lobby_form = IntoLobbyForm()
            return render(
                request, 'login_complete.html', {
                    'Dict': json.dumps(userdict),
                    'lobbies': lobbies,
                    'into_lobby_form': into_lobby_form,
                })
        from logic.models import User
        cur_user = User()
        form = RegisterForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['uid']
            password = form.cleaned_data['password']
            q = User.objects.filter(uid=username, password=password)
            if q.__len__() != 0:
                cur_user.name = q[0].name
                cur_user.uid = q[0].uid
                cur_user.iconnum = q[0].iconnum
                userdict = {
                    'uid': username,
                    'name': cur_user.name,
                    'iconnum': cur_user.iconnum
                }
                request.session['has_loggedin'] = True
                request.session['uid'] = cur_user.uid
                all_lobbies = Lobby.objects.all()
                lobbies = []
                lobby_length = all_lobbies.__len__()
                for i in range(0, lobby_length):
                    lobby = {
                        'user_num':
                        User.objects.filter(lobby_id=(i + 1)).__len__(),
                        'lobby_name': all_lobbies[i].name
                    }
                    lobbies.append(lobby)
                into_lobby_form = IntoLobbyForm()
                return render(
                    request, 'login_complete.html', {
                        'Dict': json.dumps(userdict),
                        'lobbies': lobbies,
                        'into_lobby_form': into_lobby_form,
                    })
            else:
                all_lobbies = Lobby.objects.all()
                lobbies = []
                lobby_length = all_lobbies.__len__()
                for i in range(0, lobby_length):
                    lobby = {
                        'user_num':
                        User.objects.filter(lobby_id=(i + 1)).__len__(),
                        'lobby_name': all_lobbies[i].name
                    }
                    lobbies.append(lobby)
                dict1 = {'login': '******', 'reg': '0'}
                return render(request, 'index.html', {
                    'Dict': json.dumps(dict1),
                    'lobbies': lobbies,
                    'form': form,
                })

    else:
        form = RegisterForm()
        all_lobbies = Lobby.objects.all()
        lobbies = []
        lobby_length = all_lobbies.__len__()
        for i in range(0, lobby_length):
            lobby = {
                'user_num': User.objects.filter(lobby_id=(i + 1)).__len__(),
                'lobby_name': all_lobbies[i].name
            }
            lobbies.append(lobby)
        return render_to_response("index.html", {
            'form': form,
            'lobbies': lobbies,
        },
                                  context_instance=RequestContext(request))