User profiles as admin and homepage for row owners

I am trying to create users page visible to admin and row owners page visible to all row owners. Is it possible without creating an alternate tab withImportrange? If yes, please share.

Thanks for your help!

So you want an admin to view all users, but the users can only see their own row?

Exactly. I have made the users tab visible to admin only. But row ownership restricts it to my profile. If I remove it, onboarding becomes an issue as I see my email in user’s profile setup screen.

Do you plan to have multiple admins or just one?

1 Like

One is required. More is better.

The general solution should be having an inline list that filters email is signed-in user or type is admin.

Another way is to have an email 1 column to store the user email, and email 2 column to store the admin email. Then set row owner on the generated array column. But it would work only when you have 1 admin.

1 Like

Tried the first approach doesn’t work with on boarding.

Regarding second approach, may work but not the best solution. Let me try that. If something else comes to your mind please let me know.

Can you explain more about why it doesn’t work?

1 Like

It shows my email when user logs in for the first time instead of the e-mail he signed in with as it is reading the first row. I restricted the visibility to e-mail-> signed in user.

I assume you’re pointing the tab to Profiles sheet right? Go to the Features of that tab, filter email is signed-in user so users can only see their info.

Let it be the “Your Profile” tab, where users can see their own information and edit it.

Make another tab named “Users”, set tab visibility to type is Admin, no filter is needed there.

Remove the row owner in your settings for the Profiles, then it should work for both types.

That’s what I tried but is not working. May be I am making a mistake somewhere. Will try again tomorrow.

Send me some screenshots if you need help!

1 Like

Thanks let me try again. If it doesn’t work. Will send you pics. Thanks @ThinhDinh

1 Like

You were right. I created 4 on boarding screens. Visiblity was issue in 1st not the other three so glide was not overwriting data. Should work now.

1 Like

Nice to hear!

1 Like

I am trying to do this exact thing but within a Glide sheet - is there a way? I tried using the method below but I’m unable to select the Split Text column (or the Template Column) as a row owner.

If there’s no workaround to this I will wait patiently for the below to happen :slight_smile:

No. There is no way to create array columns like this in a Glide table, and currently computed columns can’t be used for row owners. Only basic columns in a glide table or Google sheet can be used.

Computed columns, like Split Text are computed on the user’s device after all data has been cached on the device. At that point, any security is moot as the user already has access to all data that would otherwise be protected and not synced through Row Owners on a basic column.

2 Likes

Ahh, that explains some stuff, thank you. So in this use case I have queued up:

Glide’s kluged “array” from the Google sheet counts as a basic column? This has me assuming their future Glide arrays will be selectable as row owners :thinking:

2 Likes

Correct. The “kludge” array column is similar in a lot of functionality to a Lookup column on a multiple relation or to a Split Text column, but the main difference is that an array column is synced to the user’s device much like any other basic column value. Computed column values, like Lookups or Split Text are not not synced to the user’s device and are later computed once the data is on the user device. Yes, if they do build arrays into glide tables, I would hope it works like the Google sheet way because the array values would hopefully be determined at the server level and not the client level, like all other computed columns.

2 Likes

Thank you Jeff! I like learning this under-the-hood data flow stuff - this makes sense for security, which is my current focus. I want to have a list of my app’s users accessible to me through an admin tab with a boolean that shuts off access to a user if they are found to be misusing the app’s directory - a highly unlikely occurrence but a safety net to calm my nerves - I just set this up manually through the data editor but in the future I’d love to have it in-app :raised_hands:t2:

(From all I’ve read here I am guessing a savvy banned-user could easily breach my dinky tab-visibility-based ban using browser tools, but considering my user base is not technically inclined I should be safe…:eyes:)

2 Likes