Columns Visibility based on User

Hello Coda Community!

Does anyone know if it’s possible to configure which columns are visible depending on the logged-in user?

Basically, I have a Project Page where anyone on the team can access non-confidential information: project name, client, description, start and due date, etc. However, I would like the project leaders to also see more sensitive information, such as project cash flow, payments, results, etc., without having to navigate through multiple documents.

Hi

The short answer is that if somebody has access to a document, they have access to the whole of the document. There are several ways to address this issue.

You can make use of the cross-doc pack from Coda, or one of the several versions developed by the community. This will allow you to create a doc that cross references the main doc. This new doc can then make a subset of information available to users. The downside of the Coda pack is that information sharing is only in one direction. This short coming is addressed in various ways by the community packs. (@Paul_Danyliuk and @Scott_Collier-Weir has packs, if my memory serves me correctly.)

Coda is also busy with a 4 phase project to provide granular access to information in a doc. Phases one and two has been implemented. They are currently working on phase 3, which should be available later this year. This will provide a view-only access to a “sync page”, where people do not have access to the source doc. Phases 1 & 2, which has already been released, provides for editable sync pages, but users can still access the source doc from the new doc with the sync pages.

If you are somewhat able to code, you can also implement your own webhooks based functionality to share information between docs.

Regards
Piet

To keep really separated things, I think the best approach is the @Piet_Strydom one. I use a different approach, where i remain all information in the same doc, but work with filters and locking page.

In advance, I use the locking mechanism available in Team (or higher) plan.

I have a table with the users that one column is of type “people” e another one is the roles (selection list) that person can have. This table is a hidden page and the page is locked to read only.
By formula, using User(), I can see if the logged user has some role and put this true/false as filters in all tables that only that role can see. All main tables are placed in read only pages, preventing anyone to modify these tables.

You can create several pages with dashboards and anything that you want to show for a specific role that every user that doesnt have that role will see a blank table/chart/etc. To difficult a little bit more, you can keep the “role specific” pages hide and put a button on the home page that open the dashboard page and it is only available using the same filter (on disable if option of the button). The user can access the page through search box, but it will appear empty.

You can even make the button that open the dashboard disapear with the same method. You can create a table with your button in a canva column and in the home page put a formula that show this canva if the user has the role or a " " if not.

I don’t know how secure this approach is, but for me it is working really well. When I have time, I will do a simple template showing my solution.

Best Regards,
Felipe Arnhold

1 Like