[Public Gallery View] cover image is not accessible if hidden
Describe the problem
Imagine the following scenario:
- User
a
has a gallery view which they share with userb
- User
a
has selected a cover image for their gallery view - User
a
hides the field which is used to display the gallery view - User
a
can still see the cover image - User
b
can not see the cover image anymore
Ideally we would want both User a
and b
to be able to see the cover image, regardless if the underlying field has been hidden or not.
The reason why user b
can't see the cover image anymore, is because it requires access to a field that has been hidden. A hidden field in a private view, is still accessible by the application, while a hidden field in the public view does technically not exist as so far as the application is concerend.
What we tried
To make this work we tried to make an exception for the cover image field to always be accessible by the public gallery view, independent of the underlying field being hidden or not. This exception worked on the surface, but there are many parts in the backend, that rely on the fact that a hidden field is not accessible in a public view. So we might add the exception for the endpoint that fetches fields initially, but then we also have to add the exception to all the realtime updates, for the view and the fields.
This approach is very prone to errors and issues, since we need to verify that all the endpoints and realtime updates still work given that new exception.
Can we improve on what has been tried?
Potentially, one idea would be to be a little more generic and allow for fields which are always visible. So instead of making an exception for just one field now we could already future prove this concept by allowing any view to define what fields they want to be able to share with the public view, regardless of their hidden state.
We might want to brainstorm over even more potential solutions.