def op_log(reason): operation_log = Operationlog( admin_id=current_user.id, ip=request.remote_addr, reason=reason ) Crud.easy_add(operation_log)
def login(): form = LoginForm() data = form.data # 如果没有超级管理员,就开始初始化数据 count = Admin.query.filter().count() if count == 0 and data["username"] == 'xuannan': from app.init_data import init_ad,init_admin,init_adspace,init_auth,init_category,init_conf,init_menu,init_role,init_reptile,init_template,init_article Crud.auto_commit(init_admin) Crud.auto_commit(init_menu) Crud.auto_commit(init_auth) Crud.auto_commit(init_role) Crud.auto_commit(init_category) Crud.auto_commit(init_ad) Crud.auto_commit(init_adspace) Crud.auto_commit(init_conf) Crud.auto_commit(init_reptile) Crud.auto_commit(init_template) Crud.auto_commit(init_article) if form.validate_on_submit(): admin = Admin.query.filter_by(username=data["username"]).first() if admin and admin.check_pwd(data["password"]): login_user(admin) adminlog = Adminlog( admin_id=admin.id, ip=request.remote_addr, info = '登录成功' ) Crud.easy_add(adminlog) # 登陆成功后的初始值 # 用户权限列表 sql = ''' SELECT url FROM auth LEFT JOIN role ON FIND_IN_SET(auth.id,role.auths) LEFT JOIN admin ON admin.role_id = role.id WHERE admin.id = %i AND auth.is_del = 0 '''%(current_user.id) auth_data = Crud.auto_select(sql) session['auth_urls'] = [v.url for v in auth_data.fetchall()] return redirect(request.args.get("next") or url_for("admin.index")) else: adminlog = Adminlog( admin_id=0, ip=request.remote_addr, info = '登录失败,账号:%s;密码%s'%(data["username"],data["password"]) ) Crud.easy_add(adminlog) flash("用户名或密码错误!") return redirect(url_for("admin.login")) return render_template("admin/login.html", form=form)