Access control documented

This commit is contained in:
Marco Mooij | DigiState
2026-05-15 13:43:56 +02:00
parent 8e4ea9d4a0
commit db2b6e62b8
11 changed files with 95 additions and 24 deletions

View File

@@ -1,6 +1,5 @@
# POST Create or update server # POST Create or update server
This API call creates a server or updates it with the given information. This API call creates a server or updates it with the given information.
#### Location #### Location
``` ```
/api/v1/servers/ /api/v1/servers/

View File

@@ -1,19 +1,20 @@
# Installation # Installation
This guide explains how to install Sentri on a Linux server. This guide explains how to install Sentri on a Linux server.
# Requirements ## Requirements
Before continuing, make sure your server meets the following requirements: Before continuing, make sure your server meets the following requirements:
- A Linux server (Linux is officially tested and supported) - A Linux server (Linux is officially tested and supported)
- Basic Linux and web hosting experience - Basic Linux and web hosting experience
- A web server of your choice (Apache, Nginx, Caddy, etc.) - A web server of your choice (Apache, Nginx, etc.)
- MariaDB or MySQL - MariaDB or MySQL
- PHP 8.3 or newer - PHP 8.3 or newer
- Git installed on the server - Git installed on the server
>[!info] >[!info]
>This guide uses `/var/www/sentri/` as the installation directory. You can change this to any location you prefer. >This guide uses `/var/www/sentri/` as the installation directory. You can change this to any location you prefer.
# Installation ## Installation
## Configure the document root ### Configure the document root
Sentri stores all publicly accessible files inside the `pub/` directory. Sentri stores all publicly accessible files inside the `pub/` directory.
If your current virtual host document root is: If your current virtual host document root is:
``` ```
@@ -24,7 +25,7 @@ Change it to:
/var/www/sentri/pub/ /var/www/sentri/pub/
``` ```
After updating the document root, reload or restart your web server. After updating the document root, reload or restart your web server.
## Download the Sentri files ### Download the Sentri files
Run the following commands to download the latest version of Sentri: Run the following commands to download the latest version of Sentri:
```bash ```bash
cd /var/www/sentri/ cd /var/www/sentri/
@@ -36,7 +37,7 @@ mv Sentri/.[!.]* . 2>/dev/null
rmdir Sentri rmdir Sentri
``` ```
## Database setup ### Database setup
Log in to MariaDB/MySQL and create the database and user: Log in to MariaDB/MySQL and create the database and user:
```sql ```sql
CREATE DATABASE sentri; CREATE DATABASE sentri;
@@ -50,7 +51,7 @@ Next, import the database schema:
mariadb -u sentri -p sentri < /var/www/sentri/install.sql mariadb -u sentri -p sentri < /var/www/sentri/install.sql
``` ```
When prompted, enter the password for the `sentri` database user. When prompted, enter the password for the `sentri` database user.
## Configuring ### Configuring
Copy the example configuration file: Copy the example configuration file:
```bash ```bash
cp /var/www/sentri/pub/config-sample.php /var/www/sentri/pub/config.php cp /var/www/sentri/pub/config-sample.php /var/www/sentri/pub/config.php
@@ -59,7 +60,7 @@ Then edit the configuration file and update the database credentials:
``` ```
/var/www/sentri/pub/config.php /var/www/sentri/pub/config.php
``` ```
### First Login #### First Login
Open your website in a browser and log in with the default credentials: Open your website in a browser and log in with the default credentials:
``` ```
Username: superuser Username: superuser
@@ -68,13 +69,13 @@ Password: changethispassword
> [!WARNING] > [!WARNING]
> After logging in change the superuser password! > After logging in change the superuser password!
### Global settings #### Global settings
Go to [[Global|Global]] under Portal Management and rename the portal to your preference. Go to [[Global|Global]] under Portal Management and rename the portal to your preference.
Next, configure the SMTP connection in [[Mail|Mail]] under Portal Management so Sentri can send emails. Next, configure the SMTP connection in [[Mail|Mail]] under Portal Management so Sentri can send emails.
Finally, enable the [[index#Modules|modules]] you want to use in [[Portal Management/Settings/Modules|Modules]] under Portal Management. Finally, enable the [[index#Modules|modules]] you want to use in [[Portal Management/Settings/Modules|Modules]] under Portal Management.
### Create users and check permissions #### Create users and check permissions
Go to the Go to the
### Getting started #### Getting started
After completing the installation, continue with the [[Getting Started]] guide to configure and begin using Sentri. After completing the installation, continue with the [[Getting Started]] guide to configure and begin using Sentri.

View File

@@ -1 +1,31 @@
# Admins # Admins
Admins are users who are not tied to specific companies and are responsible for administering Sentri.
## View admin
To view admins, you need the `admin-access-admins` RO permission.
In the admins list, click the **view** icon to open an admin and see additional details.
## Add admin
To create a new admin, you need the `admin-access-admins` RW permission.
Complete the form and click **Add admin**. The admin will be created in a **Pending** state.
After creation, an invitation email is sent. The recipient must verify their account and set a password. Once completed, the admin becomes **Active**.
## Modify admin
To manage admins, you need the `admin-access-admins` RW permission.
You can edit an admin by clicking the **edit** icon in the admin list or by selecting **Edit** while viewing the admin details.
### Send password reset email
To send a password reset email, you need the `admin-access-admins-resetpassword` RW permission.
Open the admin details and click **Send password reset email** in the user management section.
### Disable two factor authentication
To disable two-factor authentication for another admin, you need the `admin-access-admins-mfa` RW permission.
Open the admin details and click **Disable two-factor authentication** in the user management section.
# Admin status
An admin can have one of the following statuses:
- **Active** The admin is active and can log in.
- **Pending** The admin has been created but has not yet verified their account or set a password via the invitation email.
- **Banned** The admin is blocked due to suspicious or policy-violating behavior and cannot log in.
- **Inactive** The admin account is disabled and cannot log in.

View File

@@ -1 +1,17 @@
# Permissions # Permissions
Many actions in Sentri require specific permissions. These permissions are configured per user group and can be set to one of the following levels:
- NA (Not Available)
- RO (Read Only)
- RW (Read Write)
> [!INFO]
> The **superuser** account has RW access to all permissions by default. This behavior is intentional and cannot be changed.
## Viewing or modifying permissions
To view permissions, you need the `admin-access-control-permissions` RO permission.
To modify permissions, you need the `admin-access-control-permissions` RW permission.
Navigate to **Access control** > **Permissions** and click the **view** icon. You will see the permission set assigned to each user group.
If you want to view or modify all permissions for a specific user group, go to **Access control** > **User groups**, then click the **view icon** next to the user group you want to view or modify. This will display the full list of permissions configured on that group.

View File

@@ -1 +1,20 @@
# User groups # User groups
All users in Sentri are assigned to a user group. There are currently two types of user groups:
- **Administrator** Users not tied to specific companies. They are responsible for administering Sentri and are created [[Admins|here]].
- **User** Intended for future use for users linked to specific companies. This group type is not yet active in Sentri.
## User group weight
Each user group has an associated **weight**, which is used to enforce hierarchy and prevent privilege escalation.
For example, if your current user group has a weight of **10**, you cannot create or assign a user to a group with a lower weight (e.g. **1**) if that would result in higher permissions than your own. This ensures users cannot create accounts with greater access than their own.
## Adding a user group
To add a user group, you need the `admin-access-control-user-groups` RW permission.
Navigate to **Access Control** > **User groups** and click **Add user group**. Enter a name and select the group type.
After creation, you will be able to configure the groups [[Permissions|permissions]]. To modify permissions, you also need the `admin-access-control-permissions` **RW** permission.
## Viewing user groups
To view user groups, you need the `admin-access-control-user-groups` RO permission.
Go to **Access Control** > **User groups** and click the **view icon** next to a user group. This will show detailed information about the group, including all configured [[Permissions|permissions]].

View File

@@ -1,14 +1,14 @@
# Global # Global
# Portal name ## Portal name
This setting allows you to change the name of the portal. This setting allows you to change the name of the portal.
Currently, this setting has limited functionality, but it will be used in future versions to support white-labeling. Currently, this setting has limited functionality, but it will be used in future versions to support white-labeling.
# Portal provider name ## Portal provider name
This setting allows you to change the provider name displayed by the portal. This setting allows you to change the provider name displayed by the portal.
Currently, this setting has limited functionality, but it will also be used in future versions to support white-labeling. Currently, this setting has limited functionality, but it will also be used in future versions to support white-labeling.
# Admin authentication methods ## Admin authentication methods
This setting will later support multiple administrator authentication methods. This setting will later support multiple administrator authentication methods.
Currently, the only available option is `database_auth`. Currently, the only available option is `database_auth`.
# CA certificate URL ## CA certificate URL
This URL points to the Certificate Authority (CA) certificate used by the auto-provisioning module, which is currently under development. This URL points to the Certificate Authority (CA) certificate used by the auto-provisioning module, which is currently under development.
# Autoprovisioning URL ## Autoprovisioning URL
This URL is used by the auto-provisioning system to retrieve configuration data by the auto-provisioning module, which is currently under development.. This URL is used by the auto-provisioning system to retrieve configuration data by the auto-provisioning module, which is currently under development..

View File

@@ -6,11 +6,11 @@ Sentri sends emails in the following situations:
- When a new user is created, an invitation email is sent to the user. - When a new user is created, an invitation email is sent to the user.
- When a user requests a password reset. - When a user requests a password reset.
- When an administrator sends a password reset email. - When an administrator sends a password reset email.
# From Name ## From Name
This is the sender name displayed in emails sent by Sentri. This is the sender name displayed in emails sent by Sentri.
# From Address ## From Address
This is the email address used by Sentri to send emails. This is the email address used by Sentri to send emails.
# SMTP Server Configuration ## SMTP Server Configuration
### Host ### Host
The hostname or IP address of your SMTP server. The hostname or IP address of your SMTP server.
### Secure ### Secure

View File

@@ -1,6 +1,6 @@
# Modules # Modules
Sentri allows modules to be enabled or disabled. Each module provides its own functionality, which can be viewed [[../../index|here]]. Sentri allows modules to be enabled or disabled. Each module provides its own functionality, which can be viewed [[../../index|here]].
# Enabling and Disabling Modules ## Enabling and Disabling Modules
To enable or disable modules, navigate to **Settings** > **Modules** and toggle the modules you want to enable or disable. To enable or disable modules, navigate to **Settings** > **Modules** and toggle the modules you want to enable or disable.
> [!Note] > [!Note]

View File

@@ -4,6 +4,7 @@ To be announced
### Changes ### Changes
- Changed portal management page to Settings and changed System in the sidebar to Portal management. - Changed portal management page to Settings and changed System in the sidebar to Portal management.
- Removed vc_ prefix from certain database tables. - Removed vc_ prefix from certain database tables.
- Display user group weight in user groups view.
## v.1.2 ## v.1.2
`06-05-2026` `06-05-2026`
@@ -19,6 +20,11 @@ To be announced
- Filtering and ordering on backup types fixed in server overview. - Filtering and ordering on backup types fixed in server overview.
### Known issues ### Known issues
- Sidebar text is showing when sidebar is wrapped. - Sidebar text is showing when sidebar is wrapped.
- Avatar upload button is dark
- non-superuser admins can update the permission name and description, this should be limited to the superuser.
- Problem with enabling and disabling modules as superuser.
- Administrator can change superuser permissions.
- problem with redirect after creating a user-group. When creating a group it does not create the permissions for the new user group. also a 500 error is displayed.
## v.1.1 ## v.1.1
`07-01-2026` `07-01-2026`
### Changes ### Changes

0
Untitled.md Normal file
View File

View File

@@ -2,7 +2,7 @@
>[!note] >[!note]
>The making of the this documentation is still in progress. >The making of the this documentation is still in progress.
# What is Sentri # What is Sentri
Sentri is a self-hosted web application built around a modular system. Each module provides a specific feature or solves a particular use case, and was created from practical needs encountered throughout my career as a system and network administrator. Instead of relying on multiple separate services or portals for smaller operational tasks, Sentri centralizes them into a single platform. Sentri is a self-hosted web application built as a modular system. Each module provides a specific feature or solves a particular use case, and was created from practical needs encountered throughout my career as a system and network administrator. Instead of relying on multiple separate services or portals for smaller operational tasks, Sentri centralizes them into a single platform.
Its modular structure keeps the platform lightweight and flexible by allowing you to enable only the components you actually use. Sentri is open-source, performance-focused, and designed to remain minimal and simple. Because Sentri is fully self-hosted, all data remains under your control without depending on third-party providers. Its modular structure keeps the platform lightweight and flexible by allowing you to enable only the components you actually use. Sentri is open-source, performance-focused, and designed to remain minimal and simple. Because Sentri is fully self-hosted, all data remains under your control without depending on third-party providers.