Hello,
I used this workaround in a similar case:
@auth.requires_login()
@request.restful()
def myapi():
def GET():
response.view = 'generic.json'
myreg = db(db.mytable.created_by==auth.user.id).select() # Maybe in
your case mytable.user_id==auth.user.id
if myreg:
return dict(myreg=myreg)
else:
data ='{"Result" : "Still empty"}'
return data
return dict(GET=GET)
El sábado, 23 de mayo de 2020, 10:17:44 (UTC+2), Alexei Vinidiktov escribió:
>
> Hello,
>
> How can I restrict access via RestAPI for the user such that they can only
> get their own records (those that have the field user_id matching their
> user id)?
>
> For example, I have a a table named 'collections' that has a 'user_id'
> field, and I want my users to get only the collections that they created.
>
> If they try to get someone else's collection, then they should get a 'not
> authorized' response.
>
> As an extension, I would also like to allow for users to be able to get
> someone else's collection if its status is equal to 'PUBLIC'.
>
> Here's the definition of my collections table:
>
> db.define_table('collections',
> Field('user_id', db.auth_user, notnull=True),
> Field('language_code', length="3", requires=IS_IN_DB(db, 'language.code',
> db.language._format), notnull=True),
> Field('title', length=512, notnull=True),
> Field('description', 'text', notnull=False),
> Field('privacy', length=50, requires=IS_IN_SET(privacy_set), notnull=True,
> default='PRIVATE'),
> Field('level',length=10, requires=IS_IN_SET(level_set), notnull=True,
> default='NONE'))
>
> Thanks,
>
> --
> Alexei
>
--
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/a01f1311-adfe-4b95-9200-14afe29c9e5b%40googlegroups.com.