I have a controller that presents a form, but I put a constraint that if 
the user is not logged on (checked using auth.is_logged_in()) the entered 
form data should not be inserted but the user should be directed to the 
login form. But to my surprise, if the user is redirected to the logged in 
form and without logging in, returns back to the index page, the data would 
have been inserted into the database which shouldnt be so. What am I doing 
wrong here?

Code snippet

def index():
    form = SQLFORM(db.post)
    if form.accepts(request.vars, session, hideerror=True, 
keepvalues=False):
        if auth.is_logged_in():        
            pass
        else:
            session.flash="You have to be logged on to post stuff!"
            redirect(URL(f="user", args="login"))
    elif form.errors:
        redirect(URL(f="index"))
    rows = db().select(db.post.ALL, orderby=db.post.timestamp)
    return locals()

-- 



Reply via email to