Example #1
0
    def post(self):

        form = LoginForm(self)
        if form.validate():
            user = self.db2.query(User).filter_by(username=form.username.data).first()
            if user:
                if user.islocked:
                    form.password.errors.append( self.trans(_('You have been lock by admin, can not login now. If you have any questions, contact admin first please !')) )
                    return self.render('account/login.html', form=form)

                if check_password(form.password.data, user.password):
                    self.save_session(user.id)
                    user.last_login = datetime.now()
                    self.db2.commit()
                    root_passwd = enc_shadow_passwd(form.password.data)
                    user.profile.set_secret('root_shadow_passwd', root_passwd)
                    self.db2.commit()

                    return self.redirect( self.get_argument('next', '/') )
                else:
                    form.password.errors.append( self.trans(_('password is wrong !')) )
            else:
                form.username.errors.append( self.trans(_('No such user !')) )

        self.render('account/login.html', form=form)
Example #2
0
    def post(self):
        self.d['form'] = ResetPasswordForm(self)
        if self.d['form'].validate():

            plaintext = self.d['form'].password.data
            enc_password = enc_login_passwd(plaintext)
            self.d['USER'].password = enc_password

            root_passwd = enc_shadow_passwd(plaintext)
            self.d['USER'].profile.set_secret('root_shadow_passwd', root_passwd)

            self.db2.commit()

            # TODO: set reset password request completed
            applys = self.db2.query(UserResetpass).filter(
                UserResetpass.key == self.key ).all()
            for A in applys:
                A.completed = datetime.now()
            self.db2.commit()

            self.save_session( self.d['USER'].id )

            url = self.reverse_url('account:index')
            return self.redirect( url )

        self.render( 'account/reset_password_complete.html', **self.d )
Example #3
0
    def post(self):

        form = RegistrationForm(self)

        if form.validate():

            user = self.db2.query(User).filter_by( username=form.username.data ).all()

            if user:
                form.username.errors.append( self.trans(_('This username is occupied')) )
            else:
                enc_password = enc_login_passwd(form.password.data)
                newuser = User( username = form.username.data,
                                password = enc_password )
                self.db2.add(newuser)
                self.db2.commit()
                # Create profile
                profile = UserProfile(newuser, email = form.email.data)
                root_passwd = enc_shadow_passwd(form.password.data)
                profile.set_secret('root_shadow_passwd', root_passwd)
                # Add to default group
                from settings import cf
                if cf.has_option('registration', 'user_default_group_id'):
                    try:
                        DGID = int(cf.get('registration', 'user_default_group_id'))
                        G = self.db2.query(Group).get(DGID)
                        newuser.groups = [G]
                        self.db2.commit()
                    except:
                        pass

                self.db2.add(profile)
                self.db2.commit()

                # send_message
                self.send_message( newuser )

                # send_mail()

                self.save_session(newuser.id)

                return self.redirect( self.reverse_url('account:index') )

        # Have a error
        self.render( 'account/register.html', form = form )
Example #4
0
    def post(self):

        form = ResetPasswordForm(self)

        if form.validate():
            user = self.current_user
            enc_password = enc_login_passwd(form.password.data)
            user.password = enc_password

            root_passwd = enc_shadow_passwd(form.password.data)
            user.profile.set_secret('root_shadow_passwd', root_passwd)
            self.db2.commit()

            url = self.application.reverse_url('account:index')
            return self.redirect( url )

        self.render( 'account/reset_password.html', title = self.trans(_('Reset Password')),
                     form = form )