Now i have 2 problems. Recap 1 - print auth.user.isempreiteiro # *returns None* record=db(db.auth_user.id==auth.user_id).select()[0] print record['isempreiteiro'] #*returns True "This is the real value"* Why?
2 - my decorated function in controller default works ok when user logged in @auth.requires_login() *#@auth.requires(checkempreiteiro(auth.user_id)==True) * def inserttrab(): form = SQLFORM(db.trabalhador) if form.accepts(request.vars, session): session.flash = 'registo inserido com sucesso' redirect(URL()) return dict(form=form) but gives an error when the user does logout. logging out should redirect to login page but the line *#@auth.requires(checkempreiteiro(auth.user_id)==True) * def inserttrab(): ... give a ticket with the error msg. File "C:\web2pyGit\web2py\gluon\dal.py", line 9170, in __getitem__ row = self.records[i] IndexError: list index out of range When i browse to index page the same error .Why? thank you 2012/12/20 António Ramos <ramstei...@gmail.com> > extra fields are available in my auth.user var but they have "None" > instead of the real value > > so i create an extra function > > > def checkempreiteiro(user): > print auth.user.isempreiteiro # *returns None* > record=db(db.auth_user.id==user).select()[0] > return record['isempreiteiro'] #*returns True* > > > @auth.requires_login() > @auth.requires(checkempreiteiro(auth.user_id)==True) > > > > 2012/12/20 Anthony <abasta...@gmail.com> > >> Note, should be @auth.requires(...). >> >> Anthony >> >> >> On Thursday, December 20, 2012 10:04:26 AM UTC-5, Massimo Di Pierro wrote: >>> >>> @requires(auth.user.F1=='F') >>> def yourfunction(...): .... >>> >>> On Thursday, 20 December 2012 06:40:09 UTC-6, Ramos wrote: >>>> >>>> hello i have a function to be acessed only by users with an extra field >>>> F1 set to "F" >>>> >>>> how to protect this function to not be used bu everyone? >>>> >>>> what is the best way? >>>> >>>> thank you >>>> António >>>> >>> -- >> >> >> >> > > --