Skip to main content

Role & Permission Management

ADMIN Intermediate

Configure roles and permissions in EZ-Console.

Overview​

EZ-Console uses Role-Based Access Control (RBAC) for authorization. Roles are collections of permissions that can be assigned to users. This guide covers managing roles and permissions through the admin interface.

Accessing Role Management​

Navigate to: Authorization → Roles

Understanding Permissions​

Permission Structure​

Permissions follow a hierarchical structure:

Module:Resource:Action

Examples:

  • product:view - View products
  • product:create - Create products
  • product:update - Update products
  • product:delete - Delete products
  • user:list - List users
  • user:create - Create users
  • system:settings:view - View system settings
  • system:settings:update - Update system settings

Permission Groups​

Permissions are organized into groups:

  • Product Management: Product-related permissions
  • User Management: User-related permissions
  • System Settings: System configuration permissions
  • Authorization: Role and permission management

Role List​

Viewing Roles​

The role list displays:

  • Role name
  • Description
  • Number of permissions
  • Number of users
  • Created date

Searching Roles​

  • Search by role name or description
  • Filter by permission groups

Creating Roles​

Create New Role​

  1. Click Create Role button
  2. Fill in role information:
    • Name: Role name (required, unique)
    • Description: Role description (optional)
  3. Click Next to assign permissions
  4. Select permissions to assign:
    • Select entire permission groups
    • Or select individual permissions
  5. Click Save

Permission Assignment​

When creating or editing a role:

  • Select All: Select all permissions in a group
  • Individual Selection: Select specific permissions
  • Search: Search for specific permissions

Editing Roles​

Update Role Information​

  1. Click on a role in the list
  2. Click Edit button
  3. Update role name or description
  4. Click Save

Modify Permissions​

  1. Open role detail page
  2. Go to Permissions tab
  3. Add or remove permissions
  4. Click Save

Assigning Roles to Users​

From Role Page​

  1. Open role detail page
  2. Go to Users tab
  3. Click Assign Users
  4. Select users to assign
  5. Click Save

From User Page​

  1. Open user detail page
  2. Go to Roles tab
  3. Click Assign Roles
  4. Select roles to assign
  5. Click Save

Role Hierarchy​

Built-in Roles​

EZ-Console includes built-in roles:

  • Administrator: Full system access
  • User: Basic user permissions

Custom Roles​

Create custom roles for specific use cases:

  • Manager: Management-level permissions
  • Editor: Content editing permissions
  • Viewer: Read-only permissions

Permission Inheritance​

Role Permissions​

Users inherit permissions from all assigned roles. If a user has multiple roles, they have the union of all permissions.

Example:

  • Role A: product:view, product:create
  • Role B: product:update, product:delete
  • User with both roles: All four permissions

Best Practices​

1. Principle of Least Privilege​

Assign only the minimum permissions needed:

  • ✅ Good: Assign specific permissions
  • ❌ Bad: Assign all permissions "just in case"

2. Use Role Groups​

Organize permissions into logical groups:

  • Product Management
  • User Management
  • System Administration

3. Regular Review​

Regularly review roles and permissions:

  • Remove unused roles
  • Update permissions as needed
  • Audit user role assignments

4. Document Roles​

Document the purpose of each role:

  • What the role is for
  • Who should have it
  • What permissions it includes

Permission Testing​

Check User Permissions​

  1. Open user detail page
  2. Go to Roles tab
  3. View all assigned roles
  4. See effective permissions

Test Permission​

Use the PermissionGuard component or the usePermission hook in your React app (permission codes must match what the backend registers, e.g. authorization:user:create):

import { PermissionGuard } from 'ez-console';

<PermissionGuard permission="product:create">
<Button>Create Product</Button>
</PermissionGuard>

Developer reference: React hooks & context → usePermission.


Need help? Ask in GitHub Discussions.