Who may do what in Invantive Studio, and in every application that is built with it, is stored in the repository. Five kinds of rows work together. This topic shows how they fit. The details are in the topics linked below.
## The Building Blocks
- A user is someone who logs on. A user has a code and a name. See [[Invantive Studio/Repository/Security/Users|Users]].
- A function is something that can be authorised, such as a list, a details screen or an action. Each screen of an application belongs to a function. See [[Invantive Studio/Repository/Security/Functions|Functions]].
- A role groups users, such as an administrator or a developer. See [[Invantive Studio/Repository/Security/Roles|Roles]].
- A user role makes a user a member of a role. See [[Invantive Studio/Repository/Security/User Roles|User Roles]].
- A role function grants a role a function, for reading only or for reading and changing. See [[Invantive Studio/Repository/Security/Role Functions|Role Functions]].
- An application user gives a user access to an application, for reading only or for reading and changing. See [[Invantive Studio/Repository/Applications/Application Users|Application Users]].
## How a Right Is Decided
A user may use a function when one of the roles of the user is granted that function. The application user gives the user access to the application as a whole. A button, a tab or a screen for which the user holds no right is left out. "My Roles" lists the roles of the user who is logged on. See [[Invantive Studio/Repository/Concepts/Function Rights|Function Rights]].
## Partitions
A partition divides the data of one installation between companies or groups that may not see each other's rows. A user works in one partition per session. See [[Invantive Studio/Repository/Concepts/Partition|Partition]] and [[Invantive Studio/Repository/Security/Partition Users|Partition Users]].
## Maintaining Rights in One Place
Three windows show the grants as a matrix, so a whole block can be set at once:
- [[Invantive Studio/Role Function Matrix|Role Function Matrix]]: roles against functions, with "-", "R" and "R&W".
- [[Invantive Studio/User Role Matrix|User Role Matrix]]: users against roles.
- [[Invantive Studio/Application User Matrix|Application User Matrix]]: users against applications, available from release 27.0.
Procedures: [[Invantive Studio/Repository/Procedures/Give a User a Role|Give a User a Role]], [[Invantive Studio/Repository/Procedures/Grant a Role a Function|Grant a Role a Function]] and [[Invantive Studio/Repository/Procedures/Give a User Access to an Application|Give a User Access to an Application]].
## Seeing What Happened
Every change is recorded. "Interactions" and "Transactions" list the sessions and the changes. See [[Invantive Studio/Repository/Security/Interactions|Interactions]], [[Invantive Studio/Repository/Security/Transactions|Transactions]] and [[Invantive Studio/Repository/Concepts/Audit Trail|Audit Trail]].
## The Same Model in Invantive Estate
Invantive Estate uses the same functions, roles and users, and adds security per project. See [[Invantive Estate/Concepts/Security|Security]].