-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This introduces a very light documentation about the newly introduced models.
- Loading branch information
Showing
2 changed files
with
69 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# Organization model | ||
|
||
## Purpose | ||
|
||
The initial `Organization` model allows to regroup `User` and `Team` under a same object. | ||
|
||
While the purpose was purely technical in the first place, few features emerged afterward. | ||
|
||
|
||
## Link with the `User` model | ||
|
||
Each user must have a "default" organization. | ||
|
||
When a user logs in: | ||
|
||
- The backend tries to get an existing organization from a "registration ID" or from the user's mail domain | ||
- If the organization does not exist, it is created using the "registration ID" and fallbacks on the user's mail domain | ||
- The user organization is set to this organization. | ||
|
||
**Note:** While deploying the new code, we allow the already existing user to not have one. | ||
|
||
|
||
## Link with the `Team` model | ||
|
||
Each team must have an organization. This organization is not defined by the user, but automatically set | ||
using the user's organization. | ||
|
||
The team's organization does not restrict the users who can be added to the team. | ||
|
||
There is currently no feature relying on the team organization. | ||
|
||
**Note:** While deploying the new code, we allow the teams to not have one. | ||
|
||
|
||
## Organization-related features | ||
|
||
### Organization UI | ||
|
||
A new interface can be created to allow users to see all members of an organization. | ||
This could be used along with the contacts. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# ServiceProvider model | ||
|
||
## Purpose | ||
|
||
The `ServiceProvider` model represents a ... service provider, also known as "tools using some data from this project". | ||
|
||
|
||
## Link with the `Organization` model | ||
|
||
An organization can be linked to several service providers. | ||
The goal here, is to allow users of an organization to have access, to a service provider or not. | ||
The first implementation does not have any feature related, but the first feature will probably be | ||
to list applications visible in the "all application menu" (aka "la gaufre"). | ||
|
||
|
||
## Link with the `Team` model | ||
|
||
A team can be linked to several service providers. | ||
This is used as a filter when a service provider calls the resource server, only the teams linked to | ||
this service provider are returned. This is mandatory for data segregation: we don't want all service | ||
providers to be able to list all data regarding other service providers. | ||
|
||
|
||
## Limitations | ||
|
||
There is currently no way to provision all the service providers automatically. So when a service provider | ||
creates a team via the resource server, we create the `ServiceProvider` on the fly, without any understandable name. | ||
This will need to be improved later. |