def card_modify(): args = utility.get_args(request) id = args.get('id', "") # card_type_id = args.get('card_type_id', "") # card_no = args.get('card_no', "") # password = args.get('password', "") remark = args.get('remark', "") is_enable = args.get('is_enable') == "1" card = None if admin_permission.can(): card = Card.query.filter_by(id=id).first() else: card = db.session.query(Card).join(Card.admin).filter( or_(Admin.id == current_user.id, Admin.superior_id == current_user.id)).filter( Card.id == id).first() if card is None: return "点卡不存在。" card.remark = remark card.is_enable = is_enable # 操作记录 operate_log = OperateLog() operate_log.admin_id = current_user.id operate_log.operate = "修改点卡" operate_log.remark = "点卡:{},备注:{},启用:{}".format(card.card_no, card.remark, card.is_enable) operate_log.create_time = func.now() db.session.add(operate_log) db.session.commit() return "修改成功。"
def card_generate(): args = utility.get_args(request) card_type_id = args.get('card_type_id', "") amount = args.get('amount', "") remark = args.get('remark', "") cardtype = db.session.query(CardType).join(CardType.software).join( Software.admins).filter(Admin.id == current_user.id).filter( CardType.id == card_type_id).first() if cardtype is None: return "卡类不存在。" for i in range(int(amount)): card = Card() card.admin_id = current_user.id card.card_type_id = card_type_id card.card_no = utility.get_uuid().replace("-", "") card.password = utility.get_uuid()[0:6] card.remark = remark card.is_used = False card.is_enable = True card.update_time = func.now() card.create_time = func.now() db.session.add(card) # 操作记录 operate_log = OperateLog() operate_log.admin_id = current_user.id operate_log.operate = "生成点卡" operate_log.remark = "软件名称:{},数量:{}".format(cardtype.software.name, amount) operate_log.create_time = func.now() db.session.add(operate_log) db.session.commit() return "生成成功!"
def cardtype_insert(): args = utility.get_args(request) software_id = args.get('software_id', "") day = args.get('day', "") expired_day = args.get('expired_day', "") price = args.get('price', "") cardtype = CardType.query.filter_by(software_id=software_id, day=day, expired_day=expired_day).first() if cardtype != None: return "卡类已存在。" cardtype = CardType() cardtype.software_id = software_id cardtype.day = day cardtype.expired_day = expired_day cardtype.price = price cardtype.is_enable = True cardtype.update_time = func.now() cardtype.create_time = func.now() db.session.add(cardtype) db.session.commit() #提交后才能获取name # 操作记录 operate_log = OperateLog() operate_log.admin_id = current_user.id operate_log.operate = "添加卡类" operate_log.remark = "软件名称:{},点卡天数:{},过期天数:{},价格:{}".format( cardtype.software.name, day, expired_day, price) operate_log.create_time = func.now() db.session.add(operate_log) db.session.commit() return "添加成功!"
def cardtype_modify(): args = utility.get_args(request) id = args.get('id', "") software_id = args.get('software_id', "") day = args.get('day', "") expired_day = args.get('expired_day', "") price = args.get('price', "") is_enable = args.get('is_enable') == "1" cardtype = db.session.query(CardType).join(CardType.software).join( Software.admins).filter(Admin.id == current_user.id).filter( CardType.id == id).first() if cardtype is None: return "软件不存在。" cardtype.software_id = software_id cardtype.day = day cardtype.expired_day = expired_day cardtype.price = price cardtype.is_enable = is_enable # 操作记录 operate_log = OperateLog() operate_log.admin_id = current_user.id operate_log.operate = "修改卡类" operate_log.remark = "软件名称:{},点卡天数:{},过期天数:{},价格:{},启用:{}".format( cardtype.software.name, day, expired_day, price, is_enable) operate_log.create_time = func.now() db.session.add(operate_log) db.session.commit() return "修改成功。"
def user_modify(): args = utility.get_args(request) id = args.get('id', "") software_name = args.get('software_name', "") user_name = args.get('user_name', "") password = args.get('password', "") password_question = args.get('password_question', "") password_answer = args.get('password_answer', "") qq = args.get('qq', "") email = args.get('email', "") phone = args.get('phone', "") version = args.get('version', "") serial_no = args.get('serial_no', "") token = args.get('token', "") client_count = args.get('client_count', "") is_bind = args.get('is_bind', "") == "1" remark = args.get('remark', "") unbind_date = args.get('unbind_date', "") terminate_date = args.get('terminate_date', "") is_enable = args.get('is_enable') == "1" user = db.session.query(User).join(User.software).join( Software.admins).filter(Admin.id == current_user.id).filter( User.id == id).first() if user is None: return "用户不存在。" # 调整客户端数量 if client_count.isdigit( ) and client_count != 0 and user.client_count != int( client_count) and user.terminate_date > datetime.now(): left_days = user.terminate_date - datetime.now() total_left_days = left_days * user.client_count new_left_days = total_left_days / int(client_count) # print(left_days) # print(total_left_days) # print(new_left_days) user.terminate_date = datetime.now() + new_left_days user.client_count = client_count user.qq = qq user.email = email user.phone = phone # user.version = version user.is_bind = is_bind user.remark = remark user.is_enable = is_enable # 操作记录 operate_log = OperateLog() operate_log.admin_id = current_user.id operate_log.operate = "修改用户" operate_log.remark = "用户名:{},QQ:{},Email:{},手机:{},客户端限制:{},绑定机器:{},备注:{},启用:{}".format( user_name, qq, email, phone, client_count, is_bind, remark, is_enable) operate_log.create_time = func.now() db.session.add(operate_log) db.session.commit() return "修改成功。"
def do_programme(programme: List[str]): while mem[resurses.COUNTER] != len(programme): print(mem) current_line = programme[mem[resurses.COUNTER]] command = get_command(current_line) args = get_args(current_line) make(mem, command, *args) mem[resurses.COUNTER] += 1
def software_edit(): args = utility.get_args(request) id = args.get('id', "") software = db.session.query(Software).join(Software.admins).filter( Admin.id == current_user.id).filter(Software.id == id).first() if software is None: return redirect(url_for('software')) return render_template('software_edit.html', software=software)
def user_query(): args = utility.get_args(request) draw = args.get('draw', "") # 这个值作者会直接返回给前台 start = args.get('start', "") # 从多少开始 length = args.get('length', "") # 数据长度 search = args.get('search[value]', "") # 获取前台传过来的过滤条件 order_column = args.get('order[0][column]', "") # 哪一列排序,从0开始 order_dir = args.get('order[0][dir]', "") # asc desc 升序或者降序 order_name = args.get('columns[' + order_column + '][name]', "") # 需要html里定义name if order_name == "users.online_client_count": #特殊处理 order = asc if order_dir == "asc" else desc users = db.session.query(User).join(User.software).join( Software.admins).filter(Admin.id == current_user.id).filter( func.CONCAT_WS( ',', User.user_name, User.qq, User.email, User.serial_no, User.remark, Software.name).like('%' + search + '%')).order_by( order(User.online_client_count)).offset(start).limit( length).all() else: users = db.session.query(User).join(User.software).join( Software.admins).filter(Admin.id == current_user.id).filter( func.CONCAT_WS( ',', User.user_name, User.qq, User.email, User.serial_no, User.remark, Software.name).like('%' + search + '%')).order_by( text(order_name + " " + order_dir)).offset(start).limit(length).all() recordsTotal = db.session.query(func.count(User.id)).join( User.software).join( Software.admins).filter(Admin.id == current_user.id).scalar() recordsFiltered = recordsTotal if search == "" else len(users) data = [] for user in users: item = [ user.id, user.software.name, user.user_name, user.password, user.password_question, user.password_answer, user.qq, user.email, user.phone, user.version, user.serial_no, user.token, "{}/{}".format(user.online_client_count, user.client_count), user.is_bind, user.remark, user.unbind_date, user.terminate_date, user.is_enable, user.update_time, user.create_time ] data.append(item) result = { "draw": draw, "recordsTotal": recordsTotal, "recordsFiltered": recordsFiltered, "data": data } return utility.get_json(result)
def user_edit(): args = utility.get_args(request) id = args.get('id', "") user = db.session.query(User).join(User.software).join( Software.admins).filter(Admin.id == current_user.id).filter( User.id == id).first() if user is None: return redirect(url_for('user')) return render_template('user_edit.html', user=user)
def admin_insert(): args = utility.get_args(request) user_name = args.get('user_name', "") password = args.get('password', "") software_names = request.form.getlist("software_names") # dict会丢失数据 role_name = args.get('role_name', "") if len(software_names) == 0: return "未授权软件。" softwares = db.session.query(Software).join( Software.admins).filter(Admin.id == current_user.id).filter( Software.name.in_(software_names)).all() if len(softwares) == 0: return "无权限添加" role = Role.query.filter_by(name=role_name).first() if role is None: return "身份不存在。" if not admin_permission.can(): if role.id <= current_user.roles[0].id: return "无权限添加。" admin = Admin.query.filter_by(user_name=user_name).first() if admin != None: return "用户名已存在。" admin = Admin() admin.user_name = user_name admin.password = utility.get_md5(password) admin.superior_id = current_user.id admin.is_enable = True admin.update_time = func.now() admin.create_time = func.now() admin.roles.append(role) for software_name in software_names: software = Software.query.filter_by(name=software_name).first() if software is None: return "软件不存在。" admin.softwares.append(software) db.session.add(admin) # 操作记录 operate_log = OperateLog() operate_log.admin_id = current_user.id operate_log.operate = "添加{}".format(role.description) operate_log.remark = "用户名:{},密码:{},授权软件:{}".format( user_name, password, "、".join(software_names)) operate_log.create_time = func.now() db.session.add(operate_log) db.session.commit() return "添加成功!"
def cardtype_edit(): args = utility.get_args(request) id = args.get('id', "") cardtype = db.session.query(CardType).join(CardType.software).join( Software.admins).filter(Admin.id == current_user.id).filter( CardType.id == id).first() if cardtype is None: return redirect(url_for('cardtype')) return render_template('cardtype_edit.html', cardtype=cardtype)
def operatelog_query(): args = utility.get_args(request) draw = args.get('draw', "") # 这个值作者会直接返回给前台 start = args.get('start', "") # 从多少开始 length = args.get('length', "") # 数据长度 search = args.get('search[value]', "") # 获取前台传过来的过滤条件 order_column = args.get('order[0][column]', "") # 哪一列排序,从0开始 order_dir = args.get('order[0][dir]', "") # asc desc 升序或者降序 operatelogs = [] recordsTotal = 0 if admin_permission.can(): operatelogs = db.session.query(OperateLog).join( OperateLog.admin).filter( func.CONCAT_WS( ',', Admin.user_name, OperateLog.operate, OperateLog.remark).like('%' + search + '%')).order_by( text(str(int(order_column) + 1) + " " + order_dir)).offset(start).limit(length).all() recordsTotal = db.session.query(func.count(OperateLog.id)).scalar() else: operatelogs = db.session.query(OperateLog).join( OperateLog.admin).filter( or_(Admin.id == current_user.id, Admin.superior_id == current_user.id)).filter( func.CONCAT_WS(',', Admin.user_name, OperateLog.operate, OperateLog.remark). like('%' + search + '%')).order_by( text(str(int(order_column) + 1) + " " + order_dir)).offset(start).limit(length).all() recordsTotal = db.session.query(func.count(OperateLog.id)).join( OperateLog.admin).filter( or_(Admin.id == current_user.id, Admin.superior_id == current_user.id)).scalar() recordsFiltered = recordsTotal if search == "" else len(operatelogs) data = [] for operatelog in operatelogs: item = [ operatelog.id, operatelog.admin.user_name, operatelog.operate, operatelog.remark, operatelog.create_time ] data.append(item) result = { "draw": draw, "recordsTotal": recordsTotal, "recordsFiltered": recordsFiltered, "data": data } return utility.get_json(result)
def software_insert(): args = utility.get_args(request) name = args.get('name', "") register_hour = args.get('register_hour', "") unbind_hour = args.get('unbind_hour', "") wait_hour = args.get('wait_hour', "") client_count = args.get('client_count', "") is_bind = args.get('is_bind', "") == "1" message = args.get('message', "") script = args.get('script', "") version = args.get('version', "") new_version = args.get('new_version', "") new_url = args.get('new_url', "") software = Software.query.filter_by(name=name).first() if software != None: return "软件名已存在。" software = Software() software.name = name software.register_hour = register_hour software.unbind_hour = unbind_hour software.wait_hour = wait_hour software.client_count = client_count software.is_bind = is_bind software.message = message software.script = script software.version = version software.new_version = new_version software.new_url = new_url software.is_enable = True software.update_time = func.now() software.create_time = func.now() software.admins.append(current_user) db.session.add(software) # 操作记录 operate_log = OperateLog() operate_log.admin_id = current_user.id operate_log.operate = "添加软件" operate_log.remark = "软件名称:{},注册赠送时间:{},解绑扣除时间:{},解绑冷却时间:{},客户端限制:{},绑定机器:{},版本号:{}".format( name, register_hour, unbind_hour, wait_hour, client_count, is_bind, version) operate_log.create_time = func.now() db.session.add(operate_log) db.session.commit() return "添加成功!"
def card_edit(): args = utility.get_args(request) id = args.get('id', "") card = None if admin_permission.can(): card = Card.query.filter_by(id=id).first() else: card = db.session.query(Card).join(Card.admin).filter( or_(Admin.id == current_user.id, Admin.superior_id == current_user.id)).filter( Card.id == id).first() if card is None: return redirect(url_for('card')) return render_template('card_edit.html', card=card)
def setting_exe_sql(): args = utility.get_args(request) sql_cmd = args.get('sql_cmd', "") try: res = db.session.execute(sql_cmd) # print(res.rowcount) # print(res.keys()) # print(res.fetchall()) if res.returns_rows: # use special handler for dates and decimals return utility.get_json([dict(r) for r in res]).encode('utf-8').decode('unicode_escape') else: return utility.get_json([{"affected": res.rowcount}]).encode('utf-8').decode('unicode_escape') except Exception as err: return str(err)
def software_modify(): args = utility.get_args(request) id = args.get('id', "") name = args.get('name', "") register_hour = args.get('register_hour', "") unbind_hour = args.get('unbind_hour', "") wait_hour = args.get('wait_hour', "") client_count = args.get('client_count', "") is_bind = args.get('is_bind', "") == "1" message = args.get('message', "") script = args.get('script', "") version = args.get('version', "") new_version = args.get('new_version', "") new_url = args.get('new_url', "") is_enable = args.get('is_enable') == "1" software = db.session.query(Software).join(Software.admins).filter( Admin.id == current_user.id).filter(Software.id == id).first() if software is None: return "软件不存在。" software.name = name software.register_hour = register_hour software.unbind_hour = unbind_hour software.wait_hour = wait_hour software.client_count = client_count software.is_bind = is_bind software.message = message software.script = script software.version = version software.new_version = new_version software.new_url = new_url software.is_enable = is_enable # 操作记录 operate_log = OperateLog() operate_log.admin_id = current_user.id operate_log.operate = "修改软件" operate_log.remark = "软件名称:{},注册赠送时间:{},解绑扣除时间:{},解绑冷却时间:{},客户端限制:{},绑定机器:{},登录版本:{},最新版本:{},下载网址:{},启用:{}".format( name, register_hour, unbind_hour, wait_hour, client_count, is_bind, version, new_version, new_url, is_enable) operate_log.create_time = func.now() db.session.add(operate_log) db.session.commit() return "修改成功。"
def setting_exe_python(): args = utility.get_args(request) python_cmd = args.get('python_cmd', "") result = "" __stdout = sys.stdout sys.stdout = io.StringIO() try: exec(python_cmd) result = sys.stdout.getvalue() except Exception as err: result = str(err) sys.stdout = __stdout return result
def admin_edit(): args = utility.get_args(request) id = args.get('id', "") softwares = db.session.query(Software).join( Software.admins).filter(Admin.id == current_user.id).all() admin = None if admin_permission.can(): admin = Admin.query.filter_by(id=id).first() else: admin = db.session.query(Admin).filter( Admin.superior_id == current_user.id).first() if admin is None: return redirect(url_for('admin')) return render_template('admin_edit.html', admin=admin, softwares=softwares)
def software_query(): args = utility.get_args(request) draw = args.get('draw', "") # 这个值作者会直接返回给前台 start = args.get('start', "") # 从多少开始 length = args.get('length', "") # 数据长度 search = args.get('search[value]', "") # 获取前台传过来的过滤条件 order_column = args.get('order[0][column]', "") # 哪一列排序,从0开始 order_dir = args.get('order[0][dir]', "") # asc desc 升序或者降序 order_name = args.get('columns[' + order_column + '][name]', "") # 需要html里定义name softwares = db.session.query(Software).join( Software.admins).filter(Admin.id == current_user.id).filter( func.CONCAT_WS( ',', Software.name, Software.message, Software.version, Admin.user_name).like('%' + search + '%')).order_by( text(order_name + " " + order_dir)).offset(start).limit(length).all() recordsTotal = db.session.query(func.count(Software.id)).scalar() recordsFiltered = recordsTotal if search == "" else len(softwares) data = [] for software in softwares: item = [ software.id, software.name, software.register_hour, software.unbind_hour, software.wait_hour, software.client_count, software.is_bind, software.message, utility.get_short(software.script, 16), software.version, software.new_version, software.new_url, software.get_admins_names(), software.is_enable, software.update_time, software.create_time ] data.append(item) result = { "draw": draw, "recordsTotal": recordsTotal, "recordsFiltered": recordsFiltered, "data": data } return utility.get_json(result)
def log_query(): args = utility.get_args(request) draw = args.get('draw', "") # 这个值作者会直接返回给前台 start = args.get('start', "") # 从多少开始 length = args.get('length', "") # 数据长度 search = args.get('search[value]', "") # 获取前台传过来的过滤条件 order_column = args.get('order[0][column]', "") # 哪一列排序,从0开始 order_dir = args.get('order[0][dir]', "") # asc desc 升序或者降序 log_month = args.get('log_month', "") # if db.engine.dialect.has_table(db.engine.connect(), log_month): months = Log.get_months() month = time.strftime("%Y%m") if log_month == "" else log_month if month not in months: return "{}" MyLog = Log.model(log_month) logs = db.session.query(MyLog).filter( func.CONCAT_WS(',', MyLog.ip, MyLog.uri, MyLog.args).like('%' + search + '%')).order_by( text(str(int(order_column) + 1) + " " + order_dir)).offset(start).limit(length).all() recordsTotal = db.session.query(func.count(MyLog.id)).scalar() recordsFiltered = recordsTotal if search == "" else len(logs) data = [] for log in logs: item = [ log.id, log.ip, log.country, log.region, log.city, log.uri, log.args, log.result, log.create_time ] data.append(item) result = { "draw": draw, "recordsTotal": recordsTotal, "recordsFiltered": recordsFiltered, "data": data } return utility.get_json(result)
def admin_modify(): args = utility.get_args(request) id = args.get('id', "") user_name = args.get('user_name', "") software_names = request.form.getlist("software_names") # dict会丢失数据 role_name = args.get('role_name', "") is_enable = args.get('is_enable') == "1" if len(software_names) == 0: return "未授权软件。" admin = None if admin_permission.can(): admin = Admin.query.filter_by(id=id).first() else: admin = db.session.query(Admin).filter( Admin.superior_id == current_user.id).first() if admin is None: return "管理员不存在。" admin.user_name = user_name admin.is_enable = is_enable admin.softwares = [] for software_name in software_names: software = Software.query.filter_by(name=software_name).first() if software is None: return "软件不存在。" admin.softwares.append(software) # 操作记录 operate_log = OperateLog() operate_log.admin_id = current_user.id operate_log.operate = "修改{}".format(admin.get_roles_names()) operate_log.remark = "用户名:{},授权软件:{},启用:{}".format( user_name, "、".join(software_names), is_enable) operate_log.create_time = func.now() db.session.add(operate_log) db.session.commit() return "修改成功。"
def login(): if request.method == 'GET': return render_template('login.html') args = utility.get_args(request) user_name = args.get('user_name', "") password = args.get('password', "") admin = Admin.query.filter( Admin.user_name == user_name, Admin.password == utility.get_md5(password)).first() if admin is None: flash('用户名或密码错误。') return redirect(url_for('login')) elif not admin.is_enable: flash('账号已停用。') return redirect(url_for('login')) else: login_user(admin) # Tell Flask-Principal the identity changed identity_changed.send(current_app._get_current_object(), identity=Identity(admin.id)) # session["id"] = admin.id # session["user_name"] = admin.user_name # session["is_super"] = admin.is_super # session["permissions"] = admin.permissions # app.permanent_session_lifetime = timedelta(minutes=30) # 操作记录 operate_log = OperateLog() operate_log.admin_id = admin.id operate_log.operate = "管理登陆" operate_log.remark = "IP:{}".format(request.remote_addr) operate_log.create_time = datetime.now() db.session.add(operate_log) db.session.commit() return redirect(url_for('index'))
def user_set_unbind(): args = utility.get_args(request) user_name = args.get('user_name', "") user = db.session.query(User).join(User.software).join( Software.admins).filter(Admin.id == current_user.id).filter( User.user_name == user_name).first() if user is None: return "用户不存在。" user.serial_no = "" # 操作记录 operate_log = OperateLog() operate_log.admin_id = current_user.id operate_log.operate = "解绑用户" operate_log.remark = "用户名:{}".format(user_name) operate_log.create_time = func.now() db.session.add(operate_log) db.session.commit() return "修改成功。"
def card_set_enable_batch(): args = utility.get_args(request) card_list = args.get('card_list', "") is_enable = args.get('is_enable') == "1" result = "" card_nos = card_list.strip().split("\n") for card_no in card_nos: result += card_no card = None if admin_permission.can(): card = Card.query.filter(Card.card_no == card_no).first() else: card = db.session.query(Card).join(Card.admin).filter( or_(Admin.id == current_user.id, Admin.superior_id == current_user.id)).filter( Card.card_no == card_no).first() if card is None: result += "(点卡不存在)" else: if card.is_used: result += "(点卡已使用)" else: card.is_enable = is_enable result += "(修改成功)" result += "\n" # 操作记录 operate_log = OperateLog() operate_log.admin_id = current_user.id operate_log.operate = "批量操作点卡" operate_log.remark = "数量:{},启用:{}".format(len(card_nos), is_enable) operate_log.create_time = func.now() db.session.add(operate_log) db.session.commit() return result
def cardtype_query(): args = utility.get_args(request) draw = args.get('draw', "") # 这个值作者会直接返回给前台 start = args.get('start', "") # 从多少开始 length = args.get('length', "") # 数据长度 search = args.get('search[value]', "") # 获取前台传过来的过滤条件 order_column = args.get('order[0][column]', "") # 哪一列排序,从0开始 order_dir = args.get('order[0][dir]', "") # asc desc 升序或者降序 cardtypes = db.session.query(CardType).join(CardType.software).join( Software.admins).filter(Admin.id == current_user.id).filter( func.CONCAT_WS( ',', Software.name, CardType.day, CardType.expired_day, CardType.price).like('%' + search + '%')).order_by( text(str(int(order_column) + 1) + " " + order_dir)).offset(start).limit(length).all() recordsTotal = db.session.query(func.count(CardType.id)).join( CardType.software).join( Software.admins).filter(Admin.id == current_user.id).scalar() recordsFiltered = recordsTotal if search == "" else len(cardtypes) data = [] for cardtype in cardtypes: item = [ cardtype.id, cardtype.software.name, cardtype.day, cardtype.expired_day, cardtype.price, cardtype.is_enable, cardtype.update_time, cardtype.create_time ] data.append(item) result = { "draw": draw, "recordsTotal": recordsTotal, "recordsFiltered": recordsFiltered, "data": data } return utility.get_json(result)
def user_set_terminate(): args = utility.get_args(request) user_name = args.get('user_name', "") day = args.get('day', "") user = db.session.query(User).join(User.software).join( Software.admins).filter(Admin.id == current_user.id).filter( User.user_name == user_name).first() if user is None: return "用户不存在。" user.terminate_date = user.terminate_date + timedelta(days=int(day)) # 操作记录 operate_log = OperateLog() operate_log.admin_id = current_user.id operate_log.operate = "增减天数" operate_log.remark = "用户名:{},天数:{}".format(user_name, day) operate_log.create_time = func.now() db.session.add(operate_log) db.session.commit() return "修改成功。"
def modify_password(): if request.method == 'GET': return render_template('modify_password.html') args = utility.get_args(request) user_name = args.get('user_name', "") password = args.get('password', "") new_password = args.get('new_password', "") admin = Admin.query.filter( Admin.user_name == user_name, Admin.password == utility.get_md5(password)).first() if admin is None: flash('用户名或密码错误。') return redirect(url_for('modify_password')) elif not admin.is_enable: flash('账号已停用。') return redirect(url_for('modify_password')) else: admin.password = utility.get_md5(new_password) # db.session.commit() return redirect(url_for('index'))
def setting_modify(): args = utility.get_args(request) domain = args.get('domain', "") ua_regex = args.get('ua_regex', "") des_key = args.get('des_key', "") is_encrypt = args.get('is_encrypt', "") == "1" is_offline = args.get('is_offline', "") == "1" utility.set_domain(domain) utility.set_ua_regex(ua_regex) utility.set_des_key(des_key) utility.set_is_encrypt(is_encrypt) utility.set_is_offline(is_offline) # 操作记录 operate_log = OperateLog() operate_log.admin_id = current_user.id operate_log.operate = "修改秘钥" operate_log.remark = "域名:{},匹配:{},秘钥:{},加密:{},维护:{}".format(domain, ua_regex, des_key, is_encrypt, is_offline) operate_log.create_time = func.now() db.session.add(operate_log) db.session.commit() return "修改成功。"
def log_insert(): args = utility.get_args(request) name = args.get('name', "") register_hour = args.get('register_hour', "") unbind_hour = args.get('unbind_hour', "") wait_hour = args.get('wait_hour', "") message = args.get('message', "") version = args.get('version', "") admins = ",".join(request.form.getlist("admin")) # dict会丢失数据 log = Log() log.name = name log.register_hour = register_hour log.unbind_hour = unbind_hour log.wait_hour = wait_hour log.message = message log.version = version log.admins = admins log.is_enable = True log.update_time = func.now() log.create_time = func.now() db.session.add(log) return "添加成功!"
def card_query(): args = utility.get_args(request) draw = args.get('draw', "") # 这个值作者会直接返回给前台 start = args.get('start', "") # 从多少开始 length = args.get('length', "") # 数据长度 search = args.get('search[value]', "") # 获取前台传过来的过滤条件 order_column = args.get('order[0][column]', "") # 哪一列排序,从0开始 order_dir = args.get('order[0][dir]', "") # asc desc 升序或者降序 order_name = args.get('columns[' + order_column + '][name]', "") # 需要html里定义name ''' SELECT * FROM (SELECT cards.*, admins.user_name AS admin_name, my_card_types.card_type_name FROM `cards` LEFT JOIN `admins` ON cards.admin_id = admins.id LEFT JOIN (SELECT card_types.*,CONCAT(softwares.name, '(', CAST(card_types.day AS CHAR), '天卡)') AS card_type_name FROM card_types LEFT JOIN softwares ON card_types.software_id = softwares.id) AS my_card_types ON cards.type_id = my_card_types.id) AS t1 WHERE CONCAT_WS(',',`card_no`,`remark`,`admin_name`,`card_type_name`) LIKE '%"..search.."%' "..order.." LIMIT "..start..", "..length ''' # 点卡需要用户间彼此隔离 cards = [] recordsTotal = 0 if admin_permission.can(): cards = db.session.query(Card).join(Card.admin).join( Card.card_type).join(CardType.software).filter( func.CONCAT_WS( ',', Card.card_no, Card.remark, Admin.user_name, func.CONCAT( Software.name, "(", CardType.day, '天卡)')).like('%' + search + '%')).order_by( text(order_name + " " + order_dir)).offset(start).limit(length).all() recordsTotal = db.session.query(func.count(Card.id)).scalar() else: cards = db.session.query(Card).join(Card.admin).join( Card.card_type).join(CardType.software).filter( or_(Admin.id == current_user.id, Admin.superior_id == current_user.id)).filter( func.CONCAT_WS( ',', Card.card_no, Card.remark, Admin.user_name, func.CONCAT( Software.name, "(", CardType.day, '天卡)')).like('%' + search + '%')).order_by( text(order_name + " " + order_dir)).offset( start).limit(length).all() recordsTotal = db.session.query(func.count(Card.id)).join( Card.admin).join(Card.card_type).join(CardType.software).filter( or_(Admin.id == current_user.id, Admin.superior_id == current_user.id)).scalar() recordsFiltered = recordsTotal if search == "" else len(cards) data = [] for card in cards: item = [ card.id, card.admin.user_name, card.card_type.get_name(), card.card_no, card.password, card.remark, card.is_used, card.is_enable, card.create_time + timedelta(days=card.card_type.expired_day), card.update_time, card.create_time ] data.append(item) result = { "draw": draw, "recordsTotal": recordsTotal, "recordsFiltered": recordsFiltered, "data": data } return utility.get_json(result)