Skip to content
Snippets Groups Projects
Select Git revision
  • 2848308a86e58cf227568aea9a3a21ae6537cd77
  • master default
  • add-challenge
  • add-chall
4 results

user.py

Blame
  • Forked from Hodor Security Project / Hodor Web Backend
    Source project has a limited visibility.
    user.py 1.51 KiB
    # -*- coding: utf-8 -*-
    
    from hodor import db
    from sqlalchemy import inspect
    from sqlalchemy_utils import PasswordType
    
    class User(db.Model):
        __tablename__ = 'users'
    
        # Values entered by the user
        username = db.Column(db.String(32), primary_key=True, nullable=False)
        first_name = db.Column(db.String(32), nullable=False)
        last_name = db.Column(db.String(32), nullable=False)
        email = db.Column(db.String(64), unique=True, nullable=False)
        '''PasswordType is an awesome function. To check for passwords later, 
            you can just do user['password'] == 'plaintext' for a boolean response.'''
        password = db.Column(PasswordType(
            schemes=[
                'pbkdf2_sha512',
                'md5_crypt'
            ],
            deprecated=['md5_crypt']
        ), nullable=False)
    
        # Platform values
        disabled = db.Column(db.Boolean, default=False)
        verified_account = db.Column(db.Boolean, default=False)
        verification_code = db.Column(db.String(32), nullable=False)
    
        def __unicode__(self):
            return unicode(self.username)
    
        def save(self):
            print type(self)
            print self.email
            db.session.add(self)
            db.session.commit()
    
        @staticmethod
        def get_all():
            return User.query.all()
    
        def get_all_dict(self):
            return {c.key: getattr(self, c.key)
                    for c in inspect(self).mapper.column_attrs}
    
        def delete(self):
            db.session.delete(self)
            db.session.commit()
    
        def __repr__(self):
            return "<User: {}>".format(self.name)