@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
JavaScript
"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;