Files
order/web/controllers/user/User.py
2019-07-29 15:28:02 +08:00

135 lines
4.4 KiB
Python

# -*- coding: utf-8 -*-
from flask import Blueprint, request,jsonify,make_response,redirect,g
from common.models.User import User
from common.libs.user.UserService import UserService
from common.libs.Helper import (ops_render)
from application import app,db
import json
from common.libs.UrlManager import UrlManager
route_user = Blueprint('user_page', __name__)
@route_user.route("/login", methods=["GET", "POST"])
@route_user.route("/login")
def login():
if request.method == "GET":
return ops_render("user/login.html")
resp = {'code': 200, 'msg': '登录成功', 'data': {}}
req = request.values
login_name = req['login_name'] if 'login_name' in req else ''
login_pwd = req['login_pwd'] if 'login_pwd' in req else ''
if login_name is None or len(login_name)<1:
resp['code']=-1
resp['msg']="请输入正确的登录用户名"
return jsonify(resp)
if login_pwd is None or len(login_pwd) < 1:
resp['code'] = -1
resp['msg'] = "请输入正确的登录密码"
return jsonify(resp)
user_info = User.query.filter_by(login_name=login_name).first()
if not user_info:
resp['code'] = -1
resp['msg'] = "请输入正确的用户名和密码_1"
return jsonify(resp)
if user_info.login_pwd != UserService.genePwd(login_pwd, user_info.login_salt):
resp['code'] = -1
resp['msg'] = "请输入正确的登录用户名和密码-2~~"
return jsonify(resp)
if user_info.status !=1:
resp['code'] = -1
resp['msg'] = "帐号已被禁用,请联系管理员处理~~"
return jsonify(resp)
response = make_response(json.dumps(resp))
response.set_cookie(app.config['AUTH_COOKIE_NAME'], '%s#%s' % (
UserService.geneAuthCode(user_info), user_info.uid)) # 保存120天
return response
@route_user.route("/edit",methods=["GET", "POST"])
def edit():
# if request.method == "GET":
# return ops_render("user/edit.html")
if request.method == "GET":
return ops_render("user/edit.html", {'current': 'edit'})
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
req = request.values
nickname = req['nickname'] if 'nickname' in req else ''
email = req['email'] if 'email' in req else ''
if nickname is None or len(nickname) < 1:
resp['code'] = -1
resp['msg'] = "请输入符合规范的姓名~~"
return jsonify(resp)
if email is None or len(email) < 1:
resp['code'] = -1
resp['msg'] = "请输入符合规范的邮箱~~"
return jsonify(resp)
user_info = g.current_user
user_info.nickname = nickname
user_info.email = email
db.session.add(user_info)
db.session.commit()
return jsonify(resp)
@route_user.route("/reset-pwd",methods=["GET", "POST"])
def resetPwd():
if request.method == "GET":
return ops_render("user/reset_pwd.html", {'current': 'reset-pwd'})
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
req = request.values
old_password = req['old_password'] if 'old_password' in req else ''
new_password = req['new_password'] if 'new_password' in req else ''
if old_password is None or len(old_password) < 6:
resp['code'] = -1
resp['msg'] = "请输入符合规范的原密码~~"
return jsonify(resp)
if new_password is None or len(new_password) < 6:
resp['code'] = -1
resp['msg'] = "请输入符合规范的新密码~~"
return jsonify(resp)
if old_password == new_password:
resp['code'] = -1
resp['msg'] = "请重新输入一个吧,新密码和原密码不能相同哦~~"
return jsonify(resp)
user_info = g.current_user
# if user_info.uid == 1:
# resp['code'] = -1
# resp['msg'] = "该用户是演示账号,不准修改密码和登录用户名~~"
# return jsonify(resp)
user_info.login_pwd = UserService.genePwd(new_password, user_info.login_salt)
db.session.add(user_info)
db.session.commit()
response = make_response(json.dumps(resp))
response.set_cookie(app.config['AUTH_COOKIE_NAME'], '%s#%s' % (
UserService.geneAuthCode(user_info), user_info.uid), 60 * 60 * 24 * 120) # 保存120天
return response
@route_user.route("/logout")
def logout():
response = make_response(redirect(UrlManager.buildUrl("/user/login")))
response.delete_cookie(app.config['AUTH_COOKIE_NAME'])
return response