Record Owners and user permissions

Ok, retailing tadabase again, and I love it. Where I’m getting a but stuck and I can’t seem to find any documentation on is how to make records only visible to that owner. For example, if I have 20 clients, and there is data from a data source that contains all data for those 20 clients. I assume I wouldn’t create 20 roles, right? I would some how need to connect users to a value inside the data source? Appreciate any help :slight_smile:

Hey @BrianJersey

Welcome back to Tadabase, we’re happy you’re here!

First of all, I think it’s important to define what a “client” is. There’s a few different ways to approach this, they’re actually fairly similar but the method you use is dependent on the following:

  1. A client is a User. Choosing this method means that all clients are stored in the default Users table as individual user records. This method relies on taking advantage of filtering and configuring everything in the Page Builder by “connected to the logged in user”. These options are displayed to you as you add components to a page, when filtering records, inside rules, etc.

  2. A client and a user are separate entities, but connected. Choosing this method means that you add a connection field in the Users table that connects to a Client record in a Client data table. With this option, you’ll still have access to specific filters, such as “only show clients that are connected to the logged in users client”. This option is typically seen inside of the Data Source → Filters tab of the component edit screen.

Whichever method you choose, you’ll want to ensure that all related data tables (client notes, client projects, etc.) have either a connection to the Users table, a connection to Clients, or both.

Here’s 2 videos that you may find helpful, although not specific to your use case, they contain helpful best practices and techniques.

Thanks Tim… I’m not sure if you saw my reply, just noticing that it didn’t link in this thread. I’ve recorded a screen recording being a bit more specific in my attempt to follow your videos.

Further reading your reply, I don’t seem to be able to see the option connected to logged in user. In the page builder, the nearest option I can see is a specific logged in user roles, in which I need to select a role… implying a role is needed for every client. Which I don’t think is right.

Thanks,

Hi @BrianJersey,

I hope I understand correctly. Just to let you know: Multi-tenancy was an eye-opener for me.
So, I have built an extra table in my application: Tenants. In your case, you can use clients (in my case, the tenant is a country organisation within the same parent company).
In all other tables, you also make a link to this tenant.

In the user table, you connect to the tenant your user belongs to. And then you can use this field to only show the information which is connected to this tenant.

In all other data tables. you must also connect the records to a tenant, usually the tenant to which the logged-in user belongs.

This you will do by adding a link in the new record to the tenant, which is the logged-in user field tenant.
An example (to confuse you - some user in my organisation HQ can choose which tenant they want to see, so I have another field which is chosen tenant, next to tenant)

When you show data, for example in a table, you add a filter for the tenant:

So, you see: I don’t have to use user roles for this.

I hope this helps, good luck!

Thanks Peter, you gave me more to think about and play around with. Ideally, the situation is at the moment, I have 4 tables (not including your suggestion for tenants)

The 4 tables are, Errors, Flows, Companies and Users. Every error connects into a flow, and each flow connects to a company (companies can have multiple flows), and lastly a company connects into a user (there could be multiple users that below to the same company.