SAAS Multi-tenant with RBAC(Role based authentication control);
- It should be able to authenticate using e-mail & password;
- It should be able to authenticate using Github account;
- It should be able to recover password using e-mail;
- It should be able to create an account (e-mail, name and password);
- 🆕 It should be able to validate a recover password code with expirationAt(max 30 minutes);
- 🆕 It should be able to mark on database when recover password code has already been used;
- 🆕 It should be able to send an e-mail to user when password is reset to a new;
- 🆕 It should be able to send an e-mail to user when password is reset to a new;
- It should be able to create a new organization;
- It should be able to get organizations to which the user belongs;
- It should be able to update an organization;
- It should be able to shutdown an organization;
- It should be able to transfer organization ownership;
- It should be able to invite a new member (e-mail, role);
- It should be able to accept an invite;
- It should be able to revoke a pending invite;
- It should be able to get organization members;
- It should be able to update a member role;
- It should be able to get projects within a organization;
- It should be able to create a new project (name, url, description);
- It should be able to update a project (name, url, description);
- It should be able to delete a project;
- It should be able to get billing details for organization ($20 per project / $10 per member excluding billing role);
Roles & permissions.
- Owner (count as administrator)
- Administrator
- Member
- Billing (one per organization)
- Anonymous
Administrator | Member | Billing | Anonymous | |
---|---|---|---|---|
Update organization | ✅ | ❌ | ❌ | ❌ |
Delete organization | ✅ | ❌ | ❌ | ❌ |
Invite a member | ✅ | ❌ | ❌ | ❌ |
Revoke an invite | ✅ | ❌ | ❌ | ❌ |
List members | ✅ | ✅ | ✅ | ❌ |
Transfer ownership | 🟡 | ❌ | ❌ | ❌ |
Update member role | ✅ | ❌ | ❌ | ❌ |
Delete member | ✅ | 🟡 | ❌ | ❌ |
List projects | ✅ | ✅ | ✅ | ❌ |
Create a new project | ✅ | ✅ | ❌ | ❌ |
Update a project | ✅ | 🟡 | ❌ | ❌ |
Delete a project | ✅ | 🟡 | ❌ | ❌ |
Get billing details | ✅ | ❌ | ✅ | ❌ |
Export billing details | ✅ | ❌ | ✅ | ❌ |
✅ = allowed ❌ = not allowed 🟡 = allowed w/ conditions
- Only owners may transfer organization ownership;
- Only administrators and project authors may update/delete the project;
- Members can leave their own organization;
This is a repositories contain my studies about develop a saas multi-tenant with RBAC(Role based authentication control). dev-juneo