class Reporter(mongoengine.Document): meta = {'collection': 'test_reporter'} id = mongoengine.StringField(primary_key=True) first_name = mongoengine.StringField(required=True) last_name = mongoengine.StringField(required=True) email = mongoengine.EmailField() awards = mongoengine.ListField(mongoengine.StringField()) articles = mongoengine.ListField(mongoengine.ReferenceField(Article)) embedded_articles = mongoengine.ListField( mongoengine.EmbeddedDocumentField(EmbeddedArticle)) embedded_list_articles = mongoengine.EmbeddedDocumentListField( EmbeddedArticle) id = mongoengine.StringField(primary_key=True) first_name = mongoengine.StringField(required=True) last_name = mongoengine.StringField(required=True) email = mongoengine.EmailField() awards = mongoengine.ListField(mongoengine.StringField()) articles = mongoengine.ListField(mongoengine.ReferenceField(Article)) embedded_articles = mongoengine.ListField( mongoengine.EmbeddedDocumentField(EmbeddedArticle)) embedded_list_articles = mongoengine.EmbeddedDocumentListField( EmbeddedArticle) generic_reference = mongoengine.GenericReferenceField(choices=[ Article, Editor, ])
class Scheduling(mongoengine.Document): date = mongoengine.DateTimeField() location = mongoengine.StringField() theme = mongoengine.StringField() body = mongoengine.StringField() user = mongoengine.EmailField() created = mongoengine.DateTimeField() userUpdated = mongoengine.EmailField() updated = mongoengine.DateTimeField()
class User(mongo.DynamicDocument): first_name = mongo.StringField(required=True) last_name = mongo.StringField(required=True) display_name = mongo.StringField(required=True) verification_code = mongo.StringField(required=False) email = mongo.EmailField(required=True, unique=True) role = mongo.IntField(required=True, default=Role.USER) facebook_id = mongo.LongField( required=False) # Facebook ID is numeric but can be pretty big twitter_id = mongo.StringField( required=False) # Twitter ID is alphanumeric address = mongo.StringField(required=False) zip_code = mongo.StringField(required=False) country_code = mongo.StringField(min_length=2, max_length=2, required=False) # follows ISO_3166-1 tel = mongo.StringField(required=False) # contact number @property def role_type(self): return Role.get_role_type(self.role) def role_satisfy(self, role): return self.role >= role
class User(mongoengine.Document): gender=( ('male','男'), ('female','女'), ) ''' 这里的用户名指的是网络上注册的用户名,不要等同于现实中的真实姓名,所以采用了唯一机制。 如果是现实中的人名,那是可以重复的,肯定是不能设置unique的。 另外关于密码,建议至少128位长度,原因后面解释。 ''' #name: 必填,最长不超过128个字符,并且唯一,也就是不能有相同姓名 name=mongoengine.StringField(max_length=128,unique=True) #password: 必填,最长不超过256个字符(实际可能不需要这么长) password=mongoengine.StringField(max_length=256) #email: 使用Django内置的邮箱类型,并且唯一 email=mongoengine.EmailField(unique=True) #sex: 性别,使用了一个choice,只能选择男或者女,默认为男 sex=mongoengine.StringField(max_length=32,choices=gender,default='男') c_time=mongoengine.DateTimeField(auto_now_add=True) #使用__str__方法帮助人性化显示对象信息 def __str__(self): return self.name #元数据里定义用户按创建时间的反序排列,也就是最近的最先显示 class Meta: ordering=['-c_time'] verbose_name="用户" verbose_name_plural="用户"
class User(document.Document): meta = {'allow_inheritance': True} _hidden = ['password', 'completion_token'] type = orm.StringField() name = orm.StringField(required=True) image = orm.URLField() email = orm.EmailField(required=True, unique=True) password = orm.StringField() gender = orm.StringField() phone = orm.StringField() complete = orm.BooleanField(default=True) completion_token = orm.StringField() # Different based on context of user - whether events attended, mentored, or organized checkins = orm.ListField(orm.ReferenceField(events.Event)) events = orm.ListField(orm.ReferenceField(events.Event)) shirt_type = orm.StringField() shirt_size = orm.StringField() dietary = orm.StringField() notes = orm.MapField(orm.StringField()) stripe_id = orm.StringField()
class UserNotificationPolicy(me.Document): """A user's notification policy comprised of notification overrides.""" owner = me.ReferenceField('Organization', required=True, reverse_delete_rule=me.CASCADE) email = me.EmailField(domain_whitelist=config.DOMAIN_VALIDATION_WHITELIST) user_id = me.StringField() overrides = me.EmbeddedDocumentListField(NotificationOverride) meta = { 'collection': 'notification_policies', 'indexes': [ { 'fields': ['user_id', 'owner'], 'sparse': False, 'unique': True, 'cls': False, }, ], } @property def user(self): return User.objects(me.Q(id=self.user_id) | me.Q(email=self.email)).first() def has_blocked(self, ntf): """Return True if self blocks the given notification.""" return self.has_dismissed(ntf) or self.has_overriden(ntf) def has_overriden(self, ntf): """Return True if self includes an override that matches `ntf`.""" for override in self.overrides: if override.blocks(ntf.channel.ctype, ntf.rtype, ntf.rid): return True return False def has_dismissed(self, ntf): """Return True if the given notification has been dismissed.""" if not isinstance(ntf, InAppNotification): return False return self.user_id in ntf.dismissed_by def clean(self): if not (self.email or self.user_id): raise me.ValidationError('Neither a user ID nor email provided') # Get the user's id, if missing. Some notification policies may # belong to non-mist users (denoted by their e-mail). if not self.user_id: user = self.user self.user_id = user.id if user else None elif not self.email: self.email = self.user.email def __str__(self): return 'Notification Policy of User %s' % self.email
class PackDB(stormbase.StormFoundationDB, stormbase.UIDFieldMixin, me.DynamicDocument): """ System entity which represents a pack. """ RESOURCE_TYPE = ResourceType.PACK UID_FIELDS = ['ref'] ref = me.StringField(required=True, unique=True) name = me.StringField(required=True, unique=True) description = me.StringField(required=True) keywords = me.ListField(field=me.StringField()) version = me.StringField(regex=PACK_VERSION_REGEX, required=True) stackstorm_version = me.StringField(regex=ST2_VERSION_REGEX) author = me.StringField(required=True) email = me.EmailField() contributors = me.ListField(field=me.StringField()) files = me.ListField(field=me.StringField()) path = me.StringField(required=False) dependencies = me.ListField(field=me.StringField()) system = me.DictField() meta = { 'indexes': stormbase.UIDFieldMixin.get_indexes() } def __init__(self, *args, **values): super(PackDB, self).__init__(*args, **values) self.uid = self.get_uid()
class User(me.Document): meta = {'collection': 'users'} username = me.StringField(required=True) password = me.StringField(required=True) email = me.EmailField(required=True, unique=True) first_name = me.StringField(max_length=100, required=True) last_name = me.StringField(max_length=100) status = me.StringField(max_length=100, required=True, default="active") # roles = me.ListField(me.ReferenceField('Role')) registration_date = me.DateTimeField( required=True, default=datetime.datetime.now) updated_date = me.DateTimeField( required=True, default=datetime.datetime.now) ip_address = me.StringField( max_length=100, required=True, default='0.0.0.0') def hash_password(password): m = hashlib.sha512() m.update(password.encode('utf-8')) return m.hexdigest() def set_password(self, password): self.password = User.hash_password(password) def check_password(self, password): return hash_password(password) == self.password
class User(Dictable, gj.Document): """Test schema.""" name = db.StringField() email = db.EmailField() address = db.EmbeddedDocumentListField(Address) metadata = db.DictField() @classmethod def generate_test_data(cls, additional_suffix=""): """Generate test data.""" user = cls( id=ObjectId(), name=("Test man{}").format(( " {}").format(additional_suffix) if additional_suffix else ""), email=("test{}@example.com").format(additional_suffix)) user.address = [ Address.generate_test_data(user, additional_suffix=counter) for counter in range(3) ] user.metadata = {("test{}").format(counter1): {("test2_{}").format(counter2): ("Test value {}").format(counter2) for counter2 in range(3)} for counter1 in range(5)} return user
class StudentUser(mongoengine.Document, UserMixin): meta = {'collection': 'students'} userID = mongoengine.StringField(required=True) # profile information -- server/users/students/forms.py # -- server/users/students/routes.py (createProfile) username = mongoengine.StringField(required=True) password = mongoengine.StringField(required=True) imageFile = mongoengine.ImageField() # contact information -- server/users/parents/forms.py # -- server/users/parents/routes.py (register) firstName = mongoengine.StringField(required=True) lastName = mongoengine.StringField(required=True) email = mongoengine.EmailField() # acquired from parents collection parent = mongoengine.ObjectIdField() def getResetToken(self, expiresSec=1800): s = Serializer(current_app.config['SECRET_KEY'], expiresSec) return s.dumps({'userID': self.userID}).decode('utf-8') @staticmethod def verifyResetToken(token): s = Serializer(current_app.config['SECRET_KEY']) try: userID = s.loads(token)['userID'] except: return None return db.students.find_one({"userID": userID}) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.imageFile}')"
class Admin(me.Document): login = me.StringField(min_length=6, max_length=64, required=True, unique=True) password = me.StringField(min_length=8, max_length=128, required=True) email = me.EmailField()
class Blocked(db.EmbeddedDocument): user_reference = db.StringField() user_email = db.EmailField() created_at = db.ComplexDateTimeField(default=datetime.datetime.now) last_updated_at = db.ComplexDateTimeField(default=datetime.datetime.now) is_active = db.BooleanField(default=True) version = db.IntField(default=0)
class User(mongoengine.Document): email = mongoengine.EmailField(required=True, unique=True) password = mongoengine.StringField(required=True) api_key = mongoengine.StringField() devices = mongoengine.ListField(mongoengine.ReferenceField(GPSDevice)) @classmethod def check_api_key(self, api_key): try: return User.objects.get(api_key=api_key) except User.DoesNotExist: return None def save(self, *args, **kwargs): if not self.id and self.password: self.password = bcrypt.hashpw(self.password, salt=bcrypt.gensalt()) if not self.api_key: self.api_key = hashlib.sha1(str(random.random())).hexdigest() super(User, self).save(*args, **kwargs) def check_password(self, password_to_check): return bcrypt.checkpw(hashed_password=self.password, password=password_to_check) def set_password(self, password): if not self.id: raise Exception( 'user.set_password() can only be called after user has been saved' ) self.password = bcrypt.hashpw(password, salt=bcrypt.gensalt()) def __str__(self): return self.email
class User(me.Document): meta = {'collection': 'users'} username = me.StringField(required=True, unique=True) password = me.StringField() email = me.EmailField(required=True, unique=True) first_name = me.StringField(max_length=100, required=True) last_name = me.StringField(max_length=100) status = me.StringField(max_length=100, required=True, default="active") registration_date = me.DateTimeField(required=True, default=datetime.datetime.now) updated_date = me.DateTimeField(required=True, default=datetime.datetime.now) ip_address = me.StringField(max_length=100, required=True, default='0.0.0.0') roles = me.ListField(me.ReferenceField('Role')) def set_password(self, password): from pyramid.threadlocal import get_current_request request = get_current_request() self.password = request.secret_manager.get_hash_password(password)
class User(models.Document): # 用户模型(普通,管理员) card_id = models.StringField(max_length=20, required=False) # 工号 username = models.StringField(max_length=20, required=False) # 用户名 password = models.StringField(required=True) # 登录密码 age = models.IntField(required=False) # 年龄 sex = models.IntField(choices=enums.SEX_LIST, required=False) # 性别 department = models.StringField(max_length=30, required=False) # 部门 position = models.StringField(max_length=30, required=False) # 职位 mobile = models.StringField(required=False) # 手机 emergency_contact = models.StringField(required=False) # 紧急联系人 create_time = models.DateTimeField(default=datetime.datetime.now) # 创建时间 email = models.EmailField() # email custom_attr = models.DictField() # 用户其他信息 perm = models.StringField(choices=enums.ADMIN_USER_PERMISSION_LIST, required=False) # 权限 # 1,False | 2,True default=enums.NORMAL status = models.IntField(choices=enums.USER_STATUS_LIST, default=enums.USER_STATUS_CHECK, required=True) # 性别 # 每一条数据都会有一个独一无二的id @property def oid(self): return str(self.id) meta = { "indexes": ["card_id", "username"] }
class User(mongoengine.Document): name = mongoengine.StringField(required=True, unique=True, max_length=50) email = mongoengine.EmailField(required=True, unique=True, max_length=50) password = mongoengine.StringField(required=True) joined_on = mongoengine.DateTimeField(default=datetime.datetime.utcnow) ## define collection name meta = {'collection': 'users'} def __repr__(self): return 'Im {0} and my email is {1}'.format(self.name, self.email) ''' check if a password matches with this objects hashed password ''' def is_hash_match(self, password): return check_password_hash(self.password, password) ''' check if name is used ''' def name_used(self): matches = self.objects(name=self.name) return len(matches) > 0 ''' check if email is used ''' def email_used(self): matches = self.objects(email=self.email) return len(matches) > 0
class User(UserMixin, db.Document): meta = {'collection': 'users'} email = db.EmailField(unique=True) confirmed = db.BooleanField(default=False) username = db.StringField(max_length=100, required=True, unique=True) pwhash = db.StringField(max_length=128, required=True) role_id = db.ObjectIdField() def set_password(self, password): self.pwhash = generate_password_hash(password) def verify_password(self, password): return check_password_hash(self.pwhash, password) def generate_confirmation_token(self, expiration=3600): s = Serializer(current_app.config['SECRET_KEY'], expiration) return s.dumps({'confirm': self.get_id()}).decode('utf-8') def confirm(self, token): s = Serializer(current_app['SECRET_KEY']) try: data = s.loads(token.encode('utf-8')) except: return False if data.get('confirm') != self.get_id(): return False self.confirmed = True self.save() return True
class Otp(mongoengine.Document): mobile = mongoengine.StringField() login_otp = mongoengine.StringField() signup_otp = mongoengine.StringField() name = mongoengine.StringField() email = mongoengine.EmailField() hashed_password = mongoengine.StringField()
class Users(db.Document): username = db.StringField(max_length=50, required=True, unique=True) password = db.StringField(max_length=128, required=True) salt = db.StringField(default=Random.create(20), max_length=20, required=True) role = db.StringField(max_length=20, required=True, default="user", choices=ROLE_OPTIONS) email = db.EmailField(required=True) meta = { 'ordering': ['-username'], } @property def is_authenticated(self): return True @property def is_active(self): return True @property def is_anonymous(self): return False def get_id(self): return self.username
class OrganizationDTO(mongo.Document): """A DTO wrapper for Organization documents.""" name = mongo.StringField(db_field='n') address = mongo.StringField(db_field='a') latlng = mongo.ListField(db_field='l') types = mongo.ListField(mongo.IntField(), db_field='ts') phone_numbers = mongo.ListField(db_field='ns') email_key = mongo.EmailField(db_field='ek') emails = mongo.ListField(db_field='es') contacts = mongo.ListField(mongo.ReferenceField(ContactDTO), db_field='cs') user_contacts = mongo.ListField(mongo.ReferenceField('UserDTO'), db_field='us') organization_url = mongo.StringField(db_field='u') partners = mongo.ListField(mongo.ReferenceField('self'), db_field='ps') facebook = mongo.URLField(db_field='f') twitter = mongo.URLField(db_field='t') keywords = mongo.StringField(db_field='ks') valid = mongo.BooleanField(db_field='v', default=True) last_updated = mongo.DateTimeField(db_field='lu') updated_by = mongo.ObjectIdField(db_field='ub') page_rank_info = mongo.EmbeddedDocumentField(document_type=PageRankInfoDTO, db_field='r') page_rank = mongo.LongField(min_value=0, db_field='pr') page_rank_weight = mongo.FloatField(min_value=0.0, max_value=1.0, db_field='w') content_weight = mongo.FloatField(min_value=0.0, db_field='c') combined_weight = mongo.FloatField(min_value=0.0, db_field='cw')
class ParentUser(mongoengine.Document, UserMixin): meta = {'collection': 'parents'} firstName = mongoengine.StringField(required=True) lastName = mongoengine.StringField(required=True) email = mongoengine.EmailField() phone = mongoengine.StringField(required=True) students = mongoengine.ListField(mongoengine.ReferenceField(StudentUser)) def resetToken(self, expireSec=1800): s = Serializer(current_app.config['SECRET-KEY'], expireSec) return s.dumps({"email": self.email}).decode('utf-8') @staticmethod def resetResetToken(token): s = Serializer(current_app.config['SECRET-KEY']) try: email = s.loads(token)['email'] except: return None return db.parents.find_one({"email": email}) def __repr__(self): return f"Parent('{self.firstName}','{self.lastName}','{self.email}')"
class Customer(mongoengine.Document): name = mongoengine.StringField() email = mongoengine.EmailField() hashed_password = mongoengine.StringField() mobile = mongoengine.StringField() login_otp = mongoengine.StringField() wallet_bal = mongoengine.DecimalField(default=0.0) trans_history = mongoengine.ListField(mongoengine.ObjectIdField())
class User(me.Document): name = me.StringField(required=True, max_length=100) lastname = me.StringField(required=True, max_length=100) password = me.StringField(required=True, min_length=8, max_length=256) email = me.EmailField(required=True, unique=True, max_length=256) is_admin = me.BooleanField(required=True, default=False) #Metadata meta = {'collection': 'user'}
class User(mongoengine.Document): name = mongoengine.StringField(required=True, max_length=50) position = mongoengine.StringField(required=True) extension = mongoengine.IntField() telephone = mongoengine.ListField() email = mongoengine.EmailField() department = mongoengine.StringField(max_length=20) company = mongoengine.StringField(max_length=20)
class User(mongoengine.Document): email = mongoengine.EmailField(required=True, unique=True) username = mongoengine.StringField(required=True, unique=True, max_length=35) password_hash = mongoengine.StringField(required=True) is_owner = mongoengine.BooleanField() owned_robot = mongoengine.StringField(required=False)
class EmergencyContacts(mongoengine.EmbeddedDocument): firstName = mongoengine.StringField(required=True) lastName = mongoengine.StringField(required=True) relationToStudent = mongoengine.StringField(required=True) # contact info phoneNumber = mongoengine.StringField(required=True) email = mongoengine.EmailField(required=True)
class User(db.Document): user_id = db.IntField(unique=True) name = db.StringField() phone = db.StringField(unique=True) email = db.EmailField() city = db.StringField() address = db.StringField() created = db.DateTimeField()
class User(mong.Document): email = mong.EmailField() username = mong.StringField() password = mong.StringField() meta = { 'strict': False, }
class User(mongoengine.Document, UserMixin): email = mongoengine.EmailField(required=True) passwordHash = mongoengine.StringField(required=True) def checkPassword(self, password): return check_password_hash(self.passwordHash, password) def setPassword(self, password): self.passwordHash = generate_password_hash(password)
class User(me.Document): join_date = me.DateTimeField(required=True, default=datetime.now()) username = me.StringField(required=True, unique=True) email = me.EmailField(required=True, unique=True) password = me.StringField(required=True) location = me.StringField(required=False) role = me.StringField(required=True, default="User") active = me.BooleanField(required=True, default=True) real_name = me.StringField(required=True)