Understanding users and roles
Users are individual accounts that can log in to your Halo site. Each user has:- A unique username and email address
- Personal profile information
- One or more assigned roles
- A set of permissions (policy rules)
- Access to specific resources and actions
- Can be assigned to multiple users
Halo uses a role-based access control (RBAC) system. Instead of assigning permissions directly to users, you assign roles, and those roles contain the permissions.
Managing users
Creating a user
Enter user details
Fill in the required information:
- Username: Unique identifier for login (cannot be changed later)
- Display Name: The name shown publicly on the site
- Email: Valid email address for notifications and password recovery
- Password: Initial password (user can change this later)
Configure profile
Add optional profile information:
- Avatar: Upload a profile picture
- Phone: Contact phone number
- Bio: Short biography or description
Set account status
Choose whether the account is:
- Active: User can log in and access assigned resources
- Disabled: User cannot log in
New users receive an email notification with their account details. Make sure your email settings are configured correctly in Settings > Email.
Editing user information
To update a user’s profile or settings:Find the user
Navigate to Users and locate the user you want to edit. Use the search bar to find users quickly.
Resetting user passwords
If a user forgets their password:Disabling user accounts
To temporarily prevent a user from logging in:Deleting users
To permanently remove a user account:Reassign content
Before deleting, reassign the user’s posts, pages, and other content to another user.
Managing roles
Understanding default roles
Halo includes several built-in roles:- Super Administrator: Full access to all features and settings
- Administrator: Can manage content, users, and most settings
- Editor: Can publish and manage all content
- Author: Can create and publish their own content
- Contributor: Can create content but cannot publish
- Subscriber: Can only manage their own profile and read content
Built-in roles are system-reserved and cannot be deleted, but you can create custom roles with specific permissions tailored to your needs.
Creating a custom role
Enter role details
Fill in the required information:
- Name: Internal identifier for the role (e.g., “marketing-manager”)
- Display Name: Human-readable name (e.g., “Marketing Manager”)
Define permissions
Add policy rules to specify what this role can do:
- API Groups: Which API groups the role can access
- Resources: Which resource types (posts, pages, users, etc.)
- Verbs: What actions (create, read, update, delete, list)
- Resource Names: (Optional) Specific resource instances
Set role dependencies
(Optional) Specify if this role depends on other roles or aggregates permissions from other roles.
Creating custom roles requires understanding Halo’s permission model. Incorrectly configured roles can lead to security issues or prevent users from accessing needed features.
Understanding policy rules
Policy rules define permissions in Halo. Each rule specifies:- API Groups: The API group containing the resources (e.g., “content.halo.run”, "")
- Resources: The resource types (e.g., “posts”, “pages”, “users”)
- Verbs: Allowed actions (e.g., “get”, “list”, “create”, “update”, “delete”)
- Resource Names: (Optional) Specific resource instances to restrict access to
Editing roles
To modify an existing custom role:Deleting custom roles
To remove a custom role:System-reserved roles (built-in roles) cannot be deleted. You can only delete custom roles you’ve created.
Assigning roles to users
You can assign multiple roles to a single user:When a user has multiple roles, they receive the combined permissions of all assigned roles. Halo automatically aggregates permissions from all roles.
Understanding role aggregation
Halo supports role aggregation, where roles can inherit permissions from other roles:- Aggregate roles: Automatically include permissions from roles with specific labels
- Role dependencies: Explicitly specify which roles this role depends on
Email verification
Users can be required to verify their email addresses:User registration
When a user registers or has their email changed, they receive a verification email.
You can configure email verification requirements in Settings > Security. Some features may require verified email addresses for access.
Two-factor authentication (2FA)
Users can enable 2FA for enhanced security:Scan QR code
Using an authenticator app (Google Authenticator, Authy, etc.), the user scans the displayed QR code.
Hidden users
Some users may be marked as hidden:- Hidden users don’t appear in public author lists or contributor pages
- They can still log in and perform their assigned tasks
- This is useful for service accounts or internal users
Best practices for user and role management
- Follow principle of least privilege: Give users only the permissions they need
- Use roles, not direct permissions: Always assign permissions through roles, not directly to users
- Regular audits: Periodically review user accounts and role assignments
- Remove inactive accounts: Disable or delete accounts that are no longer needed
- Document custom roles: Keep notes about what each custom role is for
- Test new roles: Create test users to verify role permissions before assigning to real users
- Require strong passwords: Enforce password complexity requirements
- Enable 2FA for admins: Require two-factor authentication for users with administrative access
- Monitor user activity: Regularly review logs for suspicious user activity
- Maintain role hierarchy: Keep your role structure simple and easy to understand