Пример #1
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        user = User.query.filter_by(name=data['name']).first()
        if user ==None :
            flash("密码或账号错误",'err')
            return redirect(url_for("home.login"))
        if not user.check_pwd(data['pwd']):
            flash('密码或账号错误','err')
            return redirect(url_for("home.login"))
        if user.status==0:
            flash('账号被冻结','err')
        session['username'] = data['name']
        session['user_id']=user.id
        userlog=Userlog(
            user_id=user.id,
            # 获取ip
            ip=request.remote_addr
        )
        db.session.add(userlog)
        db.session.commit()
        return redirect(request.args.get('next') or url_for('home.index',page=1))

    username = get_username()
    if username != None:
        context = {
            'login': username
        }
    else:
        context = {
            'login': "******"
        }

    return render_template("home/login.html",form=form,context=context)
Пример #2
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        users = []
        # user = User.query.filter_by(phone=data['name']).first()
        users.append(User.query.filter_by(name=data['name']).first())
        users.append(User.query.filter_by(email=data['name']).first())
        users.append(User.query.filter_by(phone=data['name']).first())
        print(users)
        # 另一种方法是先去除列表中的None,在进行判断
        for user in users:
            if user:
                if not user.check_pwd(data['pwd']):
                    # flash("密码不正确!", "err")
                    flash("登录名或登录密码不正确!", "err")
                    return redirect(url_for("home.login"))
                session["user"] = user.name
                session["user_id"] = user.id
                ip = request.remote_addr
                address = admin_address(ip)
                userlog = Userlog(
                    user_id=user.id,
                    # ip=request.remote_addr
                    ip=ip,
                    address=address,
                )
                db.session.add(userlog)
                db.session.commit()
                return redirect(url_for("home.user"))
        # flash("用户不存在,请重新输入!", "err")
        flash("登录名或登录密码不正确!", "err")
        return redirect(url_for("home.login"))
    return render_template('home/login.html', form=form)
Пример #3
0
 def InsertUserlog(self):
     userlog = Userlog(
         user_id = session["user_id"],
         ip = request.remote_addr
     )
     db.session.add(userlog)
     db.session.commit()
Пример #4
0
def login():
    # 实例化表单
    form = LoginForm()
    # 数据库操作
    if form.validate_on_submit():  # 提交表单时进行验证
        # 获取输入的数据
        data = form.data

        # 判断输入的账号是否正确
        user_count = User.query.filter_by(
            name=data["name"]).count()  # 读取数据库里数据的个数
        if user_count == 0:
            flash("账号错误!", "err")
            return redirect(url_for("home.login"))

        # 数据库里筛选查找tag名是否有相同的
        user = User.query.filter_by(name=data["name"]).first()
        if not user.check_pwd(data['pwd']):  # 如果密码错误
            flash("密码错误!", "err")
            return redirect(url_for("home.login"))

        # 密码正确,就保存到session里
        session["user"] = data["name"]
        # 保存id,用于日志
        session["user_id"] = user.id

        userlog = Userlog(user_id=user.id, ip=request.remote_addr)
        db.session.add(userlog)
        db.session.commit()
        return redirect(url_for("home.user"))
    return render_template('home/login.html', form=form)
Пример #5
0
def login():
    """
    登陆
    """
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        user = User.query.filter_by(name=data['name']).first()
        if not user:
            flash("用户名错误,请重新输入!", category="err")
            return redirect(url_for("home.login"))

        if not user.check_pwd(data['pwd']):
            flash("密码错误,请重新输入!", category="err")
            return redirect(url_for("home.login"))
        session['user'] = user.name
        session['user_id'] = user.id
        userlog = Userlog(
            user_id=user.id,
            ip=request.remote_addr
        )
        db.session.add(userlog)
        db.session.commit()
        next = request.args.get('next')
        if not next or not next.startswith('/'):
            next = url_for('home.index')
        return redirect(next)
    return render_template('home/login.html', form=form)
