Ejemplo n.º 1
0
def op_log(reason):
    operation_log = Operationlog(
            admin_id=current_user.id,
            ip=request.remote_addr,
            reason=reason
    )
    Crud.easy_add(operation_log)
Ejemplo n.º 2
0
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)