Ejemplo n.º 1
0
class Roles(db.Model):
    __bind_key__ = 'caesar'
    __tablename__ = '%s_roles' % TABLE_PREFIX

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    code = db.Column(db.String(20), unique=True)
    name = db.Column(db.Unicode(80), unique=True)
    description = db.Column(db.Unicode(255))
Ejemplo n.º 2
0
class Settings(db.Model):
    __bind_key__ = 'caesar'
    __tablename__ = '%s_settings' % TABLE_PREFIX

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    code = db.Column(db.String(25), unique=True, nullable=False)
    name = db.Column(db.Unicode(50), unique=True, nullable=False)
    value = db.Column(db.Unicode(100))

    def __unicode__(self):
        return self.name
Ejemplo n.º 3
0
class Post(db.Model):
    __tablename__ = 'post'
    id = db.Column('id', db.Integer, primary_key=True)
    title = db.Column('title', db.Unicode(50), unique=True)
    pic_address = db.Column('pic_address', db.Unicode(50), unique=True)
    latitude = db.Column('latitude', db.Unicode(50))
    longitude = db.Column('longitude', db.Unicode(50))
    date_time = db.Column('date_time', db.Unicode(70))

    def __init__(self):
        pass

    def __repr__(self):
        return '< Post %r>' % {self.like, self.comment}
Ejemplo n.º 4
0
class Scan(db.Model):
    __tablename__ = 'scans'
    id = db.Column(db.Integer, primary_key = True)
    relative_id = db.Column(db.Integer)
    description = db.Column(db.Text)
    target_url = db.Column(db.String(128))
    start_time = db.Column(db.Time, default=datetime.utcnow)
    scan_time = db.Column(db.Time, nullable=True)
    profile = db.Column(db.String(32))
    status = db.Column(db.String(32))
    deleted = db.Column(db.Boolean, default=False)
    run_instance = db.Column(db.Unicode(128))
    num_vulns = db.Column(db.Integer)
    vulns = db.relationship("Vulnerability", back_populates="scan")
    user_id = db.Column(db.String(40), db.ForeignKey('users.id'))
    user = db.relationship("User", back_populates="scans")

    def __init__(self, id, description, target, profile, user_id):
        self.relative_id = id
        self.description = description
        self.target_url = target
        self.profile = profile
        self.status = 'Enqueued'
        self.user_id = user_id
        self.num_vulns = 0
        self.run_instance = '' # will be populated with URL of running instance

    def doneScan(self):
        self.scan_time = datetime.utcnow()
        # change status?

    def __repr__(self):
        return '<Scan %d>' % self.id
Ejemplo n.º 5
0
class Tag(db.Model):
    __tablename__ = 'tag'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Unicode(255), nullable=False)
    todo_items = db.relationship('TodoItem', back_populates="tags", secondary=todo_item_tags)

    def serialize(self):
        return {
            'id': self.id,
            'name': self.name,
        }
Ejemplo n.º 6
0
class Role(db.Model):
    __tablename__ = 'roles'
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.Unicode(32), unique = True)
    description = db.Column(db.Text)

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

    def __repr__(self):
        return '<Role %r>' % self.name
Ejemplo n.º 7
0
class RegistryDeliveryAddress(CustomModelMixin, Model):
    __tablename__ = 'registry_delivery_addresses'

    full_name = Column(db.String(100), nullable=False)
    phone_number = db.Column(db.String(50), nullable=True)
    address = Column(db.Text, nullable=False)
    city = Column(db.String(50), nullable=False)
    state = Column(db.String(50), nullable=False)
    additional_info = Column(db.Text, nullable=True)

    registry_type = Column(db.Unicode(255))
    registry_id = Column(db.Integer, nullable=False)
Ejemplo n.º 8
0
class RegistryProducts(CustomModelMixin, Model):
    __tablename__ = 'registry_products'

    product_id = reference_col("products", nullable=False)
    has_been_purchased = Column(db.Boolean, default=False)
    registry_type = Column(db.Unicode(255))
    registry_id = Column(db.Integer, nullable=False)

    product = relationship("Product", backref=backref("registry_products", cascade="all, delete-orphan"))

    def __str__(self):
        return self.product.name
Ejemplo n.º 9
0
class User(db.Model):
    __tablename__ = 'user'
    id = db.Column('id', db.Integer, primary_key=True)
    name = db.Column('name', db.Unicode(50), unique=True)
    email = db.Column('email', db.Unicode(50), unique=True)
    password = db.Column('password', db.Unicode(50))
    authentication_key = db.Column('authentication_key',
                                   db.String(70),
                                   unique=True)

    # insert data to table
    def __init__(self, name, email):
        self.name = name
        self.email = email

    def __repr__(self):
        return '< User %r> ' % (self.name, self.email)

    def get(self, name, email):
        for usr in self.user:
            if usr['name'] == id and usr['email'] == email:
                return usr
        api.abort(404, "User {} doesn't exist".format(name, email))

    def create(self, name, email, password):
        self.id += 1
        self.name = name
        self.email = email
        self.password = password

    def update(self, id, email):
        usr = self.get(id)
        usr.update(email)
        return usr

    def delete(self, id):
        usr = self.get(id)
        self.user.remove(usr)
