Permissions

Permission model

This page describes who may see and change what.

The two axes

TermBelongs toLevels
Statusthe account3, 6, 9
Accessa thing (project, layout, field, event type)No access, Read only, Edit

Projects also have the level Deleted. Only status 9 sees deleted projects.

Every change to permissions takes effect immediately, whether on a project, layout, field, group, group membership or status. If a permission is withdrawn from someone, the server already rejects their next request, and a newly granted permission likewise applies from the next request. A page that is already open shows the new state after reloading.

Status

StatusLabelProjects, layouts, fieldsAdmin areas
3Individual read and write permissionsOnly what permissions grantno
6UnrestrictedRead and edit everything, every permission table bypassedno
9Administratorlike 6yes

Project permission

A project is visible to status 3 if it is not deleted and at least one place grants a permission. The highest level applies:

PlaceMeaning
Everyone row on the projectBase permission for all accounts
User tab on the projectFor this account
Groups tab on the projectFor all members of the group
EveryoneAccountGroup AGroup BResult
No accessnot visible
No accessRead onlyread
No accessRead onlyEditedit (the most generous wins)
Read onlyread (for everyone)
Read onlyNo accessread. No access lowers nothing
Editedit (for everyone)

In each row the project details show what already applies through Everyone and through groups, and next to it the result.

There is no denying

No access takes no permission away; it simply grants none. If you want to withdraw a permission, you have to find the place that grants it.

Layout permission

A layout appears as a tab when two independent conditions are met:

ConditionCheck
AssignmentThe layout is switched on in this project
PermissionEveryone row on the layout or a group permission (for status 3)

The assignment is not a level but a switch. It also applies to status 6 and 9: a layout that is not switched on appears for nobody.

Switched onLayout EveryoneGroupStatusResult
noEditEdit9no tab
yesNo access3no tab
yesNo accessRead only3tab, read-only
yesRead only3tab, read-only
yesNo access6tab (the status bypasses the permission)

The layout permission is capped by the project permission.

Default for new projects switches a layout on when new projects are created. Existing projects do not get it afterwards.

Field permission

Three steps, in this order:

  1. Combine. The highest level from the Everyone row on the field and all the account’s group permissions.
  2. Cap with the layout. Nothing beyond the layout permission.
  3. Cap with the project. Nothing beyond the project permission.
Field EveryoneGroupLayout and projectResult
No accessEditinvisible
No accessRead onlyEditread
No accessEditEditedit
Read onlyEditread
Read onlyEditEditedit
EditEditedit
EditRead onlyread, capped
EditEditRead onlyread, capped

A field can only be reached through a layout that is switched on and accessible, or through the dynamic layout.

Consequence for fields that only some people should see

If a field is set to Edit for Everyone, anyone who may edit the project and layout can edit it. If you want to differentiate, there is exactly one pattern:

PlaceLevel
Field, Everyone rowNo access
Group that should editEdit
Group that should readRead only

Everyone else does not see the field in layouts and field pickers, and the full-text search gives them no matches from it. For a file field they also lose the files in it, both in the object’s file area and when retrieving the file, its transcript and its recognised text. Test this with an account with status 3.

Files

The file sitsWho sees it
only in the object’s file areaeveryone with read permission on the project
only in a file fieldwhoever may read the field
in a file field and also in the file areaeveryone with read permission on the project

“Seeing” here means: in the file area, in the full-text search across transcript and recognised text, and when retrieving the file itself. Status 6 and 9 see all files.

Edge cases

WishSituation
Hide individual objects from certain accountsNot possible. Whoever sees the project sees all objects in it. Separate them by project
A field editable in one project, read-only in anotherThrough capping: project A on Edit, project B on Read only
Explicitly withdraw a permissionNot possible. Only change the place that grants it
Allow reading, forbid exportNot possible. Whoever may read can export
Hide a file from individual accountsOnly in a file field with field permissions, and only there. If the same file is also linked in the object’s file area, everyone with read permission on the project sees it
A field editable on only one layoutThrough capping: the other layout on Read only

Libraries and special cases

AreaPermission
Managing libraries (addresses, files, events, authority data, locations, plans)Status 9
Event typesTheir own permissions, for everyone and per group, in Libraries › Events
Changing object linksEdit in the project in which the link is made
Link typesTheir own permissions per type, for everyone and per group, plus restrictions per project, in Data model › Link types. See Link types
Linking to an object or a fileIn addition, read permission on the target, that is, a readable project it is in. Without read permission the server answers as if the target were missing, so it does not reveal that the target exists. Authority data and addresses need no check of their own: authority data applies to the whole instance, and the address book is visible anyway to whoever may write in the project

Further reading