class UserInvite(models.Model): invited_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='invited_users', null=True, blank=True, verbose_name="Кого приглашает") created = models.DateTimeField(default=timezone.now, null=False, blank=False, verbose_name="Приглашение создано") created_user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True, blank=True, verbose_name="Кто приглашает") name = models.CharField(max_length=35, null=True, blank=True) email = models.EmailField(null=True, blank=True, verbose_name="Емаил") username_validator = UnicodeUsernameValidator( ) if six.PY3 else ASCIIUsernameValidator() token = models.CharField(max_length=255, unique=True) is_invite_email_sent = models.BooleanField(default=False) def __str__(self): return 'UserInvite'
class User(AbstractUser): objects = CustomUserManager() username_validators = [ASCIIUsernameValidator(), username_validator] bio = models.CharField(max_length=500, blank=True) location = models.CharField(max_length=30, blank=True)
class AddTags(forms.Form): tag_name_validator = UnicodeUsernameValidator() if six.PY3 else ASCIIUsernameValidator() def __init__(self, *args, **kwargs): super(AddTags, self).__init__(*args, **kwargs) # for i in range(10): # tag_temp = fields_for_model(model=Tag, fields=('tag_name',)) # tag_temp['tag_name'].required = False # tag_temp['tag_name_%s' % i] = tag_temp.pop('tag_name') # self.fields.update(tag_temp) for i in range(10): tag_temp = forms.CharField(max_length=50, help_text=_( 'Maksymalna długość 50 znaków. Dozwolone są litery, cyfry i @/./+/-/_.'), validators=[self.tag_name_validator], error_messages={ 'unique': _("Tag o takiej nazwie już istnieje"), 'invalid': _("Podaj poprawną nazwę tag"), }, required=False) self.fields.update({'tag_name_%s' % i: tag_temp}) def save(self): name_list = [] for key, value in self.cleaned_data.items(): if value != '': tag, status = Tag.objects.get_or_create(tag_name=value) name_list.append(tag) return name_list
class ClientUser(User): username_validator = ASCIIUsernameValidator() class Meta: proxy = True verbose_name = 'Cliente' permissions = (('view_clientuser', 'can see client user'), )
class CustomUser(AbstractUser): username_validator = ASCIIUsernameValidator() username = models.CharField( _('username'), max_length=128, unique=True, help_text=_('Required. 150 characters or fewer. Letters, digits and ' '@/./+/-/_ only.'), validators=[ username_validator, ], error_messages={ 'unique': _('A user with that username already exists.'), }, ) email = models.EmailField( _('email address'), max_length=128, unique=True, error_messages={ 'unique': 'A user with that email already exists.', }, ) objects = CustomUserManager() EMAIL_FIELD = 'email' USERNAME_FIELD = 'username' REQUIRED_FIELDS = [ 'email', ]
class CustomUser(AbstractBaseUser, auth_models.PermissionsMixin): username_validator = ASCIIUsernameValidator() """カスタムユーザーモデル.""" class Meta: db_table = 'custom_user' #ユーザ基本情報 username = models.CharField(max_length=10,unique=True) email = models.EmailField(unique=False, blank=True) first_name = models.CharField(max_length=30, blank=True) last_name = models.CharField(max_length=150, blank=True) #ユーザプロフィール詳細 profile = models.CharField(max_length=10000, blank=True) USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['email'] # Default Permission is_staff = models.BooleanField(default=False) is_admin = models.BooleanField(default=False) is_active = models.BooleanField(default=True) is_superuser = models.BooleanField(default=False) objects = auth_models.UserManager() def __str__(self): return self.username
def validate_input_and_create_superuser(self, username: str, password: str, secret: str): """ Check all fields, then create a superuser :param str username: The Username :param str password: The Password :param str secret: The Secret (BASE32 format) :raises CommandError: When something is wrong """ try: ASCIIUsernameValidator()(username) except ValidationError as ex: raise CommandError(_('Username "%(username)s" is invalid: %(message)s') % { 'username': username, 'message': ex.message }) try: validate_password(password) except ValidationError as ex: raise CommandError('{}: {}'.format( _('The password is invalid'), ' '.join(ex.messages) )) try: secret_bin = b32decode(secret) except binascii.Error as ex: raise CommandError(_('Invalid TOTP Secret: %(message)s') % { 'message': str(ex) }) self.database_operation(username, password, secret_bin)
class Owner(User): username_validator = ASCIIUsernameValidator() class Meta: proxy = True verbose_name = 'Owner' verbose_name_plural = 'Owners'
class User(AbstractUser): # Default validator became UnicodeUsernameValidator under python3. username_validator = ASCIIUsernameValidator() # Re-declaration of username because of this issue, http://stackoverflow.com/a/41634646 username = models.CharField( _('username'), max_length=150, unique=True, help_text= _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.' ), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) class Meta: verbose_name = 'ユーザー' verbose_name_plural = 'ユーザー' # this usage of index_together is to merely add simple index to date_joined field declared in AbstractUser. # the result is completely the same as db_index. index_together = [['date_joined']] def __str__(self): return '%s' % (self.username, )
class UserProfile(AbstractUser): username_validator = UnicodeUsernameValidator( ) if six.PY3 else ASCIIUsernameValidator() username = models.CharField('用户名', max_length=150, help_text='请输入您的名字', validators=[username_validator], null=True, blank=True) job_num = models.CharField(max_length=30, unique=True, verbose_name="工号", help_text="请填写工号,型如:z18861") mobile = models.CharField(null=True, blank=True, max_length=11, verbose_name="手机号") phone = models.CharField(null=True, blank=True, max_length=20, verbose_name="工位分机号") avatar = models.ImageField(upload_to="avatar", default="", verbose_name="头像") USERNAME_FIELD = 'job_num' objects = MyUserManager() class Meta: verbose_name = "用户" verbose_name_plural = verbose_name def __str__(self): return "{}-{}".format(self.job_num, self.username)
class User(AbstractBaseUser): """ Simplified User class which store only username, password and join datetime. """ username = models.CharField( max_length=150, unique=True, validators=[ASCIIUsernameValidator()], help_text= 'Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', error_messages={'unique': "A user with that username already exists."}, ) join_datetime = models.DateTimeField(auto_now_add=True) objects = UserManager() USERNAME_FIELD = 'username' REQUIRED_FIELDS = ('password', ) def get_full_name(self): return self.username def get_short_name(self): return self.username @cached_property def last_login(self): """ Override model field from AbstractBaseUser :return: datetime of last login """ details = self.login_details.last() return details.login_datetime if details is not None else None
class User(AbstractBaseUser, PermissionsMixin): # email = models.EmailField( # verbose_name='email address', # max_length=255, # unique=True, # ) # date_of_birth = models.DateField() # is_admin = models.BooleanField(default=False) username_validator = ASCIIUsernameValidator() username = models.CharField( _('username'), max_length=150, unique=True, help_text=_( 'Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) name = models.TextField() balance = models.DecimalField(max_digits=15, decimal_places=2, default=0) profile = models.TextField(blank=True) picture = models.ForeignKey( BlobStorage, on_delete=models.CASCADE, related_name='user_picture', blank=True, null=True) objects = UserManager() USERNAME_FIELD = 'username'
class Account(AbstractBaseUser, PermissionsMixin): username_validator = UnicodeUsernameValidator() if six.PY3 else ASCIIUsernameValidator() username = models.CharField( _('username'), max_length=150, unique=True, help_text=_('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) email = models.EmailField( verbose_name='Email address', max_length=255, unique=True, ) first_name = models.CharField(max_length=255) last_name = models.CharField(max_length=255) tel_1 = models.CharField(max_length=20) tel_2 = models.CharField(max_length=20, blank=True) latitude = models.DecimalField(max_digits=9, decimal_places=6, null=True, blank=True) longtitude = models.DecimalField(max_digits=9, decimal_places=6, null=True, blank=True) address = models.TextField(max_length=255) city = models.CharField(max_length=100) zip_code = models.CharField(max_length=10) is_admin = models.BooleanField(default=False) is_veterinarian = models.BooleanField(default=False) is_active = models.BooleanField(default=True) specialties = models.CharField(max_length=100, null=True, blank=True) license = models.CharField(max_length=100, null=True, blank=True) last_active = models.DateTimeField(_('last active'), blank=True, null=True) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) objects = AccountManager() USERNAME_FIELD = 'email' REQUIRED_FIELDS = [] def __str__(self): return self.email @property def is_staff(self): return self.is_admin def get_short_name(self): return self.email def get_full_name(self): return '{0} {1}'.format(self.first_name, self.last_name)
class User(AbstractUser): username = models.CharField( verbose_name=_('username'), max_length=150, unique=True, default=generate_random_username, help_text= _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.' ), validators=[ASCIIUsernameValidator()], error_messages={ 'unique': _("A user with that username already exists."), }, ) email = models.EmailField(_('email address'), db_index=True, blank=True) phone = models.CharField( verbose_name=_('phone'), max_length=15, validators=[ RegexValidator( regex=r'^\d+$', message=_('Phone number should only be comprised of digits.')), ], db_index=True, blank=True, ) city = models.ForeignKey( to=City, verbose_name=_('city'), related_name='users', on_delete=models.CASCADE, null=True, blank=True, ) USERNAME_FIELD = 'username'
class User(AbstractBaseUser, PermissionsMixin): username_validator =\ UnicodeUsernameValidator() if six.PY3 else ASCIIUsernameValidator() username = models.CharField( _('username'), max_length=30, unique=True, help_text=_('Required. 30 characters or fewer. Letters, digits and ' ' @/./+/-/_ only.'), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) email = models.EmailField(_('email address'), unique=True) is_staff = models.BooleanField( _('staff status'), default=False, help_text=_('Designates whether the user can log into' ' this admin site.'), ) is_active = models.BooleanField( _('active'), default=True, help_text=_( 'Designates whether this user should be treated as active. ' 'Unselect this instead of deleting accounts.'), ) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) username_set = models.BooleanField(default=True) timezone = TimeZoneField(default='Europe/London') objects = UserManager() USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['email'] class Meta: verbose_name = _('user') verbose_name_plural = _('users') def get_full_name(self): """ Returns the first_name plus the last_name, with a space in between. """ full_name = '%s %s' % (self.profile.first_name, self.profile.last_name) return full_name.strip() def get_short_name(self): "Returns the short name for the user." return self.profile.first_name def email_user(self, subject, message, from_email=None, **kwargs): """ Sends an email to this User. """ send_mail(subject, message, from_email, [self.email], **kwargs)
class User(AbstractBaseUser, PermissionsMixin): GENDER_CHOICES = (('male', 'Male'), ('female', 'Female')) username_validator = UnicodeUsernameValidator( ) if six.PY3 else ASCIIUsernameValidator() username = models.CharField( _('username'), max_length=150, unique=True, help_text= _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.' ), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) is_staff = models.BooleanField(_('staff status'), default=False) is_active = models.BooleanField(_('active'), default=True) email = models.EmailField(_('email address'), blank=True, unique=True) first_name = models.CharField(_('first name'), max_length=30, blank=True) last_name = models.CharField(_('last name'), max_length=30, blank=True) birthday = models.DateField(null=True, blank=True) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) gender = models.CharField(max_length=8, null=True, blank=True, choices=GENDER_CHOICES) avatar = models.ForeignKey(Image, null=True, blank=True, related_name="avatar") about = models.TextField(null=True, blank=True) facebook_id = models.BigIntegerField(null=True, blank=True) location = models.PointField(null=True, blank=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) USERNAME_FIELD = 'email' REQUIRED_FIELDS = [] objects = UserManager() def get_full_name(self): """ The user is identified by their email address """ return self.email def get_short_name(self): """ The user is identified by their email address """ return self.email def __str__(self): return self.email class Meta: verbose_name = 'user' verbose_name_plural = 'users' db_table = "auth_user"
class User(AbstractBaseUser, PermissionsMixin): username_validator = UnicodeUsernameValidator( ) if six.PY3 else ASCIIUsernameValidator() username = models.CharField( _('username'), max_length=150, unique=True, help_text= _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.' ), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) email = models.EmailField(_('email address'), unique=True, null=True, blank=True) first_name = models.CharField(_('first name'), max_length=30, blank=True) last_name = models.CharField(_('last name'), max_length=30, blank=True) date_joined = models.DateTimeField(_('date joined'), auto_now_add=True) is_active = models.BooleanField(_('active'), default=True) avatar = models.ImageField(upload_to='avatars/', null=True, blank=True) is_staff = models.BooleanField( _('staff status'), default=False, help_text=_( 'Designates whether the user can log into this admin site.'), ) objects = UserManager() EMAIL_FIELD = 'email' USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['email'] class Meta: verbose_name = _('user') verbose_name_plural = _('users') def get_full_name(self): ''' Returns the first_name plus the last_name, with a space in between. ''' full_name = '%s %s' % (self.first_name, self.last_name) return full_name.strip() def get_short_name(self): ''' Returns the short name for the user. ''' return self.first_name def email_user(self, subject, message, from_email=None, **kwargs): ''' Sends an email to this User. ''' send_mail(subject, message, from_email, [self.email], **kwargs)
class User(User): username_validator = ASCIIUsernameValidator() class Meta: proxy = True # If no new field is added. def __str__(self): return "{}".format(self.firstname + " " + self.surname)
class User(AbstractUser): email = models.EmailField(_('email address'), unique=True) username_validator = ASCIIUsernameValidator() REQUIRED_FIELDS = ['email',] @property def is_adherent(self): return self.groups.filter(name='adherent').exists()
class User(AbstractBaseUser): """ Extends AbstractBaseUser, inherits password field and set of useful methods Added some fields and methods based on builtin django user (AbstractUser) class At the end contains: ID(default if no pk specified), username, email, password, date_joined, last_login """ username_validator = UnicodeUsernameValidator( ) if six.PY3 else ASCIIUsernameValidator() username = models.CharField( _('username'), max_length=150, unique=True, help_text= _('Maksymalna długość 150 znaków. Dozwolone są litery, cyfry i @/./+/-/_.' ), validators=[username_validator], error_messages={ 'unique': _("Użytkownik o takiej nazwie już istnieje"), 'invalid': _("Podaj poprawną nazwę użytkownika" ), # Override username_validator error }, ) email = models.EmailField( _('email address'), unique=True, error_messages={ 'unique': _("Użytkownik o takim emailu już istnieje"), }, ) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) objects = UserManager() EMAIL_FIELD = 'email' USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['password', 'email'] def clean(self): super(User, self).clean() # call base method - clearing username def get_full_name(self): """ Base method force to override this method Just return username """ return self.username def get_short_name(self): """ Base method force to override this method Just return username """ return self.username
class user(models.Model): username_validator = ASCIIUsernameValidator() firstName = models.CharField(max_length=100) lastName = models.CharField(max_length=200) username = models.CharField(max_length=100, default="") eMail = models.CharField(max_length=200) company = models.CharField(max_length=200) Manager = models.CharField(max_length=200) program = models.CharField(max_length=200) phoneNum = models.IntegerField()
class LoginForm(forms.Form): username = forms.CharField( required=True, validators=[ ASCIIUsernameValidator( message='Enter a valid username. 30 characters or fewer. \ Letters, digits and ./-/_ only. Please do not copy paste here.', code='invalid_username'), ]) password = forms.CharField(widget=forms.PasswordInput, required=True)
def __init__(self, *args, **kwargs): super(Profile, self).__init__(*args, **kwargs) self._meta.get_field( 'username' ).validators[0] = ASCIIUsernameValidator( message= u'Введите валидное имя. Имя может содержать цифры, буквы лат алфавита и знаки @.+-_' )
class User(AbstractBaseUser, PermissionsMixin): username_validator = ASCIIUsernameValidator() # 文字コードの違いを吸収 username = models.CharField( _('username'), max_length=150, unique=True, help_text= _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.' ), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) email = models.EmailField(_('email address'), blank=True) profile_icon = models.ImageField(_('profile icon'), upload_to='profile_icons', null=True, blank=True) self_introduction = models.CharField(_('self introduction'), max_length=512, blank=True) is_admin = models.BooleanField(default=False) is_staff = models.BooleanField( _('staff status'), default=False, help_text=_( 'Designates whether the user can log into this admin site.'), ) is_active = models.BooleanField( _('active'), default=True, help_text=_( 'Designates whether this user should be treated as active. ' 'Unselect this instead of deleting accounts.'), ) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) objects = UserManager() EMAIL_FIELD = 'email' USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['email'] class Meta: verbose_name = _('user') verbose_name_plural = _('users') db_table = 'users' def clean(self): super().clean() self.email = self.__class__.objects.normalize_email(self.email) def email_user(self, subject, message, from_email=None, **kwargs): send_mail(subject, message, from_email, [self.email], **kwargs)
class Profile(User, models.Model): username_validator = ASCIIUsernameValidator() date_of_birth = models.DateField() bio = models.TextField() avatar = models.ImageField(blank=True, upload_to='assets/images') class Meta: pass def __str__(self): return self.username
class StaffUser(User): username_validator = ASCIIUsernameValidator() class Meta: proxy = True verbose_name = 'staff' permissions = ( ('add_address', 'Can add address'), ('change_address', 'Can change address'), ('delete_address', 'Can delete address'), )
class Paciente(User): username_validator = ASCIIUsernameValidator() # user = models.OneToOneField(User, on_delete=models.CASCADE) instituicao_ensino = models.CharField(('Instituição de ensino'), max_length=20, blank=False) idade = models.IntegerField(('Idade')) telefone = models.CharField(('Telefone'), max_length=20, blank=True) cpf = models.CharField(('CPF'), max_length=20, blank=True) history = HistoricalRecords() # objects = UserManager() def __str__ (self): return self.username
def _create_user(self, username, email, password, **extra_fields): """メールアドレスでの登録を必須にする""" if not email: raise ValueError('The given email must be set') username_validator = ASCIIUsernameValidator() username = self.model.normalize_username(username, required=True, validators=[username_validator]) email = self.normalize_email(email, required=True) user = self.model(username=username, email=email, **extra_fields) user.set_password(password) user.save(using=self._db) return user
def signup_view(request): data = {} status = HTTPStatus.CREATED try: if request.method == "POST": json_body = loads(request.body) username = json_body.get("user", None) password = json_body.get("password", None) password_confirm = json_body.get("passwordConfirm", None) if not username or not password or not password_confirm: raise ValueError() if password != password_confirm: raise ValueError() username_validator = ASCIIUsernameValidator( message="Please check the username condition." ) username_validator(username) validate_password(password) user = User.objects.create_user(username=username) user.set_password(password) user.save() data["access_token"] = generate_access_token(username) data["user"] = username else: return HttpResponseNotAllowed(["POST"]) except ValidationError as e: # Password validation exception data["error"] = e.messages status = HTTPStatus.BAD_REQUEST except IntegrityError: # Duplicate user name exception data["error"] = "Duplicate user name. Please use a different name." status = HTTPStatus.BAD_REQUEST except ValueError: # Invalid user request exception data["error"] = "Invalid form. Please fill it out again." status = HTTPStatus.BAD_REQUEST return JsonResponse(data, status=status)
class OrganizationAdmin(BaseModel): class Meta(BaseModel.Meta): db_table = 'organization_admin' ordering = ['id'] username = models.CharField( max_length=12, validators=[ASCIIUsernameValidator(), MinLengthValidator(4)], unique=True) password = models.CharField(max_length=18, validators=[MinLengthValidator(4)]) organization = models.ForeignKey(Organization, on_delete=models.CASCADE) def __unicode__(self): return u"组织账号:{}".format(self.username)