Пример #6
0
def image_upload():
    image = request.files['file']
    image_type = request.args.get('type')
    if image is not None:
        if image_type == 'avatar':
            filename = secure_filename(image.filename)
            filename = str(time.time()) + '.' + filename.split('.')[-1]
            image.save('app/static/' + filename)
            User.query.filter_by(id=g.user_id).update(
                {'face': request.base_url + '/' + filename + '?w=100&h=100'})
            user_log = Userlog(user_id=g.user_id, reason="更改头像")
            db.session.add(user_log)
            db.session.commit()
            return jsonify({'flag': 'success', 'status': 200})

        elif image_type == 'markdown':
            filename = secure_filename(image.filename)
            image.save('app/static/' + str(filename))
            return jsonify({
                'flag':
                'success',
                'status':
                200,
                'image_url':
                request.base_url + '/' + filename + '?w=400&h=400'
            })
    return jsonify({'flag': 'error', 'status': 400})
Пример #7
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        user = User.query.filter_by(email=data["email"]).first()
        if not user.check_pwd(data["pwd"]):
            flash("密码错误!", "err")
            return redirect(url_for("registration.login"))

        # if not data["captcha"]:
        #     flash("请拖动滑块!", "err")
        #     return redirect(url_for("registration.login"))

        session["user"] = user.email
        session["user_id"] = user.id
        userlog = Userlog(
            user_id=user.id,
            ip=request.remote_addr,
        )
        db.session.add(userlog)
        db.session.commit()
        return redirect(
            request.args.get("next")
            or url_for("registration.userinfo"))  # 登录后返回之前位置实现失败

    gzdt_tags = nav_tags("工作动态")  # 工作动态
    ksgs_tags = nav_tags("考试报名")  # 考试报名
    djjs_tags = nav_tags("等级介绍")  # 等级介绍
    return render_template("registration/login.html",
                           form=form,
                           gzdt_tags=gzdt_tags,
                           ksgs_tags=ksgs_tags,
                           djjs_tags=djjs_tags)
Пример #8
0
def login():
    '''
    用户登陆
    '''
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        name = data["name"]
        user = User.query.filter_by(name=name).first()
        if user:
            if check_password_hash(user.pwd, form.pwd.data):
                # 记录登陆信息
                session["user"] = user.name
                session["user_id"] = user.id

                # 用户登陆日志
                userlog = Userlog(
                    user_id=user.id,
                    # ip=request.headers['X-Real-IP']
                    ip=request.remote_addr
                )
                db.session.add(userlog)
                db.session.commit()

                return redirect(url_for("home.index", page=1))
            else:
                flash("密码错误请重试", "success")
                return redirect(url_for("home.login"))
        else:
            flash("用户未注册,请先进行注册", "success")
            time.sleep(5)
            return redirect(url_for("home.register"))
    return render_template("home/login2.html", form=form)
Пример #9
0
def login():
    """
    登录
    """
    form = LoginForm()              # 实例化LoginForm类
    if form.validate_on_submit():   # 如果提交
        data = form.data            # 接收表单数据
        # 判断用户名和密码是否匹配
        user = User.query.filter_by(email=data["email"]).first()    # 获取用户信息
        if not user :
            flash("邮箱不存在!", "err")           # 输出错误信息
            return redirect(url_for("home.login")) # 调回登录页
        if not user.check_pwd(data["pwd"]):     # 调用check_pwd()方法,检测用户名密码是否匹配
            flash("密码错误!", "err")           # 输出错误信息
            return redirect(url_for("home.login")) # 调回登录页

        session["user_id"] = user.id                # 将user_id写入session, 后面用户判断用户是否登录
        # 将用户登录信息写入Userlog表
        userlog = Userlog(
            user_id=user.id,
            ip=request.remote_addr
        )
        db.session.add(userlog) # 存入数据
        db.session.commit()     # 提交数据
        return redirect(url_for("home.index")) # 登录成功,跳转到首页
    return render_template("home/login.html", form=form) # 渲染登录页面模板
Пример #10
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        user = User.query.filter_by(name=data['name']).first()

        if not user:
            flash("账号不存在!", 'err')
            return redirect(url_for("home.login"))

        if not user.check_pwd(data['pwd']):
            flash("密码错误!", 'err')
            return redirect(url_for("home.login"))

        # 账号冻结
        if not user.status == 0:
            flash("该账号已经被冻结了,请联系客服!", 'err')
            return redirect(url_for("home.login"))

        session['user'] = data['name']
        session['user_id'] = user.id
        userlog = Userlog(
            user_id=session['user_id'],
            ip=request.remote_addr,
        )
        db.session.add(userlog)
        db.session.commit()
        return redirect(request.args.get('next') or url_for("home.user"))
    return render_template('home/new_login.html', form=form)
