Adding and Removing Users in TYPO3 | OpsBlu Docs

Adding and Removing Users in TYPO3

How to add and remove team members in Typo3. Covers invitation workflows, role assignment, access revocation, and user lifecycle management for analytics.

Learn how to create, configure, and remove both backend and frontend users in TYPO3, including permissions, user groups, and best practices for user management.

Understanding TYPO3 User Types

TYPO3 distinguishes between two user types:

  • Backend Users: Access TYPO3 administration interface
  • Frontend Users: Access restricted frontend content

Backend User Management

Accessing User Management

Backend → System → Backend Users

Or navigate to:

  • List Module → Select root page (ID 0) → Backend Users

Adding a Backend User

Method 1: Via Backend Users Module

  1. Navigate to Backend Users

    • System → Backend Users
    • Click Create new record (+ icon)
  2. General Tab

    Username: john.doe
    Password: [Set strong password]
    User Group: Editor
    Real name: John Doe
    Email: john.doe@example.com
    
  3. Access Lists Tab

    • Limit to languages: Select allowed languages
    • Mount points: Select page tree access
    • File mounts: Select file folder access
    • Allowed excludefields: Select specific fields
  4. Options Tab

    DB Mounts: Select root pages user can access
    File Mounts: Select fileadmin folders
    TSconfig: Add custom TypoScript configuration
    
  5. Save and Close

Method 2: Via List Module

  1. List Module → Root page (ID 0)
  2. Click Create new record
  3. Select Backend User
  4. Fill in required fields (same as above)
  5. Save

Backend User Required Fields

Field Required Description
Username Yes Unique identifier for login
Password Yes Minimum 8 characters recommended
User Group No But highly recommended
Email No For password reset functionality

Setting User Permissions

  1. System → Backend User Groups

  2. Create new group or edit existing

  3. General Tab:

    Title: Content Editors
    Description: Can edit pages and content
    Subgroup: [Optional] Inherit from other groups
    
  4. Access Lists Tab:

    Modules: Web > Page, Web > List, File > Filelist
    Tables (listing): pages, tt_content, sys_file
    Tables (modify): pages, tt_content
    Page types: Standard, Folder
    Allowed excludefields: [Select specific fields]
    
  5. Mounts and Workspaces:

    DB Mounts: Select accessible page trees
    File Mounts: Select accessible folders
    
  6. Assign group to users:

    • Edit backend user
    • General Tab → User Group
    • Select the group(s)

Individual permissions can be set on user, but groups are more maintainable.

Common Backend User Configurations

Content Editor

Permissions:

Modules: Page, List, Filelist
Tables (listing): pages, tt_content, sys_file_metadata
Tables (modify): pages, tt_content, sys_file_metadata
Excludefields: Hidden, Start/End time
DB Mounts: Content section (e.g., page ID 10)
File Mounts: /user_upload/

TSconfig:

# Limit page types
options.pageTree.doktypesToShowInNewPageDragArea = 1,4

# Hide modules
options.hideModules = web_layout, web_ts

# RTE configuration
RTE.default.preset = minimal

Administrator (Full Access)

Permissions:

Admin: Yes (checkbox on General tab)

Note: Admin users have full system access, bypassing all restrictions.

Translation Manager

Permissions:

Modules: Page, List
Allowed languages: German, French, Spanish
Tables (modify): pages, tt_content (all languages)
DB Mounts: All content pages

TSconfig:

# Show only translation fields
mod.web_layout.tt_content.translationView = 1

# Limit to specific languages
options.workspaces.considerWorkspaceLanguageRestrictions = 1

Removing Backend Users

  1. System → Backend Users
  2. Edit user
  3. General Tab → Check Disable
  4. Save

Advantages:

  • Preserves user history
  • Can be re-enabled
  • Maintains audit trail

Delete User (Permanent)

  1. System → Backend Users
  2. Find user in list
  3. Click Delete icon (trash can)
  4. Confirm deletion

Warning: This permanently removes the user and cannot be undone.

Via CLI

# Disable user
./vendor/bin/typo3 backend:user:disable john.doe

# Delete user
./vendor/bin/typo3 backend:user:delete john.doe

Frontend User Management

Accessing Frontend User Management

Web → List → Navigate to user storage folder (typically sys_folder)

Adding a Frontend User

Method 1: Via List Module

  1. Create User Storage Folder

    • Web → Page
    • Create Folder page type (doktype 254)
    • Title: "Website Users"
  2. Create Frontend User

    • Web → List
    • Select user storage folder
    • Click Create new record
    • Select Website User
  3. General Tab

    Username: customer1
    Password: [Set password]
    User Group: Customers
    Name: John Smith
    Email: john@example.com
    
  4. Extended Tab (Optional)

    Title: Mr.
    First Name: John
    Last Name: Smith
    Address: 123 Main St
    ZIP: 12345
    City: Springfield
    Country: USA
    Phone: +1-555-0123
    
  5. Save

Method 2: Frontend Registration Form

Using felogin or femanager extension:

Install femanager:

composer require in2code/femanager

Configure TypoScript:

plugin.tx_femanager {
    settings {
        # Storage PID for new users
        new.userGroup = 1
        new.redirectAfterRegistration = 15

        # Email confirmation
        new.confirmByUser = 1
        new.confirmByAdmin = 0
    }
}

Add plugin to page:

  1. Create page for registration
  2. Add Content ElementPluginfemanager: Registration
  3. Configure plugin settings

Frontend User Groups

Create Frontend User Group:

  1. Web → List → User storage folder
  2. Create new recordWebsite User Group
  3. Configure:
    Title: Premium Members
    Description: Full access to premium content
    Subgroup: [Optional] Base Members
    

