Пример #1
0
class User(UserMixin, db.Model, RBACUserMixin):
    """
    Used by Flask-Security and Flask-Login.
    Represents a user of Security Monkey.
    """
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    daily_audit_email = Column(Boolean())
    change_reports = Column(String(32))  # All, OnlyWithIssues, None

    # Flask-Security SECURITY_TRACKABLE
    last_login_at = Column(DateTime())
    current_login_at = Column(DateTime())
    login_count = Column(Integer)
    # Why 45 characters for IP Address ?
    # See http://stackoverflow.com/questions/166132/maximum-length-of-the-textual-representation-of-an-ipv6-address/166157#166157
    last_login_ip = Column(db.String(45))
    current_login_ip = Column(db.String(45))

    accounts = relationship("Account", secondary=association_table)
    item_audits = relationship("ItemAudit", uselist=False, backref="user")
    revision_comments = relationship("ItemRevisionComment", backref="user")
    item_comments = relationship("ItemComment", backref="user")
    roles = db.relationship('Role',
                            secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))
    role = db.Column(db.String(30), default="View")

    def __str__(self):
        return '<User id=%s email=%s>' % (self.id, self.email)
Пример #2
0
class Role(db.Model, RoleMixin):
    """
    Used by Flask-Login / the auth system to check user permissions.
    """
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))
Пример #3
0
class Role(db.Model, RoleMixin):
    """
    Currently unused.  Will soon have roles for limited users and
    admin users.
    """
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))
Пример #4
0
class AccountTypeCustomValues(db.Model):
    """
    Defines the values for custom fields defined in AccountTypeCustomFields.
    """
    __tablename__ = "account_type_values"
    id = Column(Integer, primary_key=True)
    name = Column(db.String(64))
    value = db.Column(db.String(256))
    account_id = Column(Integer, ForeignKey("account.id"), nullable=False)
    unique_const = UniqueConstraint('account_id', 'name')
Пример #5
0
class AccountType(db.Model):
    """
    Defines the type of account based on where the data lives, e.g. AWS.
    """
    __tablename__ = "account_type"
    id = Column(Integer, primary_key=True)
    name = db.Column(db.String(80), unique=True)
    accounts = relationship("Account", backref="account_type")
Пример #6
0
class WatcherConfig(db.Model):
    """
    Defines watcher configurations for interval and active
    """
    __tablename__ = "watcher_config"
    id = Column(Integer, primary_key=True)
    index = Column(db.String(80), unique=True)
    interval = Column(Integer, nullable=False)
    active = Column(Boolean(), nullable=False)
Пример #7
0
class User(db.Model, UserMixin):
    """
    Used by Flask-Security and Flask-Login.
    Represents a user of Security Monkey.
    """
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    daily_audit_email = Column(Boolean())
    change_reports = Column(String(32))  # All, OnlyWithIssues, None
    accounts = relationship("Account", secondary=association_table)
    item_audits = relationship("ItemAudit", uselist=False, backref="user")
    revision_comments = relationship("ItemRevisionComment", backref="user")
    item_comments = relationship("ItemComment", backref="user")
    roles = db.relationship('Role', secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))

    def __str__(self):
        return '<User id=%s email=%s>' % (self.id, self.email)