Пример #11
0
def login():
    """
    用户登录
    :return:
    """
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        user = User.query.filter_by(name=data["name"]).first()
        if user:
            if not user.check_pwd(data["pwd"]):
                flash("密码错误!", "err")
                return redirect(url_for("home.login"))
        else:
            flash("账号不存在!", "err")
            return redirect(url_for("home.login"))
        session["user"] = user.name
        session["user_id"] = user.id
        userlog = Userlog(
            user_id=user.id,
            ip=request.remote_addr
        )
        db.session.add(userlog)
        db.session.commit()
        return redirect(url_for("home.user"))
    return render_template("home/login.html", form=form)
Пример #12
0
def wxlogin():
    if (request.method == 'POST'):
        if not (request.json):
            res = {
                "result": 'false'
            }
            return (dumps(res))
        else:
            # 验证密码
            data = request.get_json()
            rec_phone = data['phone']
            rec_pwd = data['password']
            user = User.query.filter_by(phone=rec_phone).first()
            if user is not None and user.verify_password(rec_pwd) and user.frozen == 0:
                userlog = Userlog(
                    user_id=user.id,
                    ip=request.remote_addr,
                )
                db.session.add(userlog)
                db.session.commit()
                res = {
                    "result": 'success'
                }
            else:
                res = {
                    "result": 'pwderror'
                }
            return (dumps(res))
    else:
        res = {
            "result": 'false'
        }
        return (dumps(res))
Пример #13
0
def login():
    """
    登录视图
    :return: login.html
    """
    if request.method == 'GET':  # get请求
        form = LoginForm()
        return render_template('home/login.html', form=form)
    else:  # post请求
        form = LoginForm(request.form)
        if form.validate_on_submit():
            data = form.data
            user = User.query.filter_by(name=data['name']).first()
            if user:
                if not user.check_password(data['password']):
                    flash("密码错误", 'err')
                    return redirect(url_for('home.login'))
            else:
                flash("输入的账户不存在", 'err')
                return redirect(url_for('home.login'))

            session['user'] = user.name
            session['user_id'] = user.id
            userlog = Userlog(user_id=user.id)
            db.session.add(userlog)
            db.session.commit()
            return redirect(url_for('home.user'))
        return render_template('home/login.html', form=form)
Пример #14
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        # 使用or查询满足一个即可
        user = User.query.filter_by(name=data['name']).first()
        # print('---------')
        # print(user)
        if user == None:
            user = User.query.filter_by(email=data['name']).first()
            if user == None:
                user = User.query.filter_by(phone=data['name']).first()
                print(user)
                if user == None:
                    flash('用户名不存在!', 'err')
                    return redirect(url_for('home.login'))
        if not user.check_pwd(data['pwd']):
            flash('用户名或密码错误!', 'err')
            return redirect(url_for('home.login'))
        session['user'] = user.name
        session['user_id'] = user.id
        userlog = Userlog(user_id=user.id, ip=request.remote_addr)
        db.session.add(userlog)
        db.session.commit()
        return redirect(url_for('home.user'))
    return render_template('home/login.html', form=form)
Пример #15
0
def login():
    from app.models import User, Userlog
    form = LoginForm()
    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        user = User.query.filter_by(name=username).first()
        if user and user.verify_password(password):
            # session信息的保存
            session['user_id'] = user.id
            session['user'] = user.name
            flash("用户%s登录成功" % (user.name))
            remote_ip = request.remote_addr
            # 将登录信息写到日志中;
            userlog = Userlog(user_id=user.id,
                              ip=remote_ip,
                              area='xxx内网IP')
            db.session.add(userlog)
            db.session.commit()

            # 从index蓝图里面寻找index函数;
            return redirect(url_for('home.user'))
        else:
            flash("用户登录失败")
            return redirect(url_for('home.login'))
    return render_template('home/login.html',
                           form=form)
