# Visibility conditions tabs only based on user profile info?

**URL:** <https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650>\
**Category:** Ask for Help\
**Created:** [January 13, 2023, 8:43am UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650 "2023-01-13T08:43:23Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![erwblo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/erwblo/32/75_2.png) [@erwblo](https://community.glideapps.com/u/erwblo)\
**Post date:** [January 13, 2023, 8:43am UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/1 "2023-01-13T08:43:23Z")

</div>

I want a tab to be visible or not based on the data in a column of the corresponding sheet/table.  
But am I right, is that not possible? Is it only possible based on user profile info?  
If so, what is the logic behind that?  
And how to get around it? 😉

---

<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:** [January 13, 2023, 8:48am UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/2 "2023-01-13T08:48:42Z")

</div>

Can you explain your use case a bit more?

---

<div class="post-metadata">

**Author:** ![erwblo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/erwblo/32/75_2.png) [@erwblo](https://community.glideapps.com/u/erwblo)\
**Post date:** [January 13, 2023, 8:55am UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/3 "2023-01-13T08:55:25Z")

</div>

The use case is this:  
I built a site where people ‘lease’ skates. There is a special section called ‘Nordic skates’. People go to section either via a button (with hint component) on the homepage or via the tab in the navigation.  
The owner of the site wants to be able to hide all info about ‘Nordic skates’ with the push of a button on his ‘admin’ page.  
I have that now up and running for the button and the hint on the home page via the setting of a custom value.  
The same thing I would expect to be able to do with the tab.

---

<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:** [January 13, 2023, 8:59am UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/4 "2023-01-13T08:59:19Z")

</div>

Okay, got it.

So all you need to do is import that “custom value” into your User Profiles table, and then you can use it to drive the tab visibility.

How you get it there depends. If it’s the first row in a table somewhere, then a single value column would do the trick.

---

<div class="post-metadata">

**Author:** ![erwblo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/erwblo/32/75_2.png) [@erwblo](https://community.glideapps.com/u/erwblo)\
**Post date:** [January 13, 2023, 9:02am UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/5 "2023-01-13T09:02:20Z")

</div>

The only thing is people can visit the site and look around without login in. So it shouldn’t be there for not logged in users either.

---

<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:** [January 13, 2023, 9:11am UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/6 "2023-01-13T09:11:40Z")

</div>

Okay, so I guess the other option would be to just hide it from the menu.

 ![Screen Shot 2023-01-13 at 5.08.38 PM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/b/d/bdddd10f63d18efca7cbe1e0bd7bc4a30eb49e8f.png)

But, just taking a step back, maybe a better approach would be to have a “Nordic Skates” section on your tab that lists all skates, and then just hide or show that section. As opposed to having a whole tab for Nordic Skates.

---

<div class="post-metadata">

**Author:** ![erwblo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/erwblo/32/75_2.png) [@erwblo](https://community.glideapps.com/u/erwblo)\
**Post date:** [January 13, 2023, 9:20am UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/7 "2023-01-13T09:20:39Z")

</div>

There are three types of products:

- Lease skate (a subscription on skates, you pay automatically per month).
- Rent skates for specific school holidays (pick a week and pay for that week).
- Rent Nordic skates and pick your own period (startdate / enddate) and pay for that period.

Maybe I could do everything in one table, but to me that feels more complex and too many columns. For me it feels better to split the different types of renting.

And something else: do you have an idea why tabs are only related to user profiles where components / containers, etcetera don’t have to be?

---

<div class="post-metadata">

**Author:** ![erwblo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/erwblo/32/75_2.png) [@erwblo](https://community.glideapps.com/u/erwblo)\
**Post date:** [January 13, 2023, 9:21am UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/8 "2023-01-13T09:21:46Z")

</div>

And I don’t want the client to go in the admin section, but when necessary I can hide it myself, thanks!

---

<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:** [January 13, 2023, 10:05am UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/9 "2023-01-13T10:05:31Z")

</div>

> [@erwblo](#):
>
> And something else: do you have an idea why tabs are only related to user profiles where components / containers, etcetera don’t have to be?

No, I don’t. I’ve never really thought about it.

---

<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:** [January 13, 2023, 1:06pm UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/10 "2023-01-13T13:06:49Z")

</div>

> [@erwblo](#):
>
> And something else: do you have an idea why tabs are only related to user profiles where components / containers, etcetera don’t have to be?

I would guess it’s because a user profile row will always be one specific row, tied to a specific user, that is globally accessible, whereas the source table for a tab could be multiple rows with filters or row owners. If that’s an option, then which row would be the source of truth for the tab visibility conditions? Would it be the first row, the last row, or any row in between? Would you respect any filter or row ownership applied to the tab when determining tab visibility, or always ignore them. I don’t think it’s as straight forward as using the user profile.

Back before user profiles were added, I seem to recall that there was discussion about having a global table for things like this, and to store globally accessible values. When user profiles came out, they were a pretty decent compromise. I’ve thought to push for a global (non user) table, but could never think of a valid reason to have one. Most scenarios can be worked around one way or another. However, this seems like a good use case. I’d rather see a generic global table that can be used globally, just like the user profile, but available “in addition to” the user profile for cases where a user is not signed in. If that’s not reasonable, then maybe it would be useful to have a way to create a special user profile row that is for non-signed in users.

---

<div class="post-metadata">

**Author:** ![erwblo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/erwblo/32/75_2.png) [@erwblo](https://community.glideapps.com/u/erwblo)\
**Post date:** [January 13, 2023, 1:10pm UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/11 "2023-01-13T13:10:47Z")

</div>

Yeah, valid points!

---

<div class="post-metadata">

**Author:** ![slscustom.ru](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/slscustom.ru/32/77336_2.png) [@slscustom.ru](https://community.glideapps.com/u/slscustom.ru)\
**Post date:** [January 13, 2023, 1:37pm UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/12 "2023-01-13T13:37:57Z")

</div>

Hi!  
For using case, where you need to deal with non login users( but login is a option)  
usual i creating separate table with single row and all user-specific columns.  
All another tables can write to it by adding single value column. to whole row (table with single row U-S)  
And all tables can access to data throw common single value to this table  
So you can have user row for not logging users and use it for visibility anywhere.

---

<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:** [January 13, 2023, 1:41pm UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/13 "2023-01-13T13:41:36Z")

</div>

Yeah, that’s one of the workarounds that I have used. Only problem is that it will work for for anything EXCEPT Tab Visibility.

---

<div class="post-metadata">

**Author:** ![slscustom.ru](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/slscustom.ru/32/77336_2.png) [@slscustom.ru](https://community.glideapps.com/u/slscustom.ru)\
**Post date:** [January 13, 2023, 1:45pm UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/14 "2023-01-13T13:45:46Z")

</div>

Oh, yes, sorry, I really forgot it!

---

<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:** [January 13, 2023, 2:47pm UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/15 "2023-01-13T14:47:18Z")

</div>

> [@Jeff\_Hager](#):
>
> I’ve thought to push for a global (non user) table, but could never think of a valid reason to have one. Most scenarios can be worked around one way or another. However, this seems like a good use case.

There was a brief discussion about this other day in the experts slack group, which you might have missed. A good use case for a “Global” table I think is with Public Users. Yes, there are ways to work around it, but it’s more mucking around than it otherwise could be.

---

<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:** [January 13, 2023, 3:16pm UTC](https://community.glideapps.com/t/visibility-conditions-tabs-only-based-on-user-profile-info/56650/16 "2023-01-13T15:16:30Z")

</div>

Yeah I might have glazed over that or missed it. I’ll check it out.
