Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 25 additions & 18 deletions docs/configuration/user-hierarchy/departments.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,47 +6,54 @@ description: Configure departments in SeaTable to add hierarchical organizationa

Departments extend SeaTable's group concept with a hierarchical structure. They allow you to map your organization's structure (e.g. divisions, teams, units) directly into SeaTable.

!!! note "Deactivated by default"

Departments are disabled by default and must be explicitly enabled. They are also not active on cloud.seatable.io.

## How departments differ from groups

| | Groups | Departments |
|---|---|---|
| Structure | Flat | Hierarchical (parent/child) |
| Membership | Explicit only | Automatic inheritance from parent departments |
| Creation | Any user (if permitted) | System admin or org admin only |
| Enabled by default | Yes | No |
| Membership | Explicit only | Automatic inheritance from sub-departments |
| Creation | Any user (if permitted) | System admin or team admin only |
| Enabled by default | Yes | Yes |

When a user is added to a sub-department, they automatically become a member of all parent departments above it.

## Enable departments
## Disable departments

Add the following setting to `dtable_web_settings.py`:
Departments are enabled by default. If you don't want to use departments, set the following in `dtable_web_settings.py`:

```python
ENABLE_ADDRESSBOOK_V2 = True
ENABLE_ADDRESSBOOK_V2 = False
```

After a [restart](../../maintenance/restart-seatable.md), the system admin can create and manage departments in the **System Admin** area.
Changes to `dtable_web_settings.py` require a [restart](../../maintenance/restart-seatable.md) of SeaTable.

## Manage departments

Once enabled, departments are managed in the admin areas:

- The **system admin** creates and manages departments under **System Admin > Departments**.
- In multi-tenant setups, **team admins** manage the departments of their own team under **Team Admin > Departments** (see [`ENABLE_ORG_DEPARTMENT`](#enable-departments-within-teams) below).

Departments can be nested to any depth. Each department member is either a *Default member* or an *Admin*. Department admins can manage the members of their department and of all its sub-departments.

Departments can also be populated automatically from an LDAP or Active Directory server, see [`SYNC_GROUP_AS_DEPARTMENT`](../authentication/ldap.md).

## Additional settings

### Allow department admins to manage member bases
The following settings are optional. The values shown are the defaults in SeaTable 6.2.

By default, department admins can only manage members. To also allow them to manage the bases of department members:
### Enable departments within teams

```python
ENABLE_DEPARTMENT_ADMIN_MANAGE_MEMBER_BASES = True
ENABLE_ORG_DEPARTMENT = True
```

### Enable departments within organizations
If you use [teams/organizations](teams-organizations.md), this setting allows team admins to create and manage departments within their team. Set it to `False` to restrict department management to the system admin.

If you use [teams/organizations](teams-organizations.md), departments can be enabled per organization:
### Let users browse the bases of department members

```python
ENABLE_ORG_DEPARTMENT = True
ENABLE_DEPARTMENT_ADMIN_MANAGE_MEMBER_BASES = False
```

This is `True` by default, meaning org admins can create departments within their organization once the global departments feature is enabled.
If enabled, a **Departments** entry is added to the navigation of every user. There, users can browse the departments they belong to, including sub-departments and their members. Users in a parent department can also open the bases owned by members of its sub-departments with read-only permission.
4 changes: 2 additions & 2 deletions docs/configuration/user-hierarchy/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ SeaTable provides several levels of user organization to match different deploym
| **Users** | Individual accounts | Always active | Every installation |
| **[Groups](groups.md)** | Collaborate on shared bases | Always active | Any installation |
| **[Teams/Organizations](teams-organizations.md)** | Fully isolated tenants | Disabled | Multi-tenant / SaaS deployments |
| **[Departments](departments.md)** | Hierarchical org structure | Disabled | Enterprises with formal org charts |
| **[Departments](departments.md)** | Hierarchical org structure | Enabled | Enterprises with formal org charts |

## How they relate

- **Users** are the foundation — every person has an account.
- **Groups** allow users to share bases and collaborate. Any user can create a group (unless restricted by [roles](../roles-and-permissions.md)).
- **Teams/Organizations** provide full tenant isolation. Users within one team cannot see users or bases of another team. This is the mode used by cloud.seatable.io.
- **Departments** add a hierarchical structure on top of groups, with automatic membership inheritance from parent to child departments.
- **Departments** add a hierarchical structure on top of groups, where members of a sub-department are automatically members of all parent departments.
Loading