class BusinessModel(BaseModel): __tablename__='business' id = db.Column(Integer, primary_key=True, autoincrement=True) name=db.Column(String(32),default='test') host=db.Column(String(32),default='127.0.0.1') user = relationship("UserModel", backref="business",secondary='permission') def to_json(self): dict = copy.deepcopy(self.__dict__) if "user" in dict: del dict['user'] if "_sa_instance_state" in dict: del dict["_sa_instance_state"] return dict def to_id_name_json(self): dict = copy.deepcopy(self.__dict__) if "user" in dict: del dict['user'] if "_sa_instance_state" in dict: del dict["_sa_instance_state"] del dict["host"] dict["business_id"]=self.id del dict['id'] return dict
class LogModel(BaseModel): __tablename__ = 'log' id = db.Column(Integer, primary_key=True, autoincrement=True) username = db.Column(String(32)) behavior = db.Column(String(512)) create_time = db.Column(String(64), default=now) def to_json(self): dict = copy.deepcopy(self.__dict__) if "_sa_instance_state" in dict: del dict["_sa_instance_state"] return dict
class SideBarModel(BaseModel): __tablename__ = 'sidebar' id = db.Column(Integer, primary_key=True, autoincrement=True) index = db.Column(Integer) icon = db.Column(String(32)) tab = db.Column(String(32)) routelink = db.Column(String(32)) is_super = db.Column(Integer)
class UserModel(BaseModel, UserMixin): __tablename__ = 'user' id = db.Column(Integer, primary_key=True, autoincrement=True) name = db.Column(String(32)) email = db.Column(String(32)) status = db.Column(Integer, default=1) _password = db.Column(String(50)) super = db.Column(Integer, default=0) @property def is_active(self): if self.status == 1: return True return False def is_super(self): if self.super == 1: return True return False def get_id(self): try: return unicode(self.id) # python 2 except NameError: return str(self.id) # python 3 @property def password(self): return self._password @password.setter def password(self, passwd): self._password = generate_password_hash(passwd) def to_json(self): dict = copy.deepcopy(self.__dict__) if "perm" in dict: action_list = [] for obj in dict['perm']: action_list.append(obj.id) dict['perm'] = action_list del dict['_password'] if "business" in dict: del dict['business'] if "_sa_instance_state" in dict: del dict["_sa_instance_state"] return dict def get_name_from_email(self): name = self.email.split('@')[0] return name
class TaskModel(BaseModel): __tablename__ = 'task' id = db.Column(Integer, primary_key=True, autoincrement=True) business_id = db.Column(Integer, ForeignKey(BusinessModel.id)) schedule = db.Column(String(64)) shell = db.Column(TEXT) comment = db.Column(String(128)) business = relationship("BusinessModel", backref="task") create_time = db.Column(String(64), default=now) def to_json(self): dict = copy.deepcopy(self.__dict__) if "_sa_instance_state" in dict: del dict["_sa_instance_state"] dict['business'] = self.business.name dict['ip'] = self.business.host return dict
class PermissionModel(BaseModel): __tablename__ = 'permission' id = db.Column(Integer, primary_key=True, autoincrement=True) business_id = db.Column(Integer, ForeignKey(BusinessModel.id)) user_id = db.Column(Integer, ForeignKey(UserModel.id))
class WorkOrderModel(BaseModel): type_msg = { 1: 'sql执行', 2: '域名相关', 3: '其他' } __tablename__ = 'workorder' id = db.Column(Integer, primary_key=True, autoincrement=True) type = db.Column(Integer) name = db.Column(String(128)) sql = db.Column(TEXT) database = db.Column(String(32)) audit = db.Column(Integer, default=0) finish = db.Column(Integer, default=0) result = db.Column(String(256)) user_id = db.Column(Integer, ForeignKey(UserModel.id)) userinfo = relationship("UserModel", backref="work") create_time = db.Column(String(64), default=now) comment = db.Column(String(64)) def to_json(self): dict = copy.deepcopy(self.__dict__) if "_sa_instance_state" in dict: del dict["_sa_instance_state"] dict['username'] = self.userinfo.name if self.userinfo.name else self.userinfo.email.split('@')[0] del dict['user_id'] return dict