Skip to content

Role Based Access Permission - Admin Portal #27

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
nitin27may opened this issue Apr 14, 2025 · 0 comments
Open

Role Based Access Permission - Admin Portal #27

nitin27may opened this issue Apr 14, 2025 · 0 comments
Assignees
Labels
in progress Work In Progress

Comments

@nitin27may
Copy link
Owner

RBAC Management UI Feature Request

Overview

The application currently has a comprehensive Role-Based Access Control (RBAC) system implemented in the backend but lacks a user interface for administrators to manage it. This feature request outlines the requirements for creating an Admin UI to manage all aspects of the RBAC system, including roles, users, pages, operations, permissions, and their mappings.

Business Value

Implementing this feature will:

  1. Empower administrators to manage access control without developer intervention
  2. Reduce maintenance overhead and operational costs
  3. Increase security through fine-grained access control management
  4. Improve audit capabilities by tracking who has what permissions
  5. Enable rapid onboarding of new users with appropriate access levels

Current State

The backend implementation already includes:

  • Data models for User, Role, Page, Operation, Permission, RolePermission, etc.
  • API endpoints for CRUD operations on these entities
  • Services for managing permissions and role mappings
  • Authentication and authorization middleware

However, the application currently lacks a UI for managing these entities and their relationships.

Feature Requirements

1. Role Management

  • View Roles: Display a list of all roles with searching, sorting, and pagination
  • Create Role: Form to create a new role with name and description
  • Edit Role: Ability to modify role details
  • Delete Role: Option to delete roles (with safeguards)
  • View Role Permissions: Ability to see what permissions are assigned to each role

2. User Role Mapping

  • Assign Roles to Users: Interface to assign one or multiple roles to users
  • View User Roles: Display what roles each user has
  • Modify User Roles: Add or remove roles from users
  • Bulk User Role Assignment: Ability to assign roles to multiple users at once

3. Page Management

  • View Pages: List of all system pages/resources with their URLs
  • Add Page: Create new page entries that can be protected
  • Edit Page: Modify page details
  • Delete Page: Remove pages from the system

4. Operation Management

  • View Operations: List of all possible operations (Create, Read, Update, Delete, etc.)
  • Add Operation: Create new operation types
  • Edit Operation: Modify operation details
  • Delete Operation: Remove operations

5. Permission Management (Page-Operation Mapping)

  • View Permissions: List all defined permissions (combinations of pages and operations)
  • Create Permission: Define new permissions by combining pages and operations
  • Edit Permission: Modify existing permissions
  • Delete Permission: Remove permissions

6. Role Permission Assignment

  • Assign Permissions to Roles: Interface to grant specific permissions to roles
  • View Role Permissions: Matrix view of roles and their permissions
  • Bulk Permission Assignment: Tools to efficiently assign multiple permissions
  • Permission Inheritance View: Visualization of how permissions flow through roles to users

7. Activity Logging and Auditing

  • View RBAC Changes: Log of all changes to roles, permissions, and assignments
  • Filter and Search: Tools to find specific changes
  • Export Audit Logs: Export capabilities for compliance purposes

UI Mockups and Components

Role Management

The Roles section should include:

  • Table/grid view of roles with filtering and sorting
  • Role creation/edit forms
  • Permission assignment interface for each role
  • Confirmation dialogs for deletion

User-Role Management

The User Role interface should include:

  • User selection with search
  • Multi-select role assignment
  • Role assignment history
  • Visual indication of inherited permissions

Permission Management

The Permissions section should include:

  • Page and Operation selection dropdowns
  • Matrix view of Page-Operation combinations
  • Role assignment checkboxes for each permission

Considerations and Challenges

  1. Complexity Management: The UI must simplify the complex relationships between RBAC entities
  2. Self-Service Restrictions: Preventing administrators from removing their own access
  3. Visualization: Creating intuitive visual representations of permission inheritance

Success Criteria

  1. Administrators can manage all aspects of RBAC without developer intervention
  2. The system prevents invalid or insecure permission configurations
  3. All RBAC changes are properly audited
  4. The UI remains responsive even with large numbers of users, roles, and permissions

Dependencies

  1. Existing backend RBAC APIs must be fully implemented and tested
  2. Authentication system must provide user context for permission checks
  3. Angular 19 framework with Material components

Conclusion

Implementing a comprehensive RBAC Management UI will significantly enhance the administrative capabilities of the application. By leveraging the existing backend infrastructure and following the established architectural patterns, this feature will provide administrators with powerful tools to manage access control across the system.

@nitin27may nitin27may self-assigned this Apr 14, 2025
@nitin27may nitin27may added enhancement New feature or request in progress Work In Progress and removed enhancement New feature or request labels Apr 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in progress Work In Progress
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant