Make Owned Row Shareable

Users in my app can create named lists and add items to that list from the main sheet. Essentially a “save for later” or “Favorites” list.

I created a User Lists table and when the user creates the list,the user’s email address is written to an owner column. That column is set as “make row owner”. Items they add are stored in a relation column that relates to that row.

I’m realizing now that sometimes a user may want to share the list they have created with other users or make it publicly available to all users. I know you can have multiple columns as row owner columns, but that has some limits (e.g. that might work if the user manually adds the email addresses of users, but wouldn’t solve the issue of making it available to all users).

So, I guess I’m trying to think of a way to take a user specific list (or more generally, the information in an “owned row”) and either make it non-user specific or somehow duplicate the list/row information so it can be shared without restriction. Any ideas on how to approach this? It’s not too late to scrap my current approach if there is one that would work better for allowing a user to share their otherwise private list.

If you are doing this inside a Google Sheet, I think you can add a new sheet to store all “invites” and then use formulas to bring the list of invited emails back to the same row. You then split the list horizontally and make those columns row owners. This is a very complex set up though, and can increase the time to sync the data back to the app.

If you are doing this inside a Glide Table, it is still not very straightforward. I think the only way is to create a huge amount of normal columns to hold those emails, then sequentially set the invited emails into those columns. Say if email 1 is not empty, set it to email 2, and so on. Removing the invitation will be tricky, though.

Is it possible to grab the related items from the protected row and send them to a different table in an unprotected row? Or copy the whole row and do the same thing?

This is what I was going to suggest. Whenever they create an item in a shared list, also add it to a new sheet that’s not protected. You’ll only want to include information that anatomize is the user (eg. userID, not email). The only issue you’ll run into is that you’ll need to create a separate relation to public content.

1 Like