I may be missing something very basic. I am implementing row owners in my app; the user is able to create a routine they will then add activities to. It is my assumption that all I need to do is implement the row ower functionality and then only data associated with that creator will be visible.
I did the above and now when a user creates a routine they can’t see their own creation or any others.
I am kind of at the end of my rope. I am tried linking on email and unique id and I am getting the same outcome. Please let me know if you know what I am doing wrong.
Can you show some screenshots of how you’ve got things setup?
Are user’s emails being added to the rows that they are adding AND is that row set as the Row Owner column? If that is in place, then the user whose email is in the Row Owner column should have access to the data in that row (and any other where their email is in the Row Owner column).
User ID’s can’t be set as a row owner. Row Owners only work with emails. It needs to match the email used to sign in with the email that’s on the row. (This works with anonymous emails too)
Well, my first question is this. Are you trying to use Row Owners for data security, or as a way to filter data without actually using a filter? What are your priorities as far as your use of Row Owners?
Dealing with a user changing their email is a whole different obstacle. There is a lot of underlying data only within glide that will link a lot of stuff together, so changing an email may not be that simple if you are using anonymous emails or user specific columns, chat, or some other functionality. I completely agree with using IDs to link data together, but row owners needs an email. It all depends on what your intentions are to use row owners, and how sensitive any of the data is.
My goal is to protect user data from all other users. Each user will have an opportunity to create many different rows in at least 3 different tables so each of those rows should only be viewable by the user who created them.
Which is what I assumed the premise of row owners is.
Yes, that is the intention of Row Owners. In that case, you will need to include the email of the user when they create new rows, and then apply Row Owners to that email column.
Yeah, I don’t think there is a perfect way to deal with that. I think everything with Glide is very ingrained into an email address. If a user changed their email, you would probably have to do a Find/Replace and manually switch all rows of data to the new email address. Then there are things like user specific column values, favorites, and probably some other minor things that would be lost, since they are managed internally within glide and tied to an email address. Things like that can’t be easily switched to a new email.
I wonder if you could use an array to manage email changes. That is, add a new email, but capture it in a 2nd Email column, which would create an array that could be the Row Owner. I haven’t done this, just thinking of ways to work around this potential issue.
Thanks very much to both of you!! @Jeff_Hager I got way too much in my head avoided looking at the obvious answers. @kyleheney I will try this idea when I build out my password reset page.
An array would work as long as it’s a google sheet array, however, we can now assign multiple columns as row owners, so in effect it would be the same thing. As long as the column belongs to the table and isn’t a computed column, then it can become a Row Owner. The only question is the matter of how to still populate a second column in all existing rows with an updated email. Would probably require some scripting or automation to pull it off.
Excuse me for jumping in here, but this one triggered my spidey sense…
Are you planning on managing passwords in Glide, and/or implementing your own authentication mechanism? This is generally not recommended, and in fact is actively discouraged.