Hi Jim Sorry but dont understand your suggestion. You mean auth.requires_login() on my restful function like this @auth.requires_login() ????? @request.restful() def uploadInvoice(): Does it make sense? Its going to be called by external script. Inside my uploadInvoice i have user = auth.login_bare("myuser", "pwd") and i can check that it returns the myuser ID. so before inserting a record it should know who the user is.
I also have this code that i suspect that could get auth.signature in trouble. Please comment . db.entities._after_update.append(lambda s, f: wfFields().update_readers(db, 'entities', s, f)) db.entities._after_update.append(lambda s, f: wfFields().update_authors(db, 'entities', s, f)) db.entities._after_update.append(lambda s, f: extrafields_sync(s, f)) db.entities._after_insert.append(lambda f, id: extrafields_sync(db( db.entities.id==id), f)) Em seg., 15 de fev. de 2021 às 15:33, Jim S <ato.st...@gmail.com> escreveu: > Have you tried with an auth decorator? Maybe auth.requires_login()? > > -Jim > > On Saturday, February 13, 2021 at 3:33:01 PM UTC-6 Ramos wrote: > >> Anybody here? >> >> Em sex., 12 de fev. de 2021 às 23:57, António Ramos <ramst...@gmail.com> >> escreveu: >> >>> hello this is my model >>> db.define_table( >>> 'entities', >>> Field('uuid', length=64, default=lambda: str(uuid.uuid4())), >>> Field('entity', 'string',length=70,required=True, label=T("Entity" >>> )), >>> Field('description', length=100,label=T("Description"), default=""), >>> Field('status', db.status), >>> Field('type', 'reference dbentities', label=T("Type")), >>> Field('sub_type', "reference subtypes", label=T("Type")), >>> Field('event','string',length=10), >>> Field('trailevent', 'list:integer'), >>> Field("last_error", default=""), >>> Field('extrareaders', 'list:reference auth_user'), >>> Field('extrafield', db.extrafields, requires=IS_EMPTY_OR( >>> IS_IN_DB(db, 'extrafields.id', '%(extrafield)s'))), >>> Field('relatedto', 'reference entities', requires=IS_EMPTY_OR( >>> IS_IN_DB(db, 'entities.id', '%(entity)s'))), >>> Field('file', 'upload', label="Ficheiro"), >>> Field('valstart', 'date', label="Válido de", >>> default=datetime.datetime.utcnow()), >>> Field('valend', 'date', label="Válido até", >>> default=datetime.datetime.utcnow()), >>> Field('orderedat', 'float'), >>> Field('question','string'), >>> Field('qt','double'), >>> Field('units','string',length=5), >>> Field('readers', 'list:string', default=[""]),#friend uuid >>> Field('details','json'), >>> auth.signature, >>> format='%(type)s %(entity)s', >>> ) >>> >>> >>> I have auth.signature but this code >>> >>> @request.restful() >>> def uploadInvoice(): >>> import random >>> import string >>> response.view = 'generic.json' >>> >>> def POST(*args, **kw): >>> try: >>> user = auth.login_bare("userxxx", "xxxx") # so it has a user >>> uploaded_file = kw['file'] >>> filename = >>> db.entities.file.store(uploaded_file, uploaded_file.filename) >>> id = db.entities.insert( >>> entity="Invoice", >>> type=db.dbentities(entity="Invoice")["id"], >>> status=DBTools().setStatus(db,"Draft", "Invoice"), >>> file=filename, >>> created_by=4, # even with this line it saves as None >>> modified_by=4, # even with this line it saves as None >>> description="") >>> if id: >>> eventid = db.events.insert( >>> event="Invoice", relatedto=id, type= >>> "Document added", receipts={},linktodoc=id >>> ) >>> db.entities[id]=dict(event=eventid) >>> return "ok" >>> >>> except Exception as e: >>> raise Exception('Error on line {}{}{}'.format( >>> sys.exc_info()[-1].tb_lineno, str(e), request.vars)) >>> return locals() >>> >>> does not fills the created_by and modified_by field. They have None >>> >>> Any help ??? >>> Regards >>> >>> -- > 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. > To view this discussion on the web visit > https://groups.google.com/d/msgid/web2py/022388a0-7a1a-405a-93e2-86498f18e334n%40googlegroups.com > <https://groups.google.com/d/msgid/web2py/022388a0-7a1a-405a-93e2-86498f18e334n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/CAEM0BxPz3ZwQv%2B7hvWGgm9N-V894Ur8SDEy%3DReC0_cc86ikm2g%40mail.gmail.com.