Ejemplo n.º 1
0
class ChangePasswordForm(forms.Form):
    """
        A form used to change the password of a user in the admin interface.
    """
    newpassword = PasswordField(required=True, max_length=12, min_length=6)
    renewpassword = PasswordField(required=True, max_length=12, min_length=6)

    def __init__(self, user, *args, **kwargs):
        self.user = user
        super(ChangePasswordForm, self).__init__(*args, **kwargs)

    def clean_password2(self):
        newpassword = self.cleaned_data.get('newpassword')
        renewpassword = self.cleaned_data.get('renewpassword')
        if newpassword and renewpassword:
            if newpassword != renewpassword:
                raise forms.ValidationError(u"此处必须输入和上栏密码相同的内容")
        raise forms.ValidationError(u"此处必须输入和上栏密码相同的内容")
        return renewpassword

    def save(self, commit=True):
        """
        Saves the new password.
        """
        self.user.set_password(self.cleaned_data["newpassword"])
        if commit:
            self.user.save()
        return self.user
Ejemplo n.º 2
0
class NewPasswordForm(forms.ModelForm):
    newpassword = PasswordField(required=True,
                                max_length=128,
                                min_length=6,
                                label=u'新密码')
    renewpassword = PasswordField(required=True,
                                  max_length=128,
                                  min_length=6,
                                  label=u'确认密码')

    class Meta:
        model = CustomUser
        fields = ['newpassword', 'renewpassword']
Ejemplo n.º 3
0
class LoginForm(forms.Form):
    username = UsernameField(required=True, max_length=12, min_length=3)
    password = PasswordField(required=True, max_length=12, min_length=6)

    def __init__(self, request=None, *args, **kwargs):
        self.request = request
        self.user_cache = None
        super(LoginForm, self).__init__(*args, **kwargs)

    def clean(self):
        username = self.cleaned_data.get('username')
        password = self.cleaned_data.get('password')

        if username and password:
            self.user_cache = authenticate(username=username,
                                           password=password)
            #如果成功返回对应的User对象,否则返回None(只是判断此用户是否存在,不判断是否is_active或者is_staff)
            if self.user_cache is None:
                raise forms.ValidationError(u"您输入的用户名或密码不正确!")
            elif not self.user_cache.is_active or not self.user_cache.is_staff:
                raise forms.ValidationError(u"您输入的用户名或密码不正确!")
            else:
                login(self.request, self.user_cache)
        return self.cleaned_data

    def get_user_id(self):
        if self.user_cache:
            return self.user_cache.id
        return None

    def get_user(self):
        return self.user_cache
Ejemplo n.º 4
0
class LoginForm(forms.Form):
    username = UsernameField(required=True, max_length=12, min_length=6)
    password = PasswordField(required=True, max_length=12, min_length=6)
    captcha = CaptchaField(required=True, error_messages={'invalid': u'密码不正确'})

    def __init__(self, request=None, *args, **kwargs):
        self.request = request
        self.user_cache = None
        super(LoginForm, self).__init__(*args, **kwargs)

    def clean(self):
        username = self.cleaned_data.get('username')
        password = self.cleaned_data.get('password')
        if username and password:
            self.user_cache = authenticate(username=username,
                                           password=password)
            if self.user_cache is None:
                raise forms.ValidationError(u'用户名或密码不正确')
            elif not (self.user_cache.is_active or self.user_cache.is_staff):
                raise forms.ValidationError(u'用户名未激活')
            else:
                login(self.request, self.user_cache)
        return self.cleaned_data

    def get_user_id(self):
        if self.user_cache:
            return self.user_cache.id
        return None

    def get_user(self):
        return self.user_cache
Ejemplo n.º 5
0
class ChangePasswordForm(forms.Form):
    newpassword = PasswordField(required=True, max_length=12, min_length=6)
    renewpassword = PasswordField(required=True, max_length=12, min_length=6)

    def __init__(self, user, *args, **kwargs):
        self.user = user
        super(ChangePasswordForm, self).__init__(*args, **kwargs)

    #此段代码需要详细测试
    def clean_renewpassword(self):
        newpassword = self.cleaned_data.get('newpassword')
        renewpassword = self.cleaned_data.get('renewpassword')
        if newpassword and renewpassword:
            if newpassword != renewpassword:
                raise forms.ValidationError(u'此处密码不一致')
        else:
            raise forms.ValidationError(u'此处密码不一致')
        return renewpassword

    def save(self, commit=True):
        self.user.set_password(self.cleaned_data['newpassword'])
        if commit:
            self.user.save()
        return self.user
Ejemplo n.º 6
0
class LoginForm(forms.Form):
    username = UsernameField(required=True, max_length=12, min_length=4)
    password = PasswordField(required=True, max_length=12, min_length=6)

    def __init__(self, request=None, *args, **kwargs):
        self.request = request
        self.user_cache = None
        super(LoginForm, self).__init__(*args, **kwargs)

    def clean(self):
        username = self.cleaned_data.get('username')
        password = self.cleaned_data.get('password')
        if username and password:
            self.user_cache = authenticate(username=username,
                                           password=password)
            print self.user_cache
            if self.user_cache is None:
                raise forms.ValidationError(u"您输入的用户名或密码不正确!")
            elif not self.user_cache.is_active or not self.user_cache.is_staff:
                raise forms.ValidationError(u"您输入的用户名或密码不正确!")
            else:
                login(self.request, self.user_cache)
        return self.cleaned_data
Ejemplo n.º 7
0
class User(mongo.Document):
    username = mongo.StringField(required=True)
    first_name = mongo.StringField(required=False)
    last_name = mongo.StringField()
    email = mongo.EmailField(required=True)
    password = PasswordField(algorithm='md5')
    birthdate = mongo.DateTimeField()

    def check_password(self, password):
        pass_array = self.password.split('$')
        _password = hashlib.md5(pass_array[1] + password).hexdigest()
        if _password == pass_array[2]:
            return True
        return False

    @staticmethod
    def validate_data(username, email, response):
        if User.validate_username(username, response):
            if User.validate_email(email, response):
                return True
        return False

    @staticmethod
    def validate_username(username, response):
        if User.objects.filter(username=username).count() > 0:
            response.body = json.dumps({'message': 'Username Taken'})
            response.status = falcon.HTTP_200
            return False
        return True

    @staticmethod
    def validate_email(email, response):
        if User.objects.filter(email=email).count() > 0:
            response.body = json.dumps({'message': 'Email Taken'})
            response.status = falcon.HTTP_200
            return False
        return True