PHPackages                             sebatianhofer/be-permissions - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. sebatianhofer/be-permissions

Abandoned → [sebastianhofer/be-permissions](/?search=sebastianhofer%2Fbe-permissions)Typo3-cms-extension[Authentication &amp; Authorization](/categories/authentication)

sebatianhofer/be-permissions
============================

Makes Backend permissions shippable

0.7.3(3y ago)216[3 issues](https://github.com/DrWh0286/be-permissions/issues)GPL-3.0-or-laterPHPPHP &gt;=7.4.0

Since Jan 24Pushed 3y ago1 watchersCompare

[ Source](https://github.com/DrWh0286/be-permissions)[ Packagist](https://packagist.org/packages/sebatianhofer/be-permissions)[ RSS](/packages/sebatianhofer-be-permissions/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (10)Versions (31)Used By (0)

TYPO3 extension be\_permissions
===============================

[](#typo3-extension-be_permissions)

This extensions provides some cli commands to export and import be\_groups records to/from yaml files.

Documentation
-------------

[](#documentation)

The extension uses the config/be\_groups (parallel to config/sites) folder to store the exported be\_group files. It also provides an API.

### Features

[](#features)

- Commands for
    - import/export be\_groups from/to yaml
    - separate deploy command for your ci pipeline
    - synchronizing local be\_groups from a remote system
    - initialize all your existing groups as code managed
    - merging your local groups with remote groups and export them
- Automatic export with saving a be\_groups record (needs to be enabled with feature toggle)
- Deploy command respects the two options for code managed groups:
    - **extend:** Permissions are only added, but no permission will be removed.
    - **overrule:** Whole group will be overruled. Changes are gone after deployment.
- TYPO3 Backend module
    - to see the status/diff of your files and be\_groups
    - to import/export your be\_groups manually
    - to overrule as 'extend' marked groups after deployment (to remove permissions from those groups)
- Editing be\_groups marked as code managed
    - **overrule:** is not possible with Production context
    - **extend:** will cause a warining message with Production context

### Installation

[](#installation)

```
$ composer req sebastianhofer/be-permissions
```

### Quick start

[](#quick-start)

1. Install the extension
2. Go to a be\_groups record in TYPO3 backend
3. Enable code\_manages\_group, select a deploy\_processing method and save (identifier should be created automatically)
4. Export with the export command (see below)
5. Add the resulting yaml file to git
6. Deploy your code and execute the deploy command (see below)

### be\_groups changes

[](#be_groups-changes)

The extension adds three new fields to the be\_groups.

#### code\_managed\_group

[](#code_managed_group)

Activating this checkbox makes the group available for all the commands for import and export.

#### identifier

[](#identifier)

This field connects the yaml file to the br\_groups record. This was introduced, because the uid is an autoincrement and therefore in case of newly created be\_groups on a remote system using it as identifier would fail. The identifier is used to create a folder within all files for a be\_group are placed.

#### deploy\_processing

[](#deploy_processing)

There are two ways to import a be\_group.yaml:

##### overrule

[](#overrule)

In this case simply the record fields in database are overruled by the values in the be\_group.yaml.

##### extend

[](#extend)

In this case the permissions are merged. Means, that permissions only added in case they are not set, but nothing is removed.

### Commands

[](#commands)

#### Export command

[](#export-command)

```
$ ./vendor/bin/typo3cms bepermission:export [arguments]
```

This command exports either all as code\_managed\_group marked be\_groups records to a yaml file or only the one with the as argument given identifier.

#### Extend command

[](#extend-command)

```
$ ./vendor/bin/typo3cms bepermission:extend [arguments]
```

This command imports the yaml file with the given identifier with the deploy processing 'extend' (see above).

#### Overrule command

[](#overrule-command)

```
$ ./vendor/bin/typo3cms bepermission:overrule [arguments]
```

This command imports the yaml file with the given identifier with the deploy processing 'overrule' (see above).

#### Synchronize command

[](#synchronize-command)

```
$ ./vendor/bin/typo3cms bepermission:syncprodbegroups [arguments]
```

This command synchronizes all as code\_managed\_group marked records from the given remote (prod) host to the local system. This happens via a REST API (see configuration section). This overrules your local records!

Argument: group identifier

#### Merge and export command

[](#merge-and-export-command)

```
$ ./vendor/bin/typo3cms bepermission:mergeprodandexport [arguments]
```

This command merges all as code\_managed\_group marked records from the given remote (prod) host with the local records. This happens via a REST API (see configuration section). Afterwards it exports the result to the yaml files.

Argument: group identifier

#### Deploy command

[](#deploy-command)

```
$ ./vendor/bin/typo3cms bepermission:deploy
```

This command imports all yaml files based on the selected deploy\_processing. Can be used for a deployment recipe.

#### Init command

[](#init-command)

```
$ ./vendor/bin/typo3cms bepermission:init [deploy_processing] -e
```

This command initializes all existing be\_groups as code managed. Default deploy processing is 'extend', but you can give 'overrule' as argument

Option '-e' triggers an export of all groups after initializing to yaml files.

#### Initialize Identifiers command

[](#initialize-identifiers-command)

```
$ ./vendor/bin/typo3cms bepermission:initIdentifiers
```

This command initializes all existing be\_groups with an identifier if not set yet.

### Configuration

[](#configuration)

To configure the extensions api there are some properties in the extension configuration:

#### apiToken

[](#apitoken)

This is at the moment a simple api authentication. So the apiToken needs to be the same on local and remote system. For security reason it is not recommended to hold this in your git repository, but set this e.g. via an environment variable.

#### basicAuthUser and basicAuthPassword

[](#basicauthuser-and-basicauthpassword)

If filled this holds basic auth credentials for the remote system.

#### remoteHost

[](#remotehost)

This holds the host to the remote repository from where the synchronization should be used.

### Feature Toggles

[](#feature-toggles)

see

#### be\_permissions.automaticBeGroupsExportWithSave

[](#be_permissionsautomaticbegroupsexportwithsave)

If enabled an automatic export of a be\_groups record is performed with saving the record.

Todo
----

[](#todo)

- Add a tsconfig file to export to also store user TSconfig for be\_groups in vcs.
- Add backend module for remote synchronize feature.

Migrations
----------

[](#migrations)

### Update to &gt; 0.6.0

[](#update-to--060)

Execute SQL script:

```
UPDATE be_groups SET code_managed_group = bulk_export;
```

###  Health Score

19

—

LowBetter than 9% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~13 days

Recently: every ~26 days

Total

21

Last Release

1353d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f14106d7a4bcbd5922f4cf9d5f4e11d41c16e1fbf1b4ab27027c58d606d2d99c?d=identicon)[sebastianhofer](/maintainers/sebastianhofer)

---

Top Contributors

[![DrWh0286](https://avatars.githubusercontent.com/u/12473862?v=4)](https://github.com/DrWh0286 "DrWh0286 (217 commits)")

### Embed Badge

![Health badge](/badges/sebatianhofer-be-permissions/health.svg)

```
[![Health](https://phpackages.com/badges/sebatianhofer-be-permissions/health.svg)](https://phpackages.com/packages/sebatianhofer-be-permissions)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k52](/packages/friendsoftypo3-content-blocks)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.1M8](/packages/netresearch-rte-ckeditor-image)[pagemachine/typo3-formlog

Form log for TYPO3

23238.6k8](/packages/pagemachine-typo3-formlog)[typo3/cms-adminpanel

TYPO3 CMS Admin Panel - The Admin Panel displays information about your site in the frontend and contains a range of metrics including debug and caching information.

115.7M65](/packages/typo3-cms-adminpanel)[eliashaeussler/typo3-warming

Warming - Warms up Frontend caches based on an XML sitemap. Cache warmup can be triggered via TYPO3 backend or using a console command. Supports multiple languages and custom crawler implementations.

22260.2k](/packages/eliashaeussler-typo3-warming)[in2code/femanager

Modern TYPO3 Frontend User Registration.

53790.4k8](/packages/in2code-femanager)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
