Esempio n. 1
0
class Shopping(db.Model,UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    Item_Name = db.Column(db.String(100),nullable=False)
    Date = db.Column(db.DateTime,nullable=False) # default to datetime.today()
    Description = db.Column(db.String(500),nullable=False)
    Edited_by = db.Column(db.String(100), nullable=True) # username of who last edited it # be careful if user is deleted, thats why we put nullable=True
    user_id = db.Column(db.Integer,db.ForeignKey('user.id',ondelete="CASCADE"),nullable=True)
Esempio n. 2
0
class QueuedEmail(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    orig_send_time = db.Column(db.DateTime, default=datetime.datetime.utcnow)
    last_retry_time = db.Column(db.DateTime, default=datetime.datetime.utcnow)
    from_addr = db.Column(db.String(128), nullable=False)
    to_addr = db.Column(db.String(128), nullable=False)
    content = db.Column(db.Text, nullable=False)
Esempio n. 3
0
class Grocery(db.Model,UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    Name = db.Column(db.String(100),nullable=False)
    Type = db.Column(db.String(10),nullable=True)
    Type_id = db.Column(db.Integer,nullable=True)
    Date = db.Column(db.DateTime,nullable=False) # same as datetime in python
    user_id = db.Column(db.Integer,db.ForeignKey('user.id',ondelete="CASCADE"),nullable=True)
Esempio n. 4
0
class User(UserMixin, db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    email = db.Column(db.String(128), index=True, unique=True)
    password_hash = db.Column(db.String(128))
    language = db.Column(db.String(2), default='en')

    credentials = db.relationship('AccountCredential',
                                  backref='owner',
                                  lazy='dynamic')
    scan_profiles = db.relationship('ScanProfile',
                                    backref='owner',
                                    lazy='dynamic')
    tasks = db.relationship('Task', backref='owner', lazy='dynamic')
    results = db.relationship('TaskResult',
                              backref='owner',
                              lazy='dynamic',
                              order_by='desc(TaskResult.started)')

    def set_password(self, password: str) -> None:
        self.password_hash = generate_password_hash(password)

    def check_password(self, password: str) -> bool:
        return check_password_hash(self.password_hash, password)

    def __repr__(self) -> str:
        return f'User({self.username})'
Esempio n. 5
0
class ExtraApplication(db.Model):
    __tablename__ = "extra_application"

    extra_application_number = db.Column(db.Integer,
                                         primary_key=True,
                                         autoincrement=True)
    extra_application_date = db.Column(db.Date, nullable=False)
    extra_application_reason = db.Column(db.String(1500), nullable=False)
    extra_application_status = db.Column(db.String(50), nullable=False)

    teacher_position = db.Column(db.String(100), nullable=False)
    teacher_pib = db.Column(db.String(100), nullable=False)

    personnel_number = db.Column(db.Integer,
                                 db.ForeignKey('teacher.personnel_number',
                                               onupdate="CASCADE",
                                               ondelete="CASCADE"),
                                 nullable=False)
    teacher = db.relationship("Teacher", back_populates="extra_application")

    def __init__(self, extra_application_reason, extra_application_date,
                 extra_application_status, teacher_position, teacher_pib,
                 personnel_number):
        self.extra_application_date = datetime.strptime(
            extra_application_date, '%Y-%m-%d').date()
        self.extra_application_reason = extra_application_reason
        self.extra_application_status = STATUS[extra_application_status].value

        self.teacher_position = teacher_position
        self.teacher_pib = teacher_pib

        self.personnel_number = personnel_number
Esempio n. 6
0
class Report(db.Model):
    __tablename__ = 'report'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 自增主键
    name = db.Column(db.String(256), default='', nullable=False)  # 报告名称
    domain = db.Column(db.String(50), default='', nullable=False)  # 域名
    task_id = db.Column(db.Integer, default=0, nullable=False)  # 任务ID
    job_id = db.Column(db.String(36), default='', nullable=False)  # 执行的任务ID
    pdf = db.Column(db.String(100), default="", nullable=False)  # PDF文件名
    json = db.Column(db.Text, default='', nullable=False)  # json格式数据
    json_raw = db.Column(db.Text, default='', nullable=False)  # 原始的JSON文件
    create_time = db.Column(db.TIMESTAMP, default='0000-00-00 00:00:00', nullable=False)  # 创建时间

    def __init__(self, name=None, domain=None, task_id=None, job_id=None, pdf=None, json=None, json_raw=None,
                 create_time=None):
        self.name = name
        self.domain = domain
        self.task_id = task_id
        self.job_id = job_id
        self.pdf = pdf
        self.json = json
        self.json_raw = json_raw
        self.create_time = create_time

    def to_dict(self):
        return {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
Esempio n. 7
0
class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    # lastname = db.Column(db.String(64), index=True)
    # firstname = db.Column(db.String(64), index=True)
    # email_confirmation_sent_on = db.Column(db.DateTime, nullable=True)
    email = db.Column(db.String(120), index=True, unique=True)
    # phone = db.Column(db.String(64), index=True)
    # occupation = db.Column(db.String(64), index=True)
    username = db.Column(db.String(64), index=True, unique=True)
    password_hash = db.Column(db.String(128))
    # email_confirmed = db.Column(db.Boolean, nullable=True, default=False)
    # email_confirmed_on = db.Column(db.DateTime, nullable=True)
    
    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def is_correct_password(self, password):
        return check_password_hash(self.password_hash, password)

    def generate_auth_token(self, expires_in=3600):
        s = Serializer(app.config['SECRET_KEY'], expires_in=expires_in)
        return s.dumps({'id': self.id}).decode('utf-8')

    @staticmethod
    def verify_auth_token(token):
        s = Serializer(app.config['SECRET_KEY'])
        try:
            data = s.loads(token)
        except:
            return None
        return User.query.get(data['id'])

    def __repr__(self):
        return '<User {}>'.format(self.username)
Esempio n. 8
0
class ReportModel(db.Model):
    '''
    自定义PDF报告模板
    '''
    __tablename__ = 'report_model'

    model_id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 自增主键
    model_name = db.Column(db.String(100), nullable=False)  # 模板名称
    title = db.Column(db.String(100), nullable=True)  # 标题
    company = db.Column(db.String(100), nullable=True)  # 单位名称
    logo_filename = db.Column(db.String(100), nullable=True)  # logo 图片文件名
    footer = db.Column(db.String(100), nullable=True)  # 页脚
    user_id = db.Column(db.Integer, nullable=True)  # 创建该模板的用户ID

    def __init__(self, model_name, title, company, logo_filename, footer, user_id=None):
        self.model_name = model_name
        self.title = title
        self.company = company
        self.logo_filename = logo_filename
        self.footer = footer
        self.user_id = user_id

    def to_dict(self):
        return dict(model_id=self.model_id, model_name=self.model_name, title=self.title,
                    company=self.company, footer=self.footer)
Esempio n. 9
0
class ApJobsTaskRef(db.Model):
    __tablename__ = "ap_jobs_task_ref"
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    job_id = db.Column(db.String(191), nullable=False)
    worker_name = db.Column(db.String(32), nullable=True)
    parent_id = db.Column(db.String(191), nullable=True)
    task_id = db.Column(db.Integer)
    job_state = db.Column(db.String(250), nullable=True)
    job_status = db.Column(db.Integer, default=1,
                           nullable=False)  # 1: 未执行 2:执行中 3:完成 4:暂停 5:失败
    run_time = db.Column(db.DATETIME, default=datetime.now, nullable=False)
    end_time = db.Column(db.DATETIME, nullable=True)
    desc = db.Column(db.String(250), nullable=True)

    def __init__(self,
                 job_id,
                 task_id,
                 job_state=None,
                 run_time=None,
                 job_status=1,
                 parent_id=None,
                 end_time=None,
                 desc=None):
        self.job_id = job_id
        self.task_id = task_id
        self.job_state = job_state
        self.run_time = run_time
        self.job_status = job_status
        self.parent_id = parent_id
        self.end_time = end_time
        self.desc = desc

    ''' job_state
Esempio n. 10
0
class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    password_hash = db.Column(db.String(120))
    first_name = db.Column(db.String(64), index=True)
    last_name = db.Column(db.String(64), index=True)

    def __init__(self, **kwargs):
        super(User, self).__init__(**kwargs)

    def assign_group(self, group_name='Basic'):
        group_id = db.session.query(Group).filter(
            Group.group_name == group_name).first().id
        user_group_rel = UserGroups(user_id=self.id, group_id=group_id)
        db.session.add(user_group_rel)
        db.session.commit()

    def get_roles(self):
        # Returns list of roles
        db_results = db.session.query(
            UserGroups,
            Group).join(Group).filter(UserGroups.user_id == self.id).all()
        group_names = [x.Group.group_name for x in db_results]
        logging.debug(f'User {self.username} has roles: {group_names}')
        return group_names

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)

    @property
    def full_name(self):
        return f'{self.last_name}, {self.first_name}'
Esempio n. 11
0
class Prev_order_products(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    product_id = db.Column(db.String(50), nullable=False)
    quantity = db.Column(db.Integer, nullable=False)
    total_price = db.Column(db.Integer, nullable=False)
    order = db.Column(db.String(50), db.ForeignKey('prev_order.order_id'),
                      nullable=False)
class Contacts(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    ad = db.Column(db.String(100), nullable=False)
    soyad = db.Column(db.String(100), nullable=False)
    nomre = db.Column(db.String(100), nullable=False)
    mesaj = db.Column(db.String, nullable=False)
    mail = db.Column(db.String(100), nullable=False)
Esempio n. 13
0
class Channels(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    channel_id = db.Column(db.String(50), nullable=False, unique=True)
    title = db.Column(db.String(200))
    description = db.Column(db.String(1000), nullable=True)
    homeUrl = db.Column(db.String(200))
    publishedAt = db.Column(db.DateTime())
    thumbnails_path = db.Column(db.String(100))
    subscriberCount = db.Column(db.Integer, nullable=True)
    videoCount = db.Column(db.Integer, nullable=True)
    commentCount = db.Column(db.Integer, nullable=True)
    viewCount = db.Column(db.Integer, nullable=True)

    def __init__(self, channel_id, title, description, homeUrl, publishedAt,
                 thumbnails_path, subscriberCount, videoCount, commentCount,
                 viewCount):
        self.channel_id = channel_id
        self.title = title
        self.description = description
        self.homeUrl = homeUrl
        self.publishedAt = publishedAt
        self.thumbnails_path = thumbnails_path
        self.subscriberCount = subscriberCount
        self.videoCount = videoCount
        self.commentCount = commentCount
        self.viewCount = viewCount

    def __repr__(self):
        return '<Subscription %r>' % self.title
Esempio n. 14
0
class Subject(db.Model):
    __tablename__ = 'subjects'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(75), nullable=False)
    short_name = db.Column(db.String(10), nullable=False)
    teacher_id = db.Column(db.Integer, db.ForeignKey('teachers.person_id'), nullable=False)

    lessons = db.relationship('Lesson', backref='subject', uselist=True)

    def save(self):
        db.session.add(self)
        db.session.commit()

    @staticmethod
    def get_all():
        return Subject.query.all()

    @staticmethod
    def get(id=None, name=None):
        if id is not None:
            return Subject.query.filter_by(id=id).first()
        if name is not None:
            subjects = Subject.query.all()
            name = name.lower()
            return [s for s in subjects if name.lower() in s.name.lower()]
Esempio n. 15
0
class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    email = db.Column(db.String(120), index=True, unique=True)
    password_hash = db.Column(db.String(128))
    ticker_per_page = db.Column(db.Integer, default=3)
    activated = db.Column(db.Boolean, default=False)
    tasks = db.relationship('Task', backref='user', lazy='dynamic')
    subscriptions = db.relationship('TickerSubscription',
                                    backref='user',
                                    lazy='dynamic')

    # followed = db.relationship(
    #     'User', secondary=followers,
    #     primaryjoin=(followers.c.follower_id == id),
    #     secondaryjoin=(followers.c.followed_id == id),
    #     backref=db.backref('followers', lazy='dynamic'), lazy='dynamic')

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)

    def __repr__(self):
        return '<User {}>'.format(self.username)
Esempio n. 16
0
class Productratings(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    customer_id = db.Column(db.String(50), unique=True, nullable=False)
    rating = db.Column(db.Integer, nullable=False)
    product_details = db.Column(db.String(50),
                                db.ForeignKey('products.product_id'),
                                nullable=False)
Esempio n. 17
0
class WebResult(db.Model):
    __tablename__ = 'web_result'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 主键ID
    task_id = db.Column(db.Integer, nullable=False)  # 任务ID
    site_id = db.Column(db.Integer, nullable=False)  # 站点ID
    url = db.Column(db.String(128), nullable=False)  # URL
    level = db.Column(db.String(12), nullable=False)  # 风险等级,C:紧急,H:高危,M:中危,L:低风险,I:信息
    detail = db.Column(db.Text, nullable=False)  # 漏洞描述
    output = db.Column(db.String(512), nullable=False)  # 输出信息
    vul_id = db.Column(db.Integer, nullable=False)  # Web漏洞ID
    asset_task_id = db.Column(db.Integer, nullable=False)  # 资产管理扫描任务ID

    def __init__(self, task_id=0, site_id=0, url='', level='', detail='', output='', vul_id=0, asset_task_id=0):
        self.task_id = task_id  # 任务ID
        self.site_id = site_id  # 站点ID
        self.url = url  # URL
        self.level = level  # 风险等级,C:紧急,H:高危,M:中危,L:低风险,I:信息
        self.detail = detail  # 漏洞描述
        self.output = output  # 输出信息
        self.vul_id = vul_id  # Web漏洞ID
        self.asset_task_id = asset_task_id  # 资产管理扫描任务ID

    def to_dict(self):
        return {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
Esempio n. 18
0
class Vendor_rating(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    customer_id = db.Column(db.String(50), unique=True, nullable=False)
    rating = db.Column(db.Integer, nullable=False)
    vendor_details = db.Column(db.String(50),
                               db.ForeignKey('vendor.vendor_id'),
                               nullable=False)
Esempio n. 19
0
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    login = db.Column(db.String(32), unique=True)  #, nullable=False)
    password = db.Column(db.String(32), unique=False)  #, nullable=False)
    email = db.Column(db.String(128), unique=True)  #, nullable=False)
    date_created = db.Column(db.DateTime, default=db.func.current_timestamp())
    verified = db.Column(db.Boolean, default=False)
    link = db.Column(db.String(32), nullable=True)
    personalInfo = db.relationship('PersonalInfo', backref='user', uselist=False)

    def __init__(self, login):
        self.login = login

    def save(self, password):
        """
        Функция сохранения нового пользователя в базе данных
        :param password: Пароль
        """
        self.password = hashlib.sha512(
            password.encode("utf-8")).hexdigest()
        db.session.add(self)
        db.session.commit()

    def check_pass(self, password):
        hash = hashlib.sha512(password.encode("utf-8")).hexdigest()
        return self.password == hash

    @staticmethod
    def get(id=None, login=None):
        if login:
            return User.query.filter_by(login=login).first()
        if id:
            return User.query.get(id)
        return User.query.all()
Esempio n. 20
0
class User(db.Model):
    __tablename__ = 'User'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    login = db.Column(db.String(32), unique=True, nullable=False)
    password = db.Column(db.String(), nullable=False)
    name = db.Column(db.String(32), nullable=False)

    def __init__(self, login, name):
        self.login = login
        self.name = name

    # Функция сохранения нового пользователя в базе данных
    def save(self, password):
        self.password = hashlib.sha512(password.encode("utf-8")).hexdigest()
        db.session.add(self)
        db.session.commit()

    # Функция проверки пароля к аккаунту
    def check_pass(self, password):
        hash = hashlib.sha512(password.encode("utf-8")).hexdigest()
        return self.password == hash

    # Функция получения пользователя
    @staticmethod
    def get(id=None, login=None):
        if login:
            return User.query.filter_by(login=login).first()
        if id:
            return User.query.get(id)
        return User.query.all()
class ConfigModel(db.Model):
    __tablename__ = "ds_config"

    id = db.Column(db.Integer, primary_key=True)
    key = db.Column(db.String(64))
    value = db.Column(db.Text)
    description = db.Column(db.String(128))
Esempio n. 22
0
class Articles(db.Model):
    __tablename__ = 'articles'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(255), nullable=False)
    body = db.Column(db.Text(), nullable=False)
    summary = db.Column(db.String(150),nullable=False)
    img_url = db.Column(db.String(255),nullable=False)
    insert_date = db.Column(db.DateTime, nullable=False)
    insert_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    update_date = db.Column(db.DateTime, nullable=True)
    update_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=True)
    delete_flg = db .Column(db.Boolean, nullable=False, default=False)
    version = db.Column(db.Integer, nullable=True)
    __mapper_args__ = {'version_id_col': version}
    
    def __init__(self,title,body,summary,img_url,insert_date,insert_id,version=0,update_date=None,update_id=None):
        self.title = title
        self.body = body
        self.summary = summary
        self.img_url = img_url
        self.insert_date = insert_date
        self.insert_id = insert_id
        self.version = version
        self.update_date = update_date
        self.update_id = update_id
Esempio n. 23
0
class SpiderUrlOther(db.Model):
    __tablename__ = "spider_url_other"


    id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 自增id
    task_id = db.Column(db.Integer, nullable=False, default=0)  # 扫描任务id
    site_id = db.Column(db.Integer, nullable=False, default=0)  #扫描网站id
    url = db.Column(db.String(512), nullable=False)  # 请求url
    params = db.Column(db.TEXT, nullable=False)  # 请求参数
    method = db.Column(db.String(5), nullable=False)  # 请求方法
    refer = db.Column(db.String(512), nullable=False)  # 来源路径 应该允许为空
    pattern_path = db.Column(db.String(256), nullable=True)  # 路径模式
    pattern_params = db.Column(db.String(256), nullable=True)  # 参数模式
    asset_task_id = db.Column(db.Integer, nullable=False, default=0)
    type = db.Column(db.SmallInteger, nullable=True)  # 0死链,1外链,2其他异常

    def __init__(self, task_id, url, params='', method='get', refer='',  site_id=0, pattern_path=None,
                 pattern_params=None, asset_task_id=None, type=1):
        self.task_id = task_id
        self.site_id = site_id
        self.url = url
        self.params = params
        self.method = method
        self.refer = refer
        self.pattern_path = pattern_path
        self.pattern_params = pattern_params
        self.asset_task_id = asset_task_id
        self.type = type
Esempio n. 24
0
class Cart(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    product_id = db.Column(db.String(50), nullable=False)
    quantity = db.Column(db.Integer, nullable=False)
    customer_details = db.Column(db.String(50),
                                 db.ForeignKey('customer.customer_id'),
                                 nullable=False)
Esempio n. 25
0
class ColumnMetadata(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    dataset_name = db.Column(db.String(), index=True)
    table_name = db.Column(db.String(), index=True)
    column_source_name = db.Column(db.String(), index=True)
    column_custom_name = db.Column(db.String())
    is_many = db.Column(db.Boolean())
    visible = db.Column(db.Boolean(), default=True)
Esempio n. 26
0
class TaskWebScheme(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    scheme_name = db.Column(db.String(50), nullable=False)
    scheme_desc = db.Column(db.String(250), nullable=True)

    def __init__(self, scheme_name, scheme_desc=None):
        self.scheme_name = scheme_name
        self.scheme_desc = scheme_desc
Esempio n. 27
0
class Director(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), index=True, unique=True)
    extras = db.Column(db.String(128))
    movies = db.relationship('Movie', backref='writer', lazy='dynamic')

    def __repr__(self):
        return '<Director {}>'.format(self.name)
Esempio n. 28
0
class User(db.Model, UserMixin):

    __searchable__ = ['username']
    id = db.Column(db.Integer, primary_key=True)
    joined_day = db.Column(db.DateTime, default=datetime.utcnow)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)
Esempio n. 29
0
class User(db.Model, UserMixin):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(200), nullable=False)
    password = db.Column(db.String(200), nullable=False)

    def __repr__(self):
        return self.name
Esempio n. 30
0
class Setting(db.Model):
    """ represents persistent settings for the application """
    __tablename__ = 'Settings'
    __table_args__ = {'extend_existing': True}
    id = db.Column(db.Integer, primary_key=True)
    user_id = Column(Integer, ForeignKey('Users.id'))
    key = db.Column(db.String(), nullable=False)
    value = db.Column(db.String(), nullable=False)