User Levels
Dispatcharr defines three user levels with different capabilities:Streamer
Level 0 - Streaming-only access
Standard User
Level 1 - Standard features
Admin
Level 10 - Full system access
User Model
Dispatcharr extends Django’sAbstractUser with custom fields:
Core Fields
Inherited from Django’s AbstractUser:Unique username for authentication
User email address
Hashed password (managed by Django auth system)
User’s first name
User’s last name
Whether user account is active. Inactive users cannot log in.
Django admin panel access
Full Django permissions (bypasses all checks)
Dispatcharr Custom Fields
Permission level controlling access to features:
| Value | Level | Description |
|---|---|---|
0 | Streamer | Streaming-only access, no configuration |
1 | Standard | Regular user with standard features |
10 | Admin | Full administrative access |
Optional API key for programmatic access. Used for:
- M3U playlist downloads
- EPG XML access
- API authentication
Associated channel profiles. Controls which channels user can access.References:
dispatcharr_channels.ChannelProfileAvatar configuration data:
Extensible field for custom user metadata:
- Preferences
- UI settings
- Integration tokens
- Custom attributes
Creating Users
Set User Level
Choose appropriate permission level:
- Streamer (0) - Viewing only
- Standard User (1) - Normal operations
- Admin (10) - Full control
User Level Permissions
Streamer (Level 0)
Streamer Capabilities
Streamer Capabilities
Read-only streaming access:Allowed:
- Watch assigned channels
- View EPG data
- Access personal playlists
- Modify any settings
- Access admin panel
- Create/edit channels
- Configure sources
Standard User (Level 1)
Standard User Capabilities
Standard User Capabilities
Regular user features:Allowed:
- All Streamer permissions
- Manage personal favorites
- Create custom playlists
- Schedule recordings (if enabled)
- View system status
- System configuration
- User management
- M3U/EPG source management
- Global settings
Admin (Level 10)
Admin Capabilities
Admin Capabilities
Full system access:Allowed:
- All Standard User permissions
- Configure M3U sources
- Configure EPG sources
- Manage stream profiles
- User management
- System settings
- Access all channels
- View logs and diagnostics
Superuser Creation
When creating superusers via Django management commands, the custom manager automatically sets user_level:CustomUserManager overrides the default behavior:
All superusers are automatically assigned Admin level (10) permissions.
API Key Authentication
API keys enable programmatic access to Dispatcharr resources:Generating API Keys
Using API Keys
Channel Profile Assignment
Control channel access per user via Many-to-Many relationship:Admin users (level 10) typically have access to all channel profiles regardless of explicit assignments.
Groups and Permissions
Dispatcharr supports Django’s built-in groups and permissions system:Group Management
Permission Management
The
get_permissions() method combines:- Direct user permissions (
user.user_permissions) - Group permissions (
Permission.objects.filter(group__user=user))
Custom Properties
Store arbitrary user data in thecustom_properties JSON field:
Avatar Configuration
Configure user avatars viaavatar_config JSON field:
gravatar- Gravatar serviceinitials- Generated from nameupload- Uploaded imageurl- External image URL
Example User Configurations
Best Practices
User Level Assignment
User Level Assignment
- Use Streamer (0) for view-only accounts (family members, guests)
- Use Standard (1) for regular users who need DVR/favorites
- Use Admin (10) sparingly - only for trusted administrators
- Don’t grant unnecessary permissions
API Key Security
API Key Security
- Generate strong, random API keys
- Rotate keys periodically
- Use different keys for different integrations
- Revoke keys immediately if compromised
- Don’t share keys in public repositories
Channel Profile Strategy
Channel Profile Strategy
- Create profiles based on content categories
- Assign profiles based on user tier/subscription
- Use profiles to enforce parental controls
- Audit profile assignments regularly
Custom Properties Usage
Custom Properties Usage
- Keep JSON structure consistent across users
- Document custom property schema
- Validate data before saving
- Use for application-specific data only
- Don’t store sensitive data unencrypted