See Video Below, its early so sorry for the fumbling of words a bit but I am sure my point is clear…Thank you!
First and most important thing to understand: Row Owners can only be applied to non-computed columns.
So - all the ideas you have about row owners filtering through relations to other tables. Forget about it. It won’t happen.
This also means that you can’t create an array column in a Glide Table and make it a row owner. Because array columns in Glide Tables are computed columns, and computed columns cannot be row owners. The array method is only available if you’re using Google Sheets.
Essentially, you need row owner columns in every table where you want the data restricted. For your case, I’d recommend something like the following:
- Firstly, make sure you have a Role column configured in your User Profile setup.
- For your internal users, give each of them a Role (lets say “Staff” for the sake of example), and write that into the Role column (ie. the word Staff)
- Now in every other table where you want to restrict access to data, create two “Owner” columns.
– The first one should have the email address of the client. That will give the client access to only their own rows
– The second one should have the word Staff (or whatever you use for the role name) in every row. This will give all users with that role (ie. your staff) access to every row.
do you think i can have two email addressess seperated by something in the cell and it make ti the row owner? Or what about if I have mulitple roles? can i have multiple roles for the staff in one cell seperated by soemthing s that multiple role levels have access?
No. Row Owners looks for exact matches to a user’s email or role. Putting multiple values in one column is going to make it not match. The ONLY array that will work is one derived server side from a google sheet with sequentially numbered columns. That’s it.
If you need multiple row owners on a row, then you have three options.
- Use Roles
- Use a google sheet with sequentially numbered columns to create a server side array
- Create multiple row owner columns in the table.
Using the structure you’ve outlined, how do you then use an ARRAY to auto-add Staff on each row?
The documentation suggests this but is very unclear. I’ve tried for weeks adding ARRAYFORMULA columns in Google Sheets but can never seem to work out the exact formula. I’d like the same role applied to all in the column.
Any guidance here is greatly appreciated
What does your arrrayformula look like currently?
You don’t.
If you’re using a Google Sheet, you can use an arrayformula to add the same value in every row, but it’s better to do it in Glide where that is an option.
Using an arrayformula, the syntax would be something like:
=ARRAYFORMULA(IF(A2:A="","","Admin"))
But it’s always better to avoid sheet formulas if you can. Assuming that rows are being added via a form, all you need is a hidden text input component with a default value, and you can do away with the arrayformula.
Thanks for the quick response. The text input with the default value is the way to go for sure. However when I do this solely for row owner 2, it stops listing the current user automatically under row 1. Thats cool, so I add two text inputs for owners 1 & 2, then it defaults to the current user for both and overrides the default text input… Any thoughts?
If you want the first Owner column to contain the signed in users email address, use the special User Profile value:
Then use the hidden text input to add the value for the second owner column.
That should work - at least it does when I test it.
If it’s not working for you, please show me some screen shots of how you have it setup.
Awesome thanks that works
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.