Ejemplo n.º 1
0
class User(db.Model):

    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(255), unique=True)
    pw_hash = db.Column(db.String(255), unique=True)
    todos = relationship('Todo')

    def __init__(self, username, password):
        self.username = username
        self.set_password(password)

    def get_security_payload(self):
        return {'id': self.id, 'username': self.username}

    @property
    def jsonified(self):
        return jsonify(id=self.id, username=self.username)

    def set_password(self, password):
        self.pw_hash = generate_password_hash(
            password, method=app.config['PASSWORD_HASH_METHOD'])

    def check_password(self, password):
        return check_password_hash(self.pw_hash, password)
Ejemplo n.º 2
0
class Users(db.Model): 
	id = db.Column(db.Integer, primary_key=True)
	username = db.Column(db.String(255),index=True,unique=True,nullable=False)
	password = db.Column(db.String(255),nullable=False)

	def __repr__(self):
		return '<Users %r>' % (self.username)
Ejemplo n.º 3
0
class users(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(255), nullable=False)
    password = db.Column(db.String(255), nullable=False)

    def __repr__(self):
        return '<user {}>'.format(self.username)
Ejemplo n.º 4
0
class User(UserMixin, db.Model):
	id = db.Column(db.Integer, primary_key=True)
	username = db.Column(db.String(255), index=True, unique=True)
	password = db.Column(db.String(255))
	todos = db.relationship('Todo', backref='owner', lazy='dynamic')

	def __repr__(self):
		return '<User {}>'.format(self.username)
Ejemplo n.º 5
0
class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    password = db.Column(db.String(80), nullable=False)
    todos = db.relationship('Todo', backref='user', lazy=True)

    def __repr__(self):
        return '<User %r>' % self.username
Ejemplo n.º 6
0
class User(db.Model):
    __tablename__ = "users"

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(255), unique=True, nullable=False)
    password = db.Column(db.String(255), nullable=False)

    def __repr__(self):
        return '<User %r>' % self.username
Ejemplo n.º 7
0
class Users(db.Model):
    __tablename__ = "users"
    id = db.Column('id',
                   db.Integer,
                   unique=True,
                   nullable=False,
                   primary_key=True)
    username = db.Column(db.String(255), nullable=False)
    password = db.Column(db.String(255), nullable=False)

    def as_dict(self):
        return {c.name: getattr(self, c.name) for c in self.__table__.columns}
Ejemplo n.º 8
0
class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    password = db.Column(db.String(80))

    def __init__(self, username, password):
        self.username = username
        self.password = password

    def __repr__(self):
        return '<User %r>' % self.username
Ejemplo n.º 9
0
class Users(db.Model):
    __tablename__ = 'user'
    id = db.Column('user_id', db.Integer, primary_key=True)
    password = db.Column('password', db.String(255), nullable=False)
    username = db.Column('username', db.String(25), nullable=False)

    def serialize(self):
        return {
            'id': self.id,
        }

    def __repr__(self):
        return '<User %r>' % self.id
Ejemplo n.º 10
0
class Users(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(255), nullable=False)
    password = db.Column(db.String(255), nullable=False)

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

    def to_dict_unsensitive(self):
        return {'id': self.id, 'username': self.username}

    def validate_password(self, password):
        return bcrypt.verify(password, self.password)
Ejemplo n.º 11
0
class Users(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(255), nullable=False)
    password = db.Column(db.String(255), nullable=False)

    def to_dict(self):
        return {
            'id': self.id,
            'username': self.username,
            'password': self.password
        }
Ejemplo n.º 12
0
class Todos(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    description = db.Column(db.String(255), nullable=False)
    status = db.Column(db.String(255), nullable=False)

    def __repr__(self):
        return {
            'id': self.id,
            'user_id': self.user_id,
            'description': self.description,
            'status': self.status
        }
Ejemplo n.º 13
0
class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    password = db.Column(db.String(128))

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

    def set_password(self, password):
        self.password = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password, password)
Ejemplo n.º 14
0
class User(UserMixin, db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(255), nullable=False)
    password = db.Column(db.String(255))

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

    def set_password(self, password):
        self.password = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password, password)
