Django经理和员工身份验证系统

时间:2019-04-25 05:44:25

标签: django django-models django-forms django-views

我有一个Manager身份验证系统,我想 add staff authentication under Manager 。我已经为经理创建了AbstractUser,该如何在经理下管理人员身份验证。

how can I design models and views?

models.py

class CustomAccountManager(BaseUserManager):
    def create_user(self, email, password):
        user = self.model(email=email, password=password)
        user.set_password(password)
        user.is_staff = True
        user.is_superuser = False
        user.save()
        return user

    def create_superuser(self, email, password):
        user = self.create_user(email=email, password=password)
        user.is_active = True
        user.is_staff = True
        user.is_superuser = True
        user.save()
        return user

    def get_by_natural_key(self, email_):
        # print(email_)
        return self.get(email=email_)


class CustomUser(AbstractUser):
    alphanumeric            = RegexValidator(r'^[A-Za-z- ]*$', 'Only alphanumeric characters are allowed.')
    FullName                = models.CharField(max_length=100, validators=[alphanumeric])
    CompanyName             = models.CharField(max_length=50)
    Country                 = CountryField(blank_label='Select Country')
    # username              = None
    email                   = models.EmailField(('email address'), unique=True)
    email_confirmed         = models.BooleanField(default=False)

    force_logout_date       = models.DateTimeField(null=True, blank=True)

    # randompwd               = models.CharField(max_length=20)
    objects = CustomAccountManager()
    USERNAME_FIELD          = 'email'
    REQUIRED_FIELDS         = []
    def __str__(self):  # __unicode__ on Python 2
        return self.email #'{} {} {}'.format(self.email, self.FullName, self.CompanyName) #


expected 当经理添加员工信息时,员工会收到一封包含电子邮件ID和密码的电子邮件,并且经理还会向员工分配权限

0 个答案:

没有答案