Ejemplo n.º 10
0
class Order(CustomModelMixin, Model):
    __tablename__ = 'orders'

    order_number = Column(db.String(255), unique=True)
    transaction_id = reference_col("transactions", nullable=False)
    status = Column(ChoiceType(STATUS, impl=db.String()))
    date_created = Column(db.DateTime, nullable=False, default=dt.datetime.utcnow)
    registry_type = Column(db.Unicode(255))
    registry_id = Column(db.Integer, nullable=False)

    transaction = relationship("Transaction", backref=backref("orders", uselist=True))

    def generate_order_number(self):
        self.order_number = f"ORD{dt.date.today().strftime('%Y%m%d')}00000{self.id}"
Ejemplo n.º 11
0
class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.String(40), primary_key = True) # UUID
    email = db.Column(db.String(32), index=True, unique=True)
    name = db.Column(db.Unicode(64))
    password_hash = db.Column(db.String(128))
    roles = db.relationship('Role', secondary=user_roles,
        backref=db.backref('users', lazy='dynamic'))
    organization = db.Column(db.Unicode(128), nullable=True)
    scans = db.relationship("Scan", back_populates="user")
    domains = db.relationship("Domain", back_populates="user")
    num_domains = db.Column(db.Integer)
    num_scans = db.Column(db.Integer)

    def __init__(self, email, password, name=None, organization=None):
        self.id = str(uuid.uuid4())
        self.name = name
        self.email = email
        self.password = password
        self.organization = organization
        self.num_scans = 0
        self.num_domains = 0

    def __repr__(self):
        return '<User %r>' % self.username

    @property
    def password(self):
        raise AttributeError('password is not a readable attribute')

    @password.setter
    def password(self, password):
        self.password_hash = generate_password_hash(password, 'pbkdf2:sha256')

    def verify_password(self, password):
        return check_password_hash(self.password_hash, password)
Ejemplo n.º 12
0
class QuestionData(db.Model):
    """ Feedback-form question-data for all experiments """
    q_id = db.Column(db.Integer, primary_key=True)
    token = db.Column(db.String(), nullable=False)
    session_id = db.Column(db.Integer, db.ForeignKey('session.session_id'))
    exp_name = db.Column(db.String(), nullable=False)
    rating = db.Column(db.String())
    difficulty = db.Column(db.String())
    distraction = db.Column(db.String())  #informative
    #extrahelp = db.Column(db.String)        #added new
    openended = db.Column(db.Unicode())

    def __repr__(self):
        pass

    def add_json_data(self, json_event):
        """ Parse and add backbone.js json data for a questionnaire """
        self.rating = json_event['rating']
        if json_event['difficulty'] == "Not difficult":
            json_event['difficulty'] = "1"
        elif json_event['difficulty'] == "Somewhat difficult":
            json_event['difficulty'] = "5"
        elif json_event['difficulty'] == "Very difficult":
            json_event['difficulty'] = "10"
        elif json_event['difficulty'] == "Not rated":
            json_event['difficulty'] = "0"
        self.difficulty = json_event['difficulty']

        if json_event['distraction'] == "No distraction":
            json_event['distraction'] = "1"
        elif json_event['distraction'] == "Some distractions":
            json_event['distraction'] = "5"
        elif json_event['distraction'] == "Frequent interruptions":
            json_event['distraction'] = "10"
        elif json_event['distraction'] == "Not rated":
            json_event['distraction'] = "0"
        self.distraction = json_event['distraction']

        #self.extrahelp = json_event['extrahelp']
        self.openended = clean_db_string(json_event['openended'])

        current_app.logger.info("%s added to QuestionData for session id %s " %
                                (self.q_id, self.session_id))
Ejemplo n.º 13
0
class User(SystemInfo):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    cellphone = db.Column(db.String(20))
    address = db.Column(db.Unicode(255), nullable=True)
    password = db.Column(db.String(45))

    # 虛擬關聯外鍵,對應到共享此傘的紀錄
    share_records = db.relationship('UsingShareRecord', backref='users')
    # 虛擬關聯外鍵,紀錄多筆使用此雨傘資源的紀錄
    using_resource_records = db.relationship('UsingShareRecord',
                                             backref='users')

    def __init__(self, **kwargs):
        for k, v in kwargs.iteritems():
            setattr(self, k, v)

    def __repr__(self):
        print "<User: id='%d', name='%s',  password='******', cellphone='%s', address='%s'>" % (
            self.id, self.name, self.password, self.cellphone, self.address)