Ejemplo n.º 15
0
class Users(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(64), index=True, unique=True)
    password = db.Column(db.String(128))
    todos = db.relationship('Todos', backref='users', lazy=True)

    def set_pass(self, password):
        self.password = generate_password_hash(password)

    def check_pass(self, password):
        return check_password_hash(self.password, password)

    def __repr__(self):
        return {'id': self.id, 'username': self.username}
Ejemplo n.º 16
0
class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(255), unique=True, nullable=False)
    password = db.Column(db.String(255), nullable=False)

    def __init__(self, username: str, password: str) -> None:
        self.username = username
        self.password = password

    @classmethod
    def get(cls, username: str) -> object:
        return cls.query.filter_by(username=username).first()

    def hash_password(self) -> str:
        """
        Hashes a plaintext password using SHA256 with a randomly generated salt
        Not called in our code as we do not create users, but shows how the hashing is done.

        ref:
        https://www.vitoshacademy.com/hashing-passwords-in-python/
        """
        salt = hashlib.sha256(os.urandom(60)).hexdigest().encode('ascii')
        pwdhash = hashlib.pbkdf2_hmac('sha512',
                                      self.password.encode('utf-8'),
                                      salt,
                                      100000
                                      )
        pwdhash = binascii.hexlify(pwdhash)
        return (salt + pwdhash).decode('ascii')

    def verify(self, provided_password: str) -> bool:
        """
        Verifies a user login by comparing the provided password with the stored one using cool hashing algos.

        :param provided_password: plaintext password provided in login form
        :return: True if provided_password matches the hashed stored password
        """
        salt = self.password[:64]
        stored_password = self.password[64:]
        pwdhash = hashlib.pbkdf2_hmac('sha512',
                                      provided_password.encode('utf-8'),
                                      salt.encode('ascii'),
                                      100000
                                      )
        pwdhash = binascii.hexlify(pwdhash).decode('ascii')
        return pwdhash == stored_password

    def __repr__(self) -> str:
        return '<User %r>' % self.username
Ejemplo n.º 17
0
class User(db.Model, UserMixin):
    __tablename__ = "users"
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)
    todos = db.relationship('Todo', backref='user', lazy=True)

    def __repr__(self):
        return f"User('{self.username}')"

    def set_password(self, password):
        self.password = bcrypt.generate_password_hash(password).decode('utf8')

    def check_password(self, password):
        return bcrypt.check_password_hash(self.password, password)
Ejemplo n.º 18
0
class Todo(db.Model):
    __tablename__ = 'todos'
    id = db.Column(db.Integer, primary_key=True)
    description = db.Column(db.String(300))
    completed = db.Column(db.Boolean)

    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    user = db.relationship('User',
        backref=db.backref('todos', lazy='dynamic'))

    def __init__(self, description, user):
        self.description = description
        self.user = user

    @db.validates('description')
    def validate_description(self, key, description):
        if not description:
            raise ValueError('Description cannot be empty')
        return description

    def as_dict(self):
        return {c.name: getattr(self, c.name) for c in self.__table__.columns}

    def __repr__(self):
        return '<Todo %r>' % self.description
Ejemplo n.º 19
0
class Todo(db.Model):
    __tablename__ = 'todos'
    id = db.Column(db.Integer, primary_key=True)
    description = db.Column(db.String(255), nullable=False)
    completed = db.Column(db.Boolean, default=False, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)

    def __init__(self, user_id: str, description: str) -> None:
        self.user_id = user_id
        self.description = description

    @classmethod
    def get(cls, id: int) -> object:
        return cls.query.filter_by(id=id).first()

    @classmethod
    def add(cls, user_id: str, description: str) -> None:
        todo = cls(user_id, description)
        db.session.add(todo)
        db.session.commit()

    @classmethod
    def delete(cls, id: int) -> None:
        todo = cls.get(id)
        db.session.delete(todo)
        db.session.commit()

    @classmethod
    def toggle_completion(cls, id: int) -> None:
        todo = cls.get(id)
        todo.completed = not todo.completed
        db.session.commit()

    @classmethod
    def paginate(cls, user_id: int, page: int) -> Pagination:
        """
        Uses SQLAlchemy's builtin pagination tools to return paginated queries

        :param user_id: specifies the user who's tasks are to be gotten
        :param page: target page number
        :return: flask_sqlalchemy.Pagination object for use in views
        """
        return cls.query.filter_by(user_id=user_id).paginate(
            page=page,
            per_page=app.config.get('PAGE_ITEM_LIMIT', 5),
            error_out=False)

    def to_dict(self) -> dict:
        return {
            'id': self.id,
            'description': self.description,
            'completed': self.completed,
            'user_id': self.user_id
        }

    def json(self) -> str:
        return jsonify(self.to_dict())

    def __repr__(self) -> str:
        return '<Todo %r>' % self.description