Пример #16
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        user_co = 0
        if User.query.filter_by(name=data['name']).count():
            user = User.query.filter_by(name=data['name']).first()
            user_co = 1
        elif User.query.filter_by(email=data['name']).count():
            user = User.query.filter_by(email=data['name']).first()
            user_co = 1
        elif User.query.filter_by(phone=data['name']).count():
            user = User.query.filter_by(phone=data['name'])
            user_co = 1
        if not user_co or not user.check_pwd(data['pwd']):
            flash('登录失败', 'err')
            return redirect(url_for('home.login'))
        session['user'] = user.name
        session['user_id'] = user.id
        # flash('用户登陆成功', 'ok')
        userlog = Userlog(
            user_id=user.id,
            ip=request.remote_addr
        )
        db.session.add(userlog)
        db.session.commit()
        return redirect(url_for('home.index'))
    return render_template('home/login.html', form=form)
Пример #17
0
def wechat_login():
    """微信用户自动注册和登录

    @@@
    #### args

    | args | nullable | type | remark |
    |--------|--------|--------|--------|
    |    code    |    false    |    String   |    小程序wx.login后的code    |

    #### return
    - ##### json
    > {"msg": "success", "code": 200}
    @@@
    """
    code = request.args.get('code')
    openid = get_code(code)
    res = User.query.filter_by(openid=openid).first()
    ip = request.remote_addr
    token = generate_auth_token(code)
    if not res:
        res = User(openid=openid, token=token)
        db.session.add(res)
        db.session.commit()
        user = User.query.filter_by(openid=openid).first()
        logs = Userlog(user_id=user.id, ip=ip)
        db.session.add(logs)
        db.session.commit()
        return jsonify({
            "status": 200,
            "msg": "登录成功",
            "token": token,
            "user_id": user.id
        })
    else:
        logs = Userlog(user_id=res.id, ip=ip)
        res.token = token
        db.session.add(logs)
        db.session.commit()
        return jsonify({
            "status": 200,
            "msg": "已经登录了",
            "token": res.token,
            "user_id": res.id
        })
Пример #18
0
def loginlog():
    users = User.query.filter_by(name=session.get('account')).all()
    for i in users:
        user_id = i.id
        user = session.get('account')
        user_log = Userlog(user_id=user_id)
        db.session.add(user_log)
        db.session.commit()
        userlog = Userlog.query.all()
    return render_template('home/loginlog.html', user=user, userlog=userlog)
Пример #19
0
def login():
    user = User.query.filter_by(name=request.form.get('name')).first()
    password = request.form.get('password')

    if user is not None and user.verify_password(password=password):
        user_log = Userlog(user_id=user.id, reason="登陆")
        db.session.add(user_log)
        db.session.commit()
        return response_to_json.current_user(
            user, str(Auth.encode_token(user.id), encoding='utf-8'))
    return jsonify({'isAuthorization': 'false', 'status': 400})
Пример #20
0
def update_user_tag(id):
    tag = request.form.get('tag')
    print(tag)
    if tag:
        User.query.filter_by(id=id). \
            update({'tag': tag})
        user_log = Userlog(user_id=g.user_id, reason="修改信息")
        db.session.add(user_log)
        db.session.commit()
        return jsonify({'id': id, 'flag': 'success', 'status': 200})
    else:
        return jsonify({'status': 400})
Пример #21
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        user = User.query.filter_by(name=data['name']).first()
        if not user.check_pwd(data['pwd']):
            flash('密码错误', 'error')
            return redirect(url_for('home.login'))
        session['user'] = user.name
        session['user_id'] = user.id
        userlog = Userlog(user_id=user.id, ip=request.remote_addr)
        db.session.add(userlog)
        db.session.commit()
        return redirect(url_for('home.user'))
    return render_template('home/login.html', form=form)
Пример #22
0
def login():
    form = LoginForm()  # 导入登录表单
    if form.validate_on_submit():  # 验证是否有提交表单
        data = form.data
        user = User.query.filter_by(name=data["name"]).first()
        if not user.check_pwd(data["pwd"]):
            flash("密码错误!", "err")
            return redirect(url_for("home.login"))
        session["user"] = data["name"]
        session["user_id"] = user.id
        userlog = Userlog(user_id=user.id, ip=request.remote_addr)
        db.session.add(userlog)
        db.session.commit()
        return redirect(request.args.get("next") or url_for("home.user"))
    return render_template("home/login.html", form=form)
