UNPKG

@mamoorali295/rbac

Version:

Complete RBAC (Role-Based Access Control) system for Node.js with Express middleware, NestJS integration, GraphQL support, MongoDB & PostgreSQL support, modern admin dashboard, TypeScript support, and dynamic permission management

101 lines (94 loc) 4.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDashboardView = void 0; const layout_1 = require("./layout"); const getDashboardView = (stats) => { var _a, _b, _c, _d; const content = ` <div style="margin-bottom: 32px;"> <h2 style="color: #2d3748; font-size: 28px; margin-bottom: 8px;">Welcome to RBAC Admin</h2> <p style="color: #718096; font-size: 16px;">Manage your application's role-based access control system from here.</p> </div> <!-- Stats Grid --> <div class="stats-grid"> <div class="stat-card"> <div class="stat-value">${(_a = stats === null || stats === void 0 ? void 0 : stats.users) !== null && _a !== void 0 ? _a : 0}</div> <div class="stat-label">👥 Total Users</div> </div> <div class="stat-card"> <div class="stat-value">${(_b = stats === null || stats === void 0 ? void 0 : stats.roles) !== null && _b !== void 0 ? _b : 0}</div> <div class="stat-label">🎭 Active Roles</div> </div> <div class="stat-card"> <div class="stat-value">${(_c = stats === null || stats === void 0 ? void 0 : stats.features) !== null && _c !== void 0 ? _c : 0}</div> <div class="stat-label">⚙️ Features</div> </div> <div class="stat-card"> <div class="stat-value">${(_d = stats === null || stats === void 0 ? void 0 : stats.permissions) !== null && _d !== void 0 ? _d : 5}</div> <div class="stat-label">🔐 Permissions</div> </div> </div> <!-- Management Cards --> <div class="content-card" style="margin-bottom: 24px;"> <div class="content-card-header"> <div class="content-card-title">Management Tools</div> </div> <div class="content-card-body"> <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px;"> <div class="card"> <div class="card-header"> <h4 style="display: flex; align-items: center; gap: 8px;">👥 Users</h4> </div> <div class="card-body"> <p style="color: #718096; margin-bottom: 16px;">Manage user registrations and role assignments</p> <a href="/rbac-admin/users" class="btn">Manage Users</a> </div> </div> <div class="card"> <div class="card-header"> <h4 style="display: flex; align-items: center; gap: 8px;">🎭 Roles</h4> </div> <div class="card-body"> <p style="color: #718096; margin-bottom: 16px;">Create and manage user roles with feature permissions</p> <a href="/rbac-admin/roles" class="btn">Manage Roles</a> </div> </div> <div class="card"> <div class="card-header"> <h4 style="display: flex; align-items: center; gap: 8px;">⚙️ Features</h4> </div> <div class="card-body"> <p style="color: #718096; margin-bottom: 16px;">Define application features for permission control</p> <a href="/rbac-admin/features" class="btn">Manage Features</a> </div> </div> <div class="card"> <div class="card-header"> <h4 style="display: flex; align-items: center; gap: 8px;">🔐 Permissions</h4> </div> <div class="card-body"> <p style="color: #718096; margin-bottom: 16px;">Configure granular permissions (read, create, update, delete)</p> <a href="/rbac-admin/permissions" class="btn">Manage Permissions</a> </div> </div> </div> </div> </div> <!-- Quick Actions --> <div class="content-card"> <div class="content-card-header"> <div class="content-card-title">Quick Actions</div> </div> <div class="content-card-body"> <div style="display: flex; gap: 12px; flex-wrap: wrap;"> <a href="/rbac-admin/users" class="btn btn-success">➕ Add New User</a> <a href="/rbac-admin/roles" class="btn btn-success">🎭 Create New Role</a> <a href="/rbac-admin/features" class="btn btn-success">⚙️ Create New Feature</a> <a href="/rbac-admin/permissions" class="btn btn-secondary">🔐 Manage Permissions</a> </div> </div> </div> `; return (0, layout_1.getBaseLayout)('Dashboard', content, '/'); }; exports.getDashboardView = getDashboardView;