Jresearch Software Blog
Designing a Security Model
Let's consider a simple example. A client of a bank can request a loan and a manager of that bank can approve loans. We can protect the object Loan from unauthorized access by restricting access to the operations Request and Approve. These operations have relationships with permissions that limit access.

The client and the manager of the bank are called role templates in Flexess (I will explain why we call them role templates and not roles later). Role templates aggregate permissions. In the picture above, a Manager is allowed to perform the Approve operation because they have the ApprovePermission, which is connected to the Approve operation. A Client is not allowed to perform Approve operations because it has no permissions that are connected to the Approve operation.
Protected objects, operations, permissions and role templates are the basic concepts of Flexess. In the next post I will discuss how to restrict access based on object attributes.



