class User(db.Document): username = db.StringField(required=True, unique=True) pwHash = db.StringField(required=True) email = db.EmailField(required=True) first_name = db.StringField() last_name = db.StringField() birthday = db.DateTimeField() address = db.StringField() @classmethod def userExists(cls, name): try: return User.objects(username=name).get() except DoesNotExist: return None @classmethod def checkCredentials(cls, name, passwd): try: checkedUser = User.objects(username=name).get() #The passwords are hashed and checked with bcrypt. Bcrypt checking method only accepts byte strings, #while mongodb stores them as unicode strings, hence the need to reencode them; encodedPasswd = passwd.encode('utf8') if bcrypt.checkpw(encodedPasswd, checkedUser.pwHash.encode('utf8')): return checkedUser else: return None except DoesNotExist: return None
class Artist(db.Document): name = db.StringField(unique=True, required = True) email = db.EmailField(unique=True, required=True) password = db.StringField(required=True) bio = db.StringField() link_to_work = db.StringField() background_photo_path = db.StringField(unique=True) profile_photo_path = db.StringField(unique=True) admin = db.BooleanField(default=False) active = db.BooleanField(default=True) registered_on = db.DateTimeField(default=datetime.datetime.now()) def is_authenticated(self): return True def is_active(self): return True def is_anonymous(self): return False def get_id(self): return self.id def __repr__(self): return '<Artist {0}>'.format(self.name)
class Hacker(db.Document): first_name = db.StringField() last_name = db.StringField() username = db.StringField(unique=True) password = db.StringField() email = db.EmailField(unique=True) phone_number = db.StringField(validation=validate_phone_number) profile = db.EmbeddedDocumentField(HackerProfile) resume = db.URLField() emergency_contact = db.EmbeddedDocumentField(HackerEmergencyContact) accepted_forms = db.BooleanField() active_participant = db.BooleanField() def to_json(self): return { "first_name": self.first_name, "last_name": self.last_name, "username": self.username, "password": self.password, "email": self.email, "phone_number": self.phone_number, "profile": self.profile, "resume": self.resume, "emergency_contact": self.emergency_contact, "accepted_forms": self.accepted_forms, "active_participant": self.active_participant }
class User(db.Document): email = db.EmailField(required=True, unique=True) password = db.StringField(required=True, min_length=6) def hash_password(self): self.password = generate_password_hash(self.password).decode('utf8') def check_password(self, password): return check_password_hash(self.password, password)
class User(db.Document, UserMixin): ''' A class that represents users who will use this system, their subscriptions and is used to manage their sessions ''' name = db.StringField(required=True) email = db.EmailField(required=True, unique=True) password_hash = db.StringField(max_length=160) subscriptions = db.ListField(db.EmbeddedDocumentField(Subscription))
class User(db.Document): first_name = db.StringField() last_name = db.StringField() username = db.StringField(unique=True) password = db.StringField() email = db.EmailField(unique=True) role = db.StringField(choices=UserRole) @staticmethod def findOne(*args, **kwargs): """Finds one User""" excludes = kwargs.pop("excludes", []) return User.objects(*args, **kwargs).exclude("id", *excludes).first() def encode_auth_token(self) -> str: """Generates the auth token""" expires_at = datetime.utcnow() + timedelta( days=current_app.config["TOKEN_EXPIRATION_DAYS"], seconds=current_app.config["TOKEN_EXPIRATION_SECONDS"]) payload = { "exp": expires_at, "iat": datetime.utcnow(), "sub": self.username } return jwt.encode(payload, current_app.config.get("SECRET_KEY", "vivalapluto"), algorithm="HS256"), expires_at @staticmethod def decode_auth_token(auth_token): """Decodes the auth token""" try: payload = jwt.decode(auth_token, current_app.config.get("SECRET_KEY")) return payload["sub"] except jwt.ExpiredSignatureError: return Forbidden() except jwt.InvalidTokenError: return Forbidden()
class User(db.Document): username = db.StringField(unique=True, required = True) email = db.EmailField(unique=True, required=True) address = db.StringField(unique=True, required = True) password = db.StringField() admin = db.BooleanField(default=False) active = db.BooleanField(default=True) registered_on = db.DateTimeField(default=datetime.datetime.now()) def is_authenticated(self): return True def is_active(self): return True def is_anonymous(self): return False def get_id(self): return self.id def __repr__(self): return '<User {0}>'.format(self.username)
class User(db.Document): firstName = db.StringField(default=None) lastName = db.StringField(default=None) username = db.StringField(unique=True) email = db.EmailField(unique=True) password = db.StringField() phone = db.StringField(max_length=12) gender = db.StringField(max_length=10) branch = db.StringField(max_length=10) year = db.StringField(max_length=10) newUser = db.BooleanField(default=True) about = db.EmbeddedDocumentField(About, default=About) settings = db.EmbeddedDocumentField(Settings, default=Settings) # connections = db.ListField(db.ReferenceField(User)) image_file = db.ImageField() cover_img = db.StringField() createdAt = db.DateTimeField( default=datetime.utcnow) # utc to keep it universal updatedAt = db.DateTimeField(default=datetime.utcnow) def __repr__(self): return f"User('{self.username}','{self.email}')"