Thank you Jim but i found the problem. My fault this time. Thank you again.
PS. Its just me or this forum is abandoned? Should i go elsewhere for help ? Em seg., 15 de fev. de 2021 às 15:46, António Ramos <[email protected]> escreveu: > 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 <[email protected]> > 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 <[email protected]> >>> 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 [email protected]. >> 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/CAEM0BxPk1W%2B-6YL-m44JVaFWG1G1eRr5Tuk2h%3DtVSk5bRyi3kQ%40mail.gmail.com.

