def get_admin(cls, agent_id): agnet_objs = cls.objects.prefetch_related('channel', 'server', 'server_group').filter(id=agent_id) agnet_obj = agnet_objs[0] admin = Admin() admin.id = -1 admin.alias = agnet_obj.alias admin.username = agnet_obj.username admin.last_ip = agnet_obj.last_ip admin.login_count = agnet_obj.login_count admin.last_ip = agnet_obj.last_ip admin.create_time = agnet_obj.create_time admin.last_time = agnet_obj.last_time admin.session_key = agnet_obj.session_key menu_resouces = Role.objects.get(name="渠道").get_resource('menu') admin.set_resource('menu', menu_resouces) admin.set_resource('channel', agnet_obj.channel) admin.set_resource('agent', agnet_objs) # 如果勾选了分区 即有分区下的所有服务器权限 from models.server import Server agent_servers = Server.objects.filter(Q(group__id__in=agnet_obj.server_group.all()) \ | Q(id__in=agnet_obj.server.all()) ).distinct() admin.set_resource('server', agent_servers) admin.set_resource('server_group', agnet_obj.server_group) return admin
def admin_edit(request, admin_id=0): '''管理员编辑 ''' admin_id = admin_id or int(request.REQUEST.get('id', '0')) if admin_id: model = request.admin.get_manageable_admin().get(id=admin_id) model.password = '' else: model = Admin() model.id = admin_id return render_to_response('system/admin_edit.html', locals())
# -*- coding: utf8 -*- from flask import Flask from werkzeug.security import generate_password_hash from models.admin import Admin from init import create_app from models import db, generate_id app = create_app(Flask(__name__)) with app.app_context(): with db.auto_commit(): # 创建一个超级管理员 user = Admin() user.account = 'super' user.password = generate_password_hash('123456') user.id = generate_id(u'超级管理员') user.auth = 2 db.session.add(user)