Exemple #1
0
class User(UserMixin, db.Model):

	__tablename__ = 'user'

	id = db.Column(db.Integer, primary_key=True)
	username = db.Column(db.String(20), unique=True, nullable=False)
	email = db.Column(db.String(120), unique=True, nullable=False)
	image_file = db.Column(db.String(20), nullable=True, default='default.jpg')
	password = db.Column(db.String(60), nullable=False)
	company_id = db.Column('Company', db.Integer, db.ForeignKey('company.id'))
	role_id = db.Column('Role', db.Integer, db.ForeignKey('role.id'))
	is_admin = db.Column(db.Boolean, default=False)

	# def __init__(self, username, email, image_file, password, company_id, is_admin):

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

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

	def is_accessible(self):
		return login.current_user.is_authenticated()

	def __repr__(self):
		return '<User: {}>'.format(self.image_file)
Exemple #2
0
class Company(db.Model):

	__tablename__ = 'company'

	id = db.Column(db.Integer, primary_key=True)
	name = db.Column(db.String(20), unique=True, nullable=False)
	description = db.Column(db.String(200))
	user = db.relationship('User', backref='company', lazy='dynamic')

	def __repr__(self):
		return '<Company: {}>'.format(self.name)
Exemple #3
0
class Role(db.Model):
    """
    Create a Role table
    """

    __tablename__ = 'roles'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(60), unique=True)
    description = db.Column(db.String(200))
    user = db.relationship('User', backref='role', lazy='dynamic')

    def __repr__(self):
        return '<Role: {}>'.format(self.name)
Exemple #4
0
class Category(db.Model):
    """
    Create a Category table
    """

    __tablename__ = 'category'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(60), unique=True)
    description = db.Column(db.String(200))
    members = db.relationship('Member', backref='category', lazy='dynamic')

    def __repr__(self):
        return '<Category: {}>'.format(self.name)
Exemple #5
0
class User(UserMixin, db.Model):
    """
    Create a User table
    """

    # Ensures table will be named in plural and not in singular
    # as is the name of the model
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(60), index=True, unique=True)
    username = db.Column(db.String(60), index=True, unique=True)
    first_name = db.Column(db.String(60), index=True)
    last_name = db.Column(db.String(60), index=True)
    password_hash = db.Column(db.String(128))
    category_id = db.Column(db.Integer, db.ForeignKey('category.id'))
    role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
    is_admin = db.Column(db.Boolean, default=False)

    @property
    def password(self):
        """
        Prevent pasword from being accessed
        """
        raise AttributeError('password is not a readable attribute.')

    @password.setter
    def password(self, password):
        """
        Set password to a hashed password
        """
        self.password_hash = generate_password_hash(password)

    def verify_password(self, password):
        """
        Check if hashed password matches actual password
        """
        return check_password_hash(self.password_hash, password)

    def __repr__(self):
        return '<User: {}>'.format(self.username)