Ejemplo n.º 20
0
class User(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(255), nullable=False)
    password = db.Column(db.String(255), nullable=False)
    todos = db.relationship("Todo", backref="users", order_by="Todo.id")

    def __repr__(self):
        return '<User %r>' % self.username

    def get_dict(self):
        return {
            'id': self.id,
            'username': self.username,
            'password': self.password
        }
Ejemplo n.º 21
0
class Todos(db.Model): 
	id = db.Column(db.Integer, primary_key=True)
	user_id = db.Column(db.Integer,  db.ForeignKey('users.id'), nullable=False)
	description = db.Column(db.String(255),nullable=False)
	is_completed = db.Column(db.Boolean, unique=False, default=False)

	def __repr__(self):
		return '<Todos %r>' % (self.description)
Ejemplo n.º 22
0
class User(db.Model, UserMixin):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(255), nullable=False)
    password = db.Column(db.String(255), nullable=False)

    def __init__(self, email, username, password):
        self.email = email
        self.username = username
        self.password = bcrypt.hashpw(password.encode('utf-8'),
                                      bcrypt.gensalt())

    def check_password(self, password):
        return flask_bcrypt.check_password_hash(self.password, password)

    def __repr__(self):
        return "UserName: {username}".format(username=self.username)
Ejemplo n.º 23
0
class Todo(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    description = db.Column(db.String(255))
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    completed = db.Column(db.Boolean, default=False)

    def __repr__(self):
        return '<Todo #{}>'.format(self.id)
Ejemplo n.º 24
0
class todos(db.Model):

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    description = db.Column(db.String(255))
    completed = db.Column(db.Boolean)

    def __repr__(self):
        return '<todo {}>'.format(self.description)
Ejemplo n.º 25
0
class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(255), nullable=False, unique=True)
    password = db.Column(db.String(255))
    todos = db.relationship('Todo', backref='user', lazy=True)

    def __init__(self, username, password):
        self.username = username
        self.password = password

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

    def set_password(self, password):
        self.password = bcrypt.generate_password_hash(password)

    def check_password(self, candidate):
        return bcrypt.check_password_hash(self.password, candidate)
Ejemplo n.º 26
0
class Todo(db.Model):
    __tablename__ = "todos"

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, nullable=False)
    description = db.Column(db.String(255))
    completed = db.Column(db.Integer)

    def __repr__(self):
        return '<Todo %r>' % self.description
Ejemplo n.º 27
0
class Todos(db.Model):
    __tablename__ = "todos"
    id = db.Column('id',
                   db.Integer,
                   unique=True,
                   nullable=False,
                   primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    description = db.Column(db.String(255))
    completed = db.Column(db.Boolean, default=False)

    def as_dict(self):
        return {c.name: getattr(self, c.name) for c in self.__table__.columns}
Ejemplo n.º 28
0
class Todo(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    description = db.Column(db.String(140))
    completed = db.Column(db.Boolean, default=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __init__(self, description, user_id, completed=False):
        self.description = description
        self.completed = completed
        self.user_id = user_id

    def __repr__(self):
        return '<Todo desc={},completed={}>'.format(self.description,
                                                    self.completed)
Ejemplo n.º 29
0
class Todos(db.Model):
    __tablename__ = 'todos'
    id = db.Column('todo_id', db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey(Users.id), nullable=False)
    description = db.Column(db.String(255), nullable=False)
    done = db.Column(db.Boolean)

    def serialize(self):
        return {
            'id': self.id,
            'users': self.user_id,
            'description': self.description,
            'done': self.done
        }
Ejemplo n.º 30
0
class Todo(db.Model):
    __tablename__ = 'todos'
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    description = db.Column(db.String(255), nullable=False)
    completed = db.Column(db.Boolean, default=0)

    def __init__(self, user_id, description, completed):
        self.user_id = user_id
        self.description = description
        self.completed = completed

    def __repr__(self):
        return '<Todo: id=%r, completed=%r>' % (self.description,
                                                self.completed)