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))
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 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")
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')
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)
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)
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): """
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))