Hi!
I wonder if shared table are entirely copied (synced) to the userโs device when I apply a security filter to a table that references a shared table. Or if only the referenced rows of the shared table are synced.
My clients subscribe to frequently receive articles. Many clients can subscribe to the same type of articles, so the table Article is shared. I have a table Assignment that match clients to articles they subscribed for. That table Assignment references the table Article. I donโt want a client to see all my articles, ideally they only sees the articles they subscribed for. This is why I plan to use a security filter on the table Assignment. So I wonder if the table Article will be sync to the clientโdevice since it has no UserEmail column?
(the table Article itself reference a table Material since an article has a list of material. The table Material is also Shared. So My question worth for that table too)
thank you in advance
It depends what kind of security filter are you using with the Article table. Would you please copy & paste that formula?
Hi Aleksi,
I meant filter like [UserEmail] = USEREMAIL() but steve recommanded me to add security filters with IN() expressions on my shared table to achieve my goal on having that shared tables filtered
Yes Steveโs assumption seems to be correct.
Without a security filter, all rows of the table are coped to the userโs device. With a security filter, only those rows matching the filter are coped to the userโs device. References between tables have no effect at all on whether rows are copiedโunless the security filter explicitly considers references. Even then, the security filter can only affect rows of its own table.
Youโll need to use a security filter on each table with rows you want to withhold.
In your case, youโll want a security filter on Assignment that filters by user:
(USEREMAIL() = [UserEmail])
Then a security filter on Article that filters by the articleโs presence in the filtered Assignment table; e.g.:
IN([Article ID], Assignment[Article ID])
And then for Material; e.g.:
IN([Article ID], Article[Article ID])
Hi Steve,
If I understand well your post, the good news is my need is realizable with Appsheet
I will read the doc about IN() expressions and how they affect security filters.
Thank you so much
User | Count |
---|---|
40 | |
34 | |
29 | |
23 | |
17 |