Changeset - 145677a36675
[Not reviewed]
beta
0 3 0
Matt Zuba - 14 years ago 2011-12-21 18:08:32
matt.zuba@goodwillaz.org
Remember Me option on login
3 files changed with 15 insertions and 9 deletions:
0 comments (0 inline, 0 general)
rhodecode/controllers/login.py
Show inline comments
 
@@ -61,24 +61,29 @@ class LoginController(BaseController):
 
        if request.POST:
 
            # import Login Form validator class
 
            login_form = LoginForm()
 
            try:
 
                c.form_result = login_form.to_python(dict(request.POST))
 
                # form checks for username/password, now we're authenticated
 
                username = c.form_result['username']
 
                user = User.get_by_username(username, case_insensitive=True)
 
                auth_user = AuthUser(user.user_id)
 
                auth_user.set_authenticated()
 
                cs = auth_user.get_cookie_store()
 
                session['rhodecode_user'] = cs
 
                # If they want to be remembered, update the cookie
 
                if c.form_result['remember'] is not False:
 
                    session.cookie_expires = False
 
                    session._set_cookie_values()
 
                session._update_cookie_out()
 
                session.save()
 

	
 
                log.info('user %s is now authenticated and stored in '
 
                         'session, session attrs %s' % (username, cs))
 
                user.update_lastlogin()
 
                Session.commit()
 
                
 
                if c.came_from:
 
                    return redirect(c.came_from)
 
                else:
 
                    return redirect(url('home'))
 

	
 
@@ -150,16 +155,15 @@ class LoginController(BaseController):
 
                data = dict(email=user.email)
 
                UserModel().reset_password(data)
 
                h.flash(_('Your password reset was successful, '
 
                          'new password has been sent to your email'),
 
                            category='success')
 
            except Exception, e:
 
                log.error(e)
 
                return redirect(url('reset_password'))
 

	
 
        return redirect(url('login_home'))
 

	
 
    def logout(self):
 
        del session['rhodecode_user']
 
        session.save()
 
        log.info('Logging out and setting user as Empty')
 
        session.delete()
 
        log.info('Logging out and deleting session for user')
 
        redirect(url('home'))
rhodecode/model/forms.py
Show inline comments
 
@@ -473,24 +473,26 @@ class LoginForm(formencode.Schema):
 
                                'tooShort':_('Enter a value %(min)i characters long or more')}
 
                            )
 

	
 
    password = UnicodeString(
 
                            strip=True,
 
                            min=3,
 
                            not_empty=True,
 
                            messages={
 
                                'empty':_('Please enter a password'),
 
                                'tooShort':_('Enter %(min)i characters or more')}
 
                                )
 

	
 
    remember = StringBoolean(if_missing=False)
 
    
 
    chained_validators = [ValidAuth]
 

	
 
def UserForm(edit=False, old_data={}):
 
    class _UserForm(formencode.Schema):
 
        allow_extra_fields = True
 
        filter_extra_fields = True
 
        username = All(UnicodeString(strip=True, min=1, not_empty=True),
 
                       ValidUsername(edit, old_data))
 
        if edit:
 
            new_password = All(UnicodeString(strip=True, min=6, not_empty=False))
 
            password_confirmation = All(UnicodeString(strip=True, min=6, not_empty=False))
 
            admin = StringBoolean(if_missing=False)
rhodecode/templates/login.html
Show inline comments
 
@@ -35,30 +35,30 @@
 
                    </div>
 
                    
 
                </div>                     
 
                <div class="field">
 
                    <div class="label">
 
                        <label for="password">${_('Password')}:</label>
 
                    </div>
 
                    <div class="input">
 
                        ${h.password('password',class_='focus',size=40)}
 
                    </div>
 
                    
 
                </div>
 
                ##<div class="field">
 
                ##    <div class="checkbox">
 
                ##        <input type="checkbox" id="remember" name="remember" />
 
                ##        <label for="remember">Remember me</label>
 
                ##    </div>
 
                ##</div>
 
                <div class="field">
 
                    <div class="checkbox">
 
                        <input type="checkbox" id="remember" name="remember" />
 
                        <label for="remember">Remember me</label>
 
                    </div>
 
                </div>
 
                <div class="buttons">
 
                    ${h.submit('sign_in',_('Sign In'),class_="ui-button")}
 
                </div>
 
            </div>
 
            <!-- end fields -->
 
            <!-- links -->
 
            <div class="links">
 
                ${h.link_to(_('Forgot your password ?'),h.url('reset_password'))}
 
                %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
 
                  / 
 
                 ${h.link_to(_("Don't have an account ?"),h.url('register'))}
 
                %endif
0 comments (0 inline, 0 general)