feat: implement super_admin role, add swap station user, and update login routing logic

This commit is contained in:
sazzadulalambd
2026-05-07 16:14:33 +06:00
parent 9687a71570
commit 7846cacc9d
2 changed files with 58 additions and 54 deletions

View File

@@ -6,11 +6,12 @@ import { users } from '@/data/mockData';
import { Zap, ArrowRight, Bike, Wallet, Shield, Users, Calculator, Store, Truck } from 'lucide-react';
const demoUsers = [
{ email: 'superadmin@jaiben.com', role: 'admin', label: 'Super Admin', icon: Shield, color: 'bg-accent' },
{ email: 'admin@jaiben.com', role: 'manager', label: 'Admin Manager', icon: Users, color: 'bg-blue-500' },
{ email: 'superadmin@jaiben.com', role: 'super_admin', label: 'Super Admin', icon: Shield, color: 'bg-accent' },
{ email: 'admin@jaiben.com', role: 'admin', label: 'Admin Manager', icon: Users, color: 'bg-blue-500' },
{ email: 'staff@jaiben.com', role: 'staff', label: 'Front Desk', icon: Users, color: 'bg-purple-500' },
{ email: 'accountant@jaiben.com', role: 'accountant', label: 'Accountant', icon: Calculator, color: 'bg-green-500' },
{ email: 'investor@email.com', role: 'investor', label: 'Investor', icon: Wallet, color: 'bg-amber-500' },
{ email: 'swap@jaiben.com', role: 'swap-station', label: 'Swap Station', icon: Zap, color: 'bg-purple-500' },
];
export default function LoginPage() {
@@ -34,14 +35,15 @@ export default function LoginPage() {
sessionStorage.setItem('userRole', user.role);
sessionStorage.setItem('userName', user.name);
switch (user.role) {
switch (user.role) {
case 'super_admin':
case 'admin':
case 'manager':
case 'staff':
router.push('/admin');
break;
case 'accountant':
router.push('/admin');
router.push('/admin/accounting');
break;
case 'investor':
router.push('/investor');
@@ -56,33 +58,34 @@ export default function LoginPage() {
router.push('/merchant');
break;
default:
router.push('/');
router.push('/login');
}
} else {
setError('Invalid email or password. Try demo123');
}
setLoading(false);
};
const handleQuickLogin = async (userEmail: string) => {
setLoading(true);
await new Promise(resolve => setTimeout(resolve, 500));
const user = users.find(u => u.email === userEmail);
if (user) {
sessionStorage.setItem('authToken', 'demo-token');
sessionStorage.setItem('userRole', user.role);
sessionStorage.setItem('userName', user.name);
switch (user.role) {
case 'super_admin':
case 'admin':
case 'manager':
case 'staff':
router.push('/admin');
break;
case 'accountant':
router.push('/admin');
router.push('/admin/accounting');
break;
case 'investor':
router.push('/investor');
@@ -140,7 +143,7 @@ export default function LoginPage() {
<div>
<label htmlFor="password" className="block text-sm font-medium text-slate-300 mb-2">
Password
Password <span className="text-slate-500 text-xs">(demo: demo123)</span>
</label>
<input
type="password"