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.

Reply via email to