Advanced Roles and Permissions

Hello,

I’m working on developing a permissions structure for a customer portal. Our system consists of three tables: Users, Organizations, and Projects.

We need a secure way to ensure that only users assigned to specific projects can access those projects.

Our initial approach was to use the ‘Org ID’ as a role and link each project to an organization.
However, this isn’t feasible because some projects involve multiple organizations. For example, architects from different organizations can work on numerous projects owned by distinct General Contractor organizations.

Any advice?

Can users be assigned to multiple projects at the same time?
What is your Data Source?

Yes, users can be assigned multiple projects at the same time.

Google Sheets for this particular project.
Have similar projects coming up where I’ll be using Glide Tables.

Okay, so my initial thought was you might be able to use the ProjectIDs as a Role. That could work with Google Sheets, but there would be a limit of 9 Roles (Projects) per user.

It wouldn’t work with Glide tables, because it’s impossible to assign more than one role to a user. With Glide Tables, I think your only viable option would be multiple owner columns.

Why the limit of 9 projects?

And I’m trying to think of an outside-the-box sort of approach… There must be something which works in a scaleable way.

It’s a limit that’s imposed by Glide. No more than 9 roles per user.

For an out of the box option, take a look at this post from @ThinhDinh. Very clever workaround for creating a dynamic Owner array, that auto-increases in size as required. But again, only possible with Google Sheets.

With Glide Tables, the only thing you could do is make sure you have enough owner columns predefined. If somebody could suggest a better way, I’d be all ears.

1 Like