Пример #23
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        user = User.query.filter_by(username=data["username"]).first()
        if not user or not user.check_pwd(data["password"]):
            flash("Error password!", "err")
            return redirect(url_for("home.login"))
        session["user"] = user.username
        session["user_id"] = user.id
        userlog = Userlog(user_id=user.id, ip=request.remote_addr)
        db.session.add(userlog)
        db.session.commit()
        print(user)
        return redirect(url_for("home.index"))
    return render_template("home/login.html", form=form)
Пример #24
0
 def post(self):
     args = parser.parse_args()
     email = args['email']
     password = args['password']
     user = User.query.filter_by(email=email).first()
     if user is None:
         user = User(email=email, pwd=password)
         db.session.add(user)
         db.session.commit()
         db.session.add(
             Userlog(ip=request.remote_addr,
                     user_id=user.id,
                     addtime=datetime.datetime.now()))
         return make_response(code=0)
     else:
         return make_response(code=1, msg='邮箱已经被注册!')
Пример #25
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        user = User.query.filter_by(name=data['name']).first()
        if not user.check_password(data['password']):
            flash('密码错误!', 'error')
            return redirect(url_for('home.login'))
        session['user'] = data['name']
        session['user_id'] = user.id
        userlog = Userlog(user_id=user.id,
                          ip=request.remote_addr,
                          ip_area=queryIpAddress(request.remote_addr))
        db.session.add(userlog)
        db.session.commit()
        return redirect(request.args.get('next') or url_for('home.user'))
    return render_template('home/login.html', form=form)
Пример #26
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        user = User.query.filter_by(name=data["name"]).first()
        if not user.check_pwd(data["pwd"]):
            flash(u"密码错误!", "err")  #消息闪现
            return redirect(url_for("home.login"))
        session["user"] = data["name"]  #保存登录信息
        session["user_id"] = user.id  #保存登录用户id,后面验证权限使用
        userlog = Userlog(  #记录用户登录日志
            user_id=user.id,
            ip=request.remote_addr,
            ip_addr=IP_addr.use_params_requests(request.remote_addr))
        db.session.add(userlog)
        db.session.commit()
        return redirect(request.args.get("next") or url_for("home.index"))
    return render_template("home/login.html", form=form)
Пример #27
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        user = User.query.filter_by(name=data["name"]).first()
        if not user.check_password(data["pwd"]):
            flash("密码错误!", "err")
            return redirect(url_for("home.login"))
        # 如果正确,就启动session机制,还要使用UserLog
        session["user"] = user.name
        session["user_id"] = user.id
        # 处理完毕之后一定要记得处理登陆日志
        userlog = Userlog(user_id=user.id, ip=request.remote_addr)
        db.session.add(userlog)
        db.session.commit()
        # 登陆成功之后,进行跳转
        return redirect(url_for("home.user"))
    return render_template("home/login.html", form=form)
Пример #28
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        user = User.query.filter(
            or_(User.name == data["account"], User.phone == data["account"],
                User.email == data["account"])).first()
        if not user.check_pwd(data["pwd"]):
            flash("Wrong Password", "err")
            return redirect(url_for("home.login"))
        session["user"] = user.name
        session["user_id"] = user.id

        userlog = Userlog(user_id=user.id, ip=request.remote_addr)
        db.session.add(userlog)
        db.session.commit()
        return redirect(url_for("home.user"))
    return render_template("home/login.html", form=form)
Пример #29
0
def update_user(id):
    nickname = request.form.get('nickname')
    title = request.form.get('title')
    group = request.form.get('group')
    signature = request.form.get('signature')
    if nickname and title and group and signature:
        User.query.filter_by(id=id). \
            update({
            'name': nickname,
            'title': title,
            'group': group,
            'signature': signature})
        user_log = Userlog(user_id=g.user_id, reason="修改信息")
        db.session.add(user_log)
        db.session.commit()
        return jsonify({'id': id, 'flag': 'success', 'status': 200})
    else:
        return jsonify({'status': 400})
Пример #30
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        user = User.query.filter_by(name=data['name']).first()
        if not user.check_pwd(data['pwd']):
            flash("密码错误", 'err')
            return redirect(url_for("home.login"))
        session["user"] = user.name
        session['user_id'] = user.id
        userlog = Userlog(
            user_id=user.id,
            ip=request.remote_addr,
        )
        db.session.add(userlog)
        db.session.commit()
        return redirect(
            request.args.get("next") or url_for("home.index", page=1))
    return render_template('home/login.html', form=form)