Setting Frontend Access Restrictions

Page Access

  1. Web → Page → Select page
  2. Edit pageAccess Tab
  3. Configure:
    Visibility:
    - Show at login: Yes
    - Hide at login: No
    
    Access:
    - User Group: Premium Members
    

Content Element Access

  1. Web → Page → Edit content element
  2. Access Tab
    User Group: Premium Members
    

Frontend User Login

Install and Configure felogin:

composer require typo3/cms-felogin

Add Login Plugin:

  1. Create login page
  2. Add Content ElementPluginLogin Form
  3. Configure:
    User Storage Page: [Select folder with users]
    Redirect After Login: [Target page]
    Redirect After Logout: [Login page]
    Show logout form: Yes
    

TypoScript Configuration:

plugin.tx_felogin_pi1 {
    # Storage page
    storagePid = 123

    # Redirects
    redirectMode = groupLogin
    redirectPageLogin = 25
    redirectPageLogout = 1

    # Templates
    templateFile = EXT:your_sitepackage/Resources/Private/Templates/FELogin.html
}

Removing Frontend Users

Disable User

  1. Web → List → User storage folder
  2. Edit user
  3. Check Disable
  4. Save

Delete User

  1. Web → List → User storage folder
  2. Find user
  3. Click Delete icon
  4. Confirm deletion

Bulk Operations

Using List Module:

  1. Web → List → User storage folder
  2. Enable clipboard (top of list)
  3. Select multiple users
  4. Choose action: Delete, Disable, Move

User Session Management

View Active Sessions

System → Backend User Sessions

Shows:

  • Currently logged-in backend users
  • Session start time
  • Last activity
  • IP address

Force User Logout

CLI:

# Kill all backend sessions
./vendor/bin/typo3 backend:session:cleanup

# Specific user
./vendor/bin/typo3 backend:session:destroy john.doe

Database:

-- View backend sessions
SELECT * FROM be_sessions;

-- Delete specific session
DELETE FROM be_sessions WHERE ses_userid = 123;

Password Management

Password Reset (Backend)

Admin Reset

  1. System → Backend Users
  2. Edit user
  3. General Tab → Password
  4. Enter new password
  5. Save

User Self-Reset

Enable password reset link:

Install/Settings → Extension Configuration → backend

[BE][showRefreshLoginPopup] = 1

Add to login screen template.

Password Policies

LocalConfiguration.php:

'BE' => [
    'passwordPolicy' => [
        'minimumLength' => 12,
        'upperCaseCharacterRequired' => true,
        'lowerCaseCharacterRequired' => true,
        'digitCharacterRequired' => true,
        'specialCharacterRequired' => true,
    ],
],

Or via TypoScript for FE:

plugin.tx_femanager {
    settings {
        validation {
            password {
                minimumLength = 10
                upperCaseCharacterRequired = 1
                lowerCaseCharacterRequired = 1
                digitCharacterRequired = 1
            }
        }
    }
}

Security Best Practices

1. Use Strong Passwords

  • Minimum 12 characters
  • Mix of upper/lowercase, numbers, symbols
  • No dictionary words
  • Different for each user

2. Regular Account Reviews

  • Audit users quarterly
  • Remove/disable inactive accounts
  • Review permissions regularly

3. Limit Admin Accounts

  • Create admin accounts only when necessary
  • Use specific permissions instead
  • Separate accounts for different roles

4. Enable Two-Factor Authentication

Install TOTP extension:

composer require r3h6/typo3-oauth2-server

Configure in User Settings → Enable TOTP

5. Monitor User Activity

Enable logging:

'BE' => [
    'debug' => true,
    'loginSecurityLevel' => 'normal',
],
'SYS' => [
    'systemLog' => 1,
],

Check logs:

# Backend user login attempts
grep "backend user" var/log/typo3_*.log

Automation and Bulk Management

CLI User Creation

Create script: create_users.sh

#!/bin/bash

# Create backend user via CLI
./vendor/bin/typo3 backend:user:create \
    --username=john.doe \
    --password=SecurePass123! \
    --email=john@example.com \
    --real-name="John Doe" \
    --user-group=2

echo "User created successfully"

Import Users from CSV

Using Extension: ig_ldap_sso_auth or custom import script

Custom PHP Script:

<?php
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Core\DataHandling\DataHandler;

// Read CSV
$csv = array_map('str_getcsv', file('users.csv'));

foreach ($csv as $row) {
    $data = [
        'be_users' => [
            'NEW123' => [
                'pid' => 0,
                'username' => $row[0],
                'password' => password_hash($row[1], PASSWORD_DEFAULT),
                'email' => $row[2],
                'realName' => $row[3],
                'usergroup' => $row[4],
            ],
        ],
    ];

    $dataHandler = GeneralUtility::makeInstance(DataHandler::class);
    $dataHandler->start($data, []);
    $dataHandler->process_datamap();
}

Troubleshooting

User Cannot Login

Check:

  1. Username/password correct
  2. User not disabled
  3. User group assigned
  4. DB mounts configured
  5. No IP restrictions
  6. Session not expired

Debug:

# Check user in database
./vendor/bin/typo3 backend:user:list

# View user details
./vendor/bin/typo3 backend:user:show john.doe

User Cannot See Pages/Content

Check:

  1. DB mounts assigned
  2. User group has table permissions
  3. Page not hidden
  4. Access restrictions on page
  5. Start/end time not exceeded

Cannot Delete User

Possible reasons:

  • User is referenced in logs
  • User owns content
  • Database constraints

Solution: Disable instead of delete

Next Steps