from geruecht import db from geruecht import bcrypt class User(db.Model): """ Database Object for User Table for all safed User Attributes: id: Id in Database as Primary Key. userID: ID for the User maybe to Link? username: Username of the User to Login firstname: Firstname of the User Lastname: Lastname of the User group: Which group is the User? moneymaster, gastro, user or bar? password: salted hashed password for the User. """ id = db.Column(db.Integer, primary_key=True) userID = db.Column(db.String, nullable=False, unique=True) username = db.Column(db.String, nullable=False, unique=True) firstname = db.Column(db.String, nullable=False) lastname = db.Column(db.String, nullable=False) group = db.Column(db.String, nullable=False) password = db.Column(db.String, nullable=False) geruechte = db.relationship('CreditList', backref='user', lazy=True) def toJSON(self): """ Create Dic to dump in JSON Returns: A Dic with static Attributes. """ dic = { "userId": self.userID, "username": self.username, "firstname": self.firstname, "lastname": self.lastname, "group": self.group, } return dic def login(self, password): """ Login for the User Only check the given Password: Returns: A Bool. True if the password is correct and False if it isn't. """ return True if bcrypt.check_password_hash(self.password, password) else False