Пример #1
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))
Пример #2
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))
Пример #3
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")
Пример #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 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)
Пример #6
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)
Пример #7
0

class Technology(db.Model):
    """
    meant to model AWS primatives (elb, s3, iamuser, iamgroup, etc.)
    """
    __tablename__ = 'technology'
    id = Column(Integer, primary_key=True)
    name = Column(String(32))  # elb, s3, iamuser, iamgroup, etc.
    items = relationship("Item", backref="technology")
    issue_categories = relationship("AuditorSettings", backref="technology")
    ignore_items = relationship("IgnoreListEntry", backref="technology")


roles_users = db.Table(
    'roles_users', db.Column('user_id', db.Integer(),
                             db.ForeignKey('user.id')),
    db.Column('role_id', db.Integer(), db.ForeignKey('role.id')))


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))


class User(db.Model, UserMixin):
    """
Пример #8
0
    id = Column(Integer, primary_key=True)
    name = Column(String(32), index=True,
                  unique=True)  # elb, s3, iamuser, iamgroup, etc.
    items = relationship("Item", backref="technology")
    issue_categories = relationship("AuditorSettings", backref="technology")
    ignore_items = relationship("IgnoreListEntry", backref="technology")

    exceptions = relationship("ExceptionLogs",
                              backref="technology",
                              cascade="all, delete, delete-orphan")


roles_users = db.Table(
    'roles_users',
    db.Column('user_id',
              db.Integer(),
              db.ForeignKey('user.id'),
              primary_key=True),
    db.Column('role_id',
              db.Integer(),
              db.ForeignKey('role.id'),
              primary_key=True))


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))