def logout(request): """ logout(request): no return value, called with route_url('apex_logout', request) """ headers = forget(request) came_from = get_came_from(request) request.session.invalidate() return HTTPFound(location=came_from, headers=headers)
def login(request): """ login(request) No return value Function called from route_url('apex_login', request) """ title = _('You need to login') came_from = get_came_from(request) if apex_settings('login_form_class'): LoginForm = get_module(apex_settings('login_form_class')) else: from apex.forms import LoginForm if not apex_settings('exclude_local'): if asbool(apex_settings('use_recaptcha_on_login')): if (apex_settings('recaptcha_public_key') and apex_settings('recaptcha_private_key')): LoginForm.captcha = RecaptchaField( public_key=apex_settings('recaptcha_public_key'), private_key=apex_settings('recaptcha_private_key'), ) form = LoginForm(request.POST, captcha={'ip_address': request.environ['REMOTE_ADDR']}) else: form = LoginForm(request.POST) else: form = None velruse_forms = generate_velruse_forms(request, came_from) if request.method == 'POST' and form.validate(): user = AuthUser.get_by_login(form.data.get('login')) if user: headers = apex_remember(request, user, max_age=apex_settings('max_cookie_age', None)) return HTTPFound(location=came_from, headers=headers) return {'title': title, 'form': form, 'velruse_forms': velruse_forms, 'form_url': request.route_url('apex_login'), 'action': 'login', 'came_from': came_from if came_from else None, }
def login(request): """ login(request) No return value Function called from route_url('apex_login', request) """ title = _('You need to login') came_from = get_came_from(request) if apex_settings('login_form_class'): LoginForm = get_module(apex_settings('login_form_class')) else: from apex.forms import LoginForm if not apex_settings('exclude_local'): if asbool(apex_settings('use_recaptcha_on_login')): if apex_settings('recaptcha_public_key') and \ apex_settings('recaptcha_private_key'): LoginForm.captcha = RecaptchaField( public_key=apex_settings('recaptcha_public_key'), private_key=apex_settings('recaptcha_private_key'), ) form = LoginForm(request.POST, captcha={'ip_address': \ request.environ['REMOTE_ADDR']}) else: form = LoginForm(request.POST) else: form = None velruse_forms = generate_velruse_forms(request, came_from) if request.method == 'POST' and form.validate(): user = AuthUser.get_by_login(form.data.get('login')) if user: headers = apex_remember(request, user, \ max_age=apex_settings('max_cookie_age', None)) return HTTPFound(location=came_from, headers=headers) return {'title': title, 'form': form, 'velruse_forms': velruse_forms, \ 'form_url': request.route_url('apex_login'), 'action': 'login'}
def change_password(request): """ change_password(request): no return value, called with route_url('apex_change_password', request) FIXME doesn't adjust auth_user based on local ID, how do we handle multiple IDs that are local? Do we tell person that they don't have local permissions? """ title = _('Change your Password') came_from = get_came_from(request) user = DBSession.query(AuthUser). \ filter(AuthUser.auth_id==authenticated_userid(request)). \ filter(AuthUser.provider=='local').first() form = ChangePasswordForm(request.POST, user_id=user.id) if request.method == 'POST' and form.validate(): #user = AuthID.get_by_id(authenticated_userid(request)) user.password = form.data['password'] DBSession.merge(user) DBSession.flush() return HTTPFound(location=came_from) return {'title': title, 'form': form, 'action': 'changepass'}