Exemple #1
0
    def post(self):
        if self.form.is_valid():
            em_address = self.form.elements.email_address.value
            user_obj = orm_User.reset_password(em_address)
            if user_obj:
                if send_reset_password_email(user_obj):
                    session_user.add_message(
                        'notice',
                        'An email with a link to reset your password has been sent.'
                    )
                else:
                    session_user.add_message(
                        'error',
                        'An error occurred while sending the notification email. Your '
                        'password has not been reset.'
                    )
                url = current_url(root_only=True)
                redirect(url)
            else:
                session_user.add_message(
                    'error',
                    'Did not find a user with email address: %s' % em_address
                )
        elif self.form.is_submitted():
            # form was submitted, but invalid
            self.form.assign_user_errors()

        self.default()
Exemple #2
0
    def post(self):
        if self.form.is_valid():
            user = orm_User.validate(
                self.form.els.login_id.value,
                self.form.els.password.value
            )
            if user:
                if user.inactive:
                    session_user.add_message('error', 'That user is inactive.')
                else:
                    load_session_user(user)
                    log.application('user %s logged in; session id: %s; remote_ip: %s',
                                    user.login_id, rg.session.id, rg.request.remote_addr)
                    session_user.add_message('notice', 'You logged in successfully!')
                    if user.reset_required:
                        url = url_for('auth:ChangePassword')
                    else:
                        url = after_login_url()
                    redirect(url)
            else:
                log.application('user login failed; user login: %s; session id: %s; remote_ip: %s',
                                self.form.elements.login_id.value, rg.session.id,
                                rg.request.remote_addr)
                session_user.add_message('error', 'Login failed!  Please try again.')
        elif self.form.is_submitted():
            # form was submitted, but invalid
            self.form.assign_user_errors()

        self.default()
Exemple #3
0
 def delete_record(self):
     try:
         CommonCrudBase.delete_record(self)
     except IntegrityError:
         session_user.add_message(
             'warning',
             'could not delete, the {0} is in use'.format(self.objname)
         )
         redirect(url_for(self.endpoint, action='manage', session_key=self.session_key))
Exemple #4
0
    def post(self):
        if self.form.is_valid():
            orm_User.get(session_user.id).update_password(self.form.elements.password.value)
            session_user.reset_required = False
            session_user.add_message('notice', 'Your password has been changed successfully.')
            url = after_login_url() if rg.request.url == url_for('auth:ChangePassword') \
                else rg.request.url
            redirect(url)
        elif self.form.is_submitted():
            # form was submitted, but invalid
            self.form.assign_user_errors()

        self.default()
Exemple #5
0
def send_to_index(sender, endpoint, urlargs):
    """
    simulating hijacking the request and forcing it to go to another view.
    This minicks what you would want to do if a user need to change a password,
    was locked out, or any number of things that might cause you to want to
    send them to a different location than the one they are requesting.
    """
    if 'request-hijack/forward' in rg.request.url:
        # we have to have a flag that says we have already forwarded, otherwise
        # we will get a forward loop since the request isn't modified
        # when we forward
        if getattr(rg, 'newlayout_events_send_to_index', None):
            return
        rg.newlayout_events_send_to_index = True
        forward('Index', tname='index')
    elif 'request-hijack/redirect' in rg.request.url:
        redirect('index/index')
Exemple #6
0
def send_to_index(sender, endpoint, urlargs):
    """
    simulating hijacking the request and forcing it to go to another view.
    This minicks what you would want to do if a user need to change a password,
    was locked out, or any number of things that might cause you to want to
    send them to a different location than the one they are requesting.
    """
    if 'request-hijack/forward' in rg.request.url:
        # we have to have a flag that says we have already forwarded, otherwise
        # we will get a forward loop since the request isn't modified
        # when we forward
        if getattr(rg, 'newlayout_events_send_to_index', None):
            return
        rg.newlayout_events_send_to_index = True
        forward('Index', tname='index')
    elif 'request-hijack/redirect' in rg.request.url:
        redirect('/index/index')
Exemple #7
0
    def post(self, login_id, key):
        if self.form.is_valid():
            self.user.update_password(self.form.elements.password.value)
            session_user.add_message('notice', 'Your password has been reset successfully.')

            # at this point, the user has been verified, and we can setup the user
            # session and kill the reset
            load_session_user(self.user)
            self.user.kill_reset_key()

            # redirect as if this was a login
            url = after_login_url()
            redirect(url)
        elif self.form.is_submitted():
            # form was submitted, but invalid
            self.form.assign_user_errors()
        self.assign_form()
        self.render_template()
Exemple #8
0
 def default(self, sendby=None):
     if sendby == 'forward':
         forward('AppLevelView')
         assert False
     if sendby == 'redirect':
         redirect('/applevelview/foo')
         assert False
     if sendby == 'rdp':
         redirect('/applevelview/foo', permanent=True)
     if sendby == '303':
         redirect('/applevelview/foo', code=303)
     return 'news index'
Exemple #9
0
 def default(self):
     redirect('some/other/page', permanent=True)
Exemple #10
0
 def default(self):
     redirect('some/other/page')
Exemple #11
0
 def form_when_completed(self):
     redirect(url_for(
         self.endpoint,
         action='manage',
         session_key=self.session_key
     ))
Exemple #12
0
    def default(self):
        rg.session.invalidate()

        url = url_for('auth:Login')
        redirect(url)
Exemple #13
0
 def default(self):
     redirect('/some/other/page', permanent=True)
Exemple #14
0
 def abort(self, msg='invalid reset request'):
     session_user.add_message('error', '%s, use the form below to resend reset link' % msg)
     url = url_for('auth:LostPassword')
     redirect(url)
Exemple #15
0
 def default(self):
     redirect('/some/other/page', code=303)
Exemple #16
0
 def default(self):
     redirect('some/other/page', code=303)
Exemple #17
0
 def form_on_cancel(self):
     session_user.add_message('notice', 'no changes made to your profile')
     redirect(current_url(root_only=True))
Exemple #18
0
 def default(self):
     redirect('/some/other/page')