# Row Owners Array Help

**URL:** <https://community.glideapps.com/t/row-owners-array-help/63970>\
**Category:** Ask for Help\
**Tags:** security, row-owners\
**Created:** [July 16, 2023, 1:42pm UTC](https://community.glideapps.com/t/row-owners-array-help/63970 "2023-07-16T13:42:31Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![John\_Romano](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/john_romano/32/74316_2.png) [@John\_Romano](https://community.glideapps.com/u/John_Romano)\
**Post date:** [July 16, 2023, 1:42pm UTC](https://community.glideapps.com/t/row-owners-array-help/63970/1 "2023-07-16T13:42:32Z")

</div>

See Video Below, its early so sorry for the fumbling of words a bit but I am sure my point is clear…Thank you!

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [July 16, 2023, 2:07pm UTC](https://community.glideapps.com/t/row-owners-array-help/63970/2 "2023-07-16T14:07:22Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![John\_Romano](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/john_romano/32/74316_2.png) [@John\_Romano](https://community.glideapps.com/u/John_Romano)\
**Post date:** [July 18, 2023, 5:28pm UTC](https://community.glideapps.com/t/row-owners-array-help/63970/3 "2023-07-18T17:28:17Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [July 18, 2023, 5:49pm UTC](https://community.glideapps.com/t/row-owners-array-help/63970/4 "2023-07-18T17:49:49Z")

</div>

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.

1. Use Roles
2. Use a google sheet with sequentially numbered columns to create a server side array
3. Create multiple row owner columns in the table.

---

<div class="post-metadata">

**Author:** ![Cameron\_White](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/cameron_white/32/62842_2.png) [@Cameron\_White](https://community.glideapps.com/u/Cameron_White)\
**Post date:** [August 13, 2023, 3:24am UTC](https://community.glideapps.com/t/row-owners-array-help/63970/5 "2023-08-13T03:24:13Z")

</div>

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 🙂

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [August 13, 2023, 5:42am UTC](https://community.glideapps.com/t/row-owners-array-help/63970/6 "2023-08-13T05:42:50Z")

</div>

What does your arrrayformula look like currently?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [August 13, 2023, 5:51am UTC](https://community.glideapps.com/t/row-owners-array-help/63970/7 "2023-08-13T05:51:30Z")

</div>

> [@Cameron\_White](#):
>
> Using the structure you’ve outlined, how do you then use an ARRAY to auto-add Staff on each row?

You don’t.

> [@Cameron\_White](#):
>
> 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.

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:

```auto
=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.

---

<div class="post-metadata">

**Author:** ![Cameron\_White](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/cameron_white/32/62842_2.png) [@Cameron\_White](https://community.glideapps.com/u/Cameron_White)\
**Post date:** [August 13, 2023, 9:02am UTC](https://community.glideapps.com/t/row-owners-array-help/63970/8 "2023-08-13T09:02:11Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [August 13, 2023, 9:08am UTC](https://community.glideapps.com/t/row-owners-array-help/63970/9 "2023-08-13T09:08:50Z")

</div>

If you want the first Owner column to contain the signed in users email address, use the special User Profile value:

 ![CleanShot 2023-08-13 at 17.06.22@2x](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/a/e/aed8aa958b697fc47d00def076a174433b4aab6e.png)

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.

---

<div class="post-metadata">

**Author:** ![Cameron\_White](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/cameron_white/32/62842_2.png) [@Cameron\_White](https://community.glideapps.com/u/Cameron_White)\
**Post date:** [August 13, 2023, 9:30am UTC](https://community.glideapps.com/t/row-owners-array-help/63970/10 "2023-08-13T09:30:09Z")

</div>

Awesome thanks that works 🙂

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/system/32/53398_2.png) [@system](https://community.glideapps.com/u/system)\
**Post date:** [August 20, 2023, 9:30am UTC](https://community.glideapps.com/t/row-owners-array-help/63970/11 "2023-08-20T09:30:44Z")

</div>

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
