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.

Reply via email to