As you already know, Coda still doesn’t have granular permissions. So what’s the better option than to take the matter into my own hands and create my own implementation of access control?
Presenting… ACCESS CONTROL DEMO v.0.1!
The idea is simple: crash the doc when a certain condition is not met
For example:
- If the user is not from the list of authorized users — checking for
User() != ...
- If document URL is not the one of the original document — checking for
thisDocument.Url().EndsWith("_dXXXXXXXXXX")
- Adding checks on row-per-row basis with a formula that would crash on certain conditions, then filtering away those rows for users that should not see them.
Inspired by this amazing crash course by @Filmos. The formula that you can use to crash your doc is, e.g.
Button(thisRow.[Noop button], "This shall crash the doc when you're in Play mode or can edit the doc", "Crash")
The doc won’t crash when launched in View only mode, but the users won’t be able to change anything about the doc (e.g. disable filters to see the data they shouldn’t see) anyways.
In this demo, I challenge you to find out who has a crush on whom
There is in fact a way to bypass the system. I wonder if you can figure it out.
(don’t use this in production please )