Il giorno giovedì 20 aprile 2017 16:31:31 UTC+2, Andrea Fae' ha scritto: > > Hello, if I have to get the list from database, where I need to put the > code? At the start of default.py where I use the functions? Thanks > > Il giorno mercoledì 19 aprile 2017 17:30:06 UTC+2, Anthony ha scritto: >> >> First, when using auth.requires(), it is best to put the test inside a >> lambda (or standard function) so it will not be evaluated until the >> decorated function is actually called (otherwise, the test will be >> evaluated whenever the controller file is accessed). >> >> Anyway, you can do something like this: >> >> list_of_roles = ['role1', 'role2', 'role3'] # You could get this list >> via a database query >> >> @auth.requires(lambda: any(auth.has_membership(role) for role in >> list_of_roles)) >> def myfunc(): >> ... >> >> Anthony >> >> On Wednesday, April 19, 2017 at 8:14:53 AM UTC-4, Andrea Fae' wrote: >>> >>> For example I have this type of functions: >>> >>> # sono autorizzati i vari manager a seconda della sede >>> @auth.requires(auth.has_membership('Total-manager') | >>> auth.has_membership('Conegliano-studente') | >>> auth.has_membership('Pordenone-manager') | >>> auth.has_membership('Pordenone-studente') | >>> auth.has_membership('Udine-studente')) >>> def appuntamenti_studente(): >>> # recupero lo studente selezionato >>> studente = request.args(0) >>> # recupero il gruppo >>> # query per recuperare il nome dello studente >>> query_nome_studente = db.auth_user.id == studente >>> # recupero nome e cognome dello studente >>> row = >>> db(query_nome_studente).select(db.auth_user.first_name,db.auth_user.last_name).first() >>> #seleziono gli eventi dello studente >>> query = (db.evento.studenti.contains(studente)) >>> eventi_stud = db(query).select() >>> # imposto la grid per far vedere gli eventi dello studente >>> exportcls = dict(csv_with_hidden_cols=False, html=False, json=False, >>> tsv_with_hidden_cols=False, tsv=False) >>> # solo se lo studente corrisponde a chi si è loggato >>> if (str(auth.user.id) == studente): >>> #print 'sono al form normale' >>> form = SQLFORM.grid(query, args=[studente], >>> fields=[db.evento.titolo, >>> db.evento.inizio,db.evento.fine,db.evento.risorsa, >>> db.evento.materia,db.evento.docente],create=False, details=False, >>> editable=False, deletable=False, maxtextlength=60, exportclasses = >>> exportcls) >>> else: >>> redirect(URL('default','index')) >>> return locals() >>> >>> I'm testing different "fixed" values in the @auth.requires, but they can >>> be more or less depending on how many roles are in the db. I'd like to do >>> this dynamically from the db, extracting and compising this @auth.requires >>> line in dynamic way. Is it possible? Do you have any examples? Thank you >>> >>
-- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.