# Can't Make Array a 'Row Owner'

**URL:** <https://community.glideapps.com/t/cant-make-array-a-row-owner/52671>\
**Category:** Ask for Help\
**Created:** [October 26, 2022, 11:37pm UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671 "2022-10-26T23:37:09Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Justin\_V](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/justin_v/32/45858_2.png) [@Justin\_V](https://community.glideapps.com/u/Justin_V)\
**Post date:** [October 26, 2022, 11:37pm UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671/1 "2022-10-26T23:37:09Z")

</div>

Hey all,

I’m trying to follow the instructions in [this guide](https://www.glideapps.com/docs/reference/security-and-user-data/row-owners) (see example 3) and [this guide](https://www.glideapps.com/docs/reference/security-and-user-data/roles#row-owners-and-roles) that show how to protect row contents by making an Array column for row-owners.

**Basically what I’m trying to achieve is this:**

- The signed in user can access this row’s data
- So can anyone with the role ‘Admin’

So I’m building an array column that has the users email address and ‘Admin’ in an array. But for some odd reason, I can’t select ‘Make Row Owner’ on that column.

 ![Screen Shot 2022-10-26 at 4.31.24 PM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/3/1/314e5dc71f3a0f572bba82938ce493320c03db4f.png)

To pre-emptively answer this question, no, it’s not a user-specific column (I’ve checked). Is there anything I’m missing here? Following this guide isn’t working:

> **[Row Owners | Glide Docs](https://www.glideapps.com/docs/essentials/security-and-user-data/row-owners)**
>
> A secure way to restrict access to certain rows.

Thanks in advance!

---

<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:** [October 26, 2022, 11:48pm UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671/2 "2022-10-26T23:48:37Z")

</div>

I think what might not be clear in those guides is that the columns have to be structured with sequential numbering in a Google Sheet. It’s a very specific method.

There is a reason that you can’t assign row owners to a column the way you are trying to do it. In glide, any computed column is actually computed on the end user’s device. What that means in respect to row owners is that your row owners would not be able to be verified until AFTER all data is sent to the user’s device, where the array is then computed, and then row owners can be checked. Obviously, if you have already sent all data to the device, then row owner security is not really applicable since it’s too late and security has been compromised.

The only type of array that can have row owners applied is one that is build using the sequential numbering method. This is a bit of a hack method, and the array is actually computed server side instead of client side. For that reason, you can apply row owners to that type of array.

I think a better way in your case would be to just apply row owners to two separate single value columns. Then you don’t have to mess with making an array, and it will work as expected.

---

<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:** [October 26, 2022, 11:51pm UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671/3 "2022-10-26T23:51:00Z")

</div>

I should also mention that an array created from sequential numbering in a google sheet may work in airtable and excel as well. I haven’t tried it though to say for sure.

---

<div class="post-metadata">

**Author:** ![Justin\_V](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/justin_v/32/45858_2.png) [@Justin\_V](https://community.glideapps.com/u/Justin_V)\
**Post date:** [October 26, 2022, 11:52pm UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671/4 "2022-10-26T23:52:59Z")

</div>

This makes 100% complete sense, thanks for explaining that!

I really, really wish the multiple guides on this topic mentioned that - since that’s a big limitation that I couldn’t have possible figured out myself.

For your solution, is there a great way to make default-values in Glide? For example in airtable I can have plain-text columns have a default value such as ‘Admin’. But I have a few tables in Glide that are being fed data from an API from stripe, so I’d love to make those new rows have the default row owners be the users email + “admin”.

Thanks so much again! I’ve been trying to figure this out for hours. 🤦‍♂️ Should’ve posted here first.

---

<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:** [October 26, 2022, 11:57pm UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671/5 "2022-10-26T23:57:29Z")

</div>

Are you able to see this post?

> [@Row owners and roles in the same time?](https://community.glideapps.com/t/row-owners-and-roles-in-the-same-time/45691):
>
> Hi guys, Can I have roles and row owners in the same time ? For example I would like to have all the users have their email address as row owners so the data is secured and also to have an admin that can manage all the users. If it would be possible, how could I add the admin automatically to every new user ? Another option would be to have 2 columns with row owners … one with the email for the user and another one with the admin/admins emails … but how can I add automatically those emails …

---

<div class="post-metadata">

**Author:** ![Justin\_V](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/justin_v/32/45858_2.png) [@Justin\_V](https://community.glideapps.com/u/Justin_V)\
**Post date:** [October 27, 2022, 12:03am UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671/6 "2022-10-27T00:03:28Z")

</div>

Yes! I saw that post, but admittedly it’s still not clear for me on the Stripe API → Pushing details into a new row (let’s say in a Stripe glide table). Ideally there would be a column where every new entry just had the text “Admin”.

I guess I could use something like Zapier in-between to add that, but would love if I could do this natively in Glide. Having a welcome screen with hidden values won’t work in this scenario, as there will be multiple purchases made that aren’t tied to a user logging in.

---

<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:** [October 27, 2022, 12:04am UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671/7 "2022-10-27T00:04:07Z")

</div>

Basically you just need two columns. One to hold the user’s email, and one to hold the Admin role value. Both columns can be row owner columns.

I’m not sure if you need an admin row owner in the user profile. If so, you would probably need an onboarding process where the user performs an action that. That action would write ‘Admin’ to the admin row owner column.

For any other table, you just need to set the value when adding a row. There are several ways to achieve that, but one way would be to have a template column in the user profile table that is simply filled with the word ‘Admin’. This column is just to hold the text and wouldn’t serve any other process. Then when adding a row, you can pull that ‘Admin’ value from the user profile and write it to any other table when adding a row. You would write it to a column that is the Admin Row Owner column.

---

<div class="post-metadata">

**Author:** ![Justin\_V](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/justin_v/32/45858_2.png) [@Justin\_V](https://community.glideapps.com/u/Justin_V)\
**Post date:** [October 27, 2022, 12:11am UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671/8 "2022-10-27T00:11:58Z")

</div>

Gotcha.

How would that work with data being pulled into a glide sheet from an API? So for example each time someone makes a purchase through Stripe, it feeds into a Glide sheet into a new row. But most of these purchases aren’t tied to a user in my tables.

So when it comes in, it wouldn’t have any relation to a user… so it wouldn’t have anything to pull-in from that template column. So the purchases made that are connected to users’ emails would be hidden, but the rest wouldn’t.

I think the answer to my question is to just hard-code it into the API request, which is easy enough. But good to know on the limitations and workarounds needed to make this all work.

Thanks again for your help!

---

<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:** [October 27, 2022, 12:20am UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671/9 "2022-10-27T00:20:18Z")

</div>

Ah, I didn’t know that was the case. I thought you were creating the rows in glide.

So, yeah, I’m not sure how you have it set up to feed stripe data into glide, but I think you have the right idea to just make it part of the API request. Fill one column with the email address, and fill another column with the word ‘Admin’. Then you should be good to go.

---

<div class="post-metadata">

**Author:** ![Justin\_V](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/justin_v/32/45858_2.png) [@Justin\_V](https://community.glideapps.com/u/Justin_V)\
**Post date:** [October 27, 2022, 12:23am UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671/10 "2022-10-27T00:23:47Z")

</div>

Awesome - thanks Jeff! 🙏

Glide team - **please** clear this up in the guides if possible. I was pounding my head against my desk trying to figure out what I was doing wrong here.

---

<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:** [October 27, 2022, 12:37am UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671/11 "2022-10-27T00:37:28Z")

</div>

@JackVaughan may need to clarify that in the docs that array columns derived from sequentially numbering columns can only happen in external databases.

---

<div class="post-metadata">

**Author:** ![JackVaughan](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jackvaughan/32/49023_2.png) [@JackVaughan](https://community.glideapps.com/u/JackVaughan)\
**Post date:** [October 27, 2022, 9:20am UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671/12 "2022-10-27T09:20:06Z")

</div>

Completely agree we need to update this. Sorry for your trouble @Justin_V and thanks as always @Jeff_Hager. I’ll get this one bumped up the priority list.

---

<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:** [October 28, 2022, 9:20am UTC](https://community.glideapps.com/t/cant-make-array-a-row-owner/52671/13 "2022-10-28T09:20:13Z")

</div>

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