From c6ce93c56427ce17ab5f8c76d0aefe59393685db Mon Sep 17 00:00:00 2001 From: TroodonEnjoyer Date: Thu, 18 Jun 2026 13:45:57 +0200 Subject: [PATCH] yo --- src/app/(dashboard)/users/page.tsx | 2 +- src/components/layout/topbar.tsx | 6 +++--- src/components/users/user-form-dialog.tsx | 8 +++++--- src/data/users.ts | 16 ++++++++-------- src/lib/auth.ts | 6 ++---- src/types/index.ts | 2 +- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/app/(dashboard)/users/page.tsx b/src/app/(dashboard)/users/page.tsx index c218263..48cf43f 100644 --- a/src/app/(dashboard)/users/page.tsx +++ b/src/app/(dashboard)/users/page.tsx @@ -63,7 +63,7 @@ export default function UsersPage() {
-

{users.filter((u) => u.role === "sales").length}

+

{users.filter((u) => u.role === "sales_user").length}

Sales

diff --git a/src/components/layout/topbar.tsx b/src/components/layout/topbar.tsx index 93d35ac..77624c2 100644 --- a/src/components/layout/topbar.tsx +++ b/src/components/layout/topbar.tsx @@ -41,7 +41,7 @@ export function Topbar({ onMenuClick }: TopbarProps) { useEffect(() => { setMounted(true) }, []) if (!user) return null - const initials = (user.firstName[0] + user.lastName[0]).toUpperCase() + const initials = user.name.split(" ").map((n) => n[0]).join("") return (
@@ -119,13 +119,13 @@ export function Topbar({ onMenuClick }: TopbarProps) { {initials} - {user.firstName} {user.lastName} + {user.name}
-

{user.firstName} {user.lastName}

+

{user.name}

{user.email}

{user.role}
diff --git a/src/components/users/user-form-dialog.tsx b/src/components/users/user-form-dialog.tsx index 5965dca..1e7263e 100644 --- a/src/components/users/user-form-dialog.tsx +++ b/src/components/users/user-form-dialog.tsx @@ -55,7 +55,7 @@ export function UserFormDialog({ open, onOpenChange, user }: UserFormDialogProps defaultValues: { name: "", email: "", - role: "sales", + role: "sales_user", active: true, }, }) @@ -69,7 +69,7 @@ export function UserFormDialog({ open, onOpenChange, user }: UserFormDialogProps active: user.active, }) } else { - form.reset({ name: "", email: "", role: "sales", active: true }) + form.reset({ name: "", email: "", role: "sales_user", active: true }) } }, [user, form]) @@ -130,8 +130,10 @@ export function UserFormDialog({ open, onOpenChange, user }: UserFormDialogProps + Super Admin Admin - Sales + Sales + Developer diff --git a/src/data/users.ts b/src/data/users.ts index 3f244a4..b4924a1 100644 --- a/src/data/users.ts +++ b/src/data/users.ts @@ -1,4 +1,4 @@ -import { User } from "@/types" +import { User, UserRole } from "@/types" export const users: User[] = [ { @@ -14,7 +14,7 @@ export const users: User[] = [ id: "u2", name: "Marcus Johnson", email: "marcus@coastalit.com", - role: "sales", + role: "sales_user", active: true, avatar: "https://ui-avatars.com/api/?name=Marcus+Johnson&background=2563eb&color=fff&size=128", createdAt: "2025-02-01T09:00:00Z", @@ -23,7 +23,7 @@ export const users: User[] = [ id: "u3", name: "Emily Rodriguez", email: "emily@coastalit.com", - role: "sales", + role: "sales_user", active: true, avatar: "https://ui-avatars.com/api/?name=Emily+Rodriguez&background=3b82f6&color=fff&size=128", createdAt: "2025-02-15T10:00:00Z", @@ -32,7 +32,7 @@ export const users: User[] = [ id: "u4", name: "David Kim", email: "david@coastalit.com", - role: "sales", + role: "sales_user", active: true, avatar: "https://ui-avatars.com/api/?name=David+Kim&background=60a5fa&color=fff&size=128", createdAt: "2025-03-01T08:00:00Z", @@ -41,7 +41,7 @@ export const users: User[] = [ id: "u5", name: "Jessica Patel", email: "jessica@coastalit.com", - role: "sales", + role: "sales_user", active: false, avatar: "https://ui-avatars.com/api/?name=Jessica+Patel&background=93c5fd&color=fff&size=128", createdAt: "2025-03-10T09:00:00Z", @@ -50,7 +50,7 @@ export const users: User[] = [ id: "u6", name: "Alex Thompson", email: "alex@coastalit.com", - role: "sales", + role: "sales_user", active: true, avatar: "https://ui-avatars.com/api/?name=Alex+Thompson&background=1d4ed8&color=fff&size=128", createdAt: "2025-04-01T08:00:00Z", @@ -59,7 +59,7 @@ export const users: User[] = [ id: "u7", name: "Rachel Williams", email: "rachel@coastalit.com", - role: "sales", + role: "sales_user", active: true, avatar: "https://ui-avatars.com/api/?name=Rachel+Williams&background=2563eb&color=fff&size=128", createdAt: "2025-04-15T10:00:00Z", @@ -79,7 +79,7 @@ export function getUserById(id: string): User | undefined { return users.find((u) => u.id === id) } -export function getUsersByRole(role: "admin" | "sales"): User[] { +export function getUsersByRole(role: UserRole): User[] { return users.filter((u) => u.role === role) } diff --git a/src/lib/auth.ts b/src/lib/auth.ts index 5fe6525..07c74ab 100644 --- a/src/lib/auth.ts +++ b/src/lib/auth.ts @@ -156,9 +156,7 @@ export async function isAccountLocked(user: { } export function mapDbUserToSessionUser(dbUser: Record): SessionUser { - const roleName = dbUser.role_name as string - const mappedRole = - roleName === "SUPER_ADMIN" || roleName === "ADMIN" ? "admin" : "sales" + const roleName = (dbUser.role_name as string).toLowerCase() return { id: dbUser.id as string, @@ -166,7 +164,7 @@ export function mapDbUserToSessionUser(dbUser: Record): Session email: dbUser.email as string, firstName: dbUser.first_name as string, lastName: dbUser.last_name as string, - role: mappedRole, + role: roleName, avatar: `https://ui-avatars.com/api/?name=${encodeURIComponent( `${dbUser.first_name}+${dbUser.last_name}` )}&background=1d4ed8&color=fff&size=128`, diff --git a/src/types/index.ts b/src/types/index.ts index 30dac64..a219ecb 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,5 +1,5 @@ export type LeadStatus = "open" | "contacted" | "pending" | "closed" | "ignored" -export type UserRole = "admin" | "sales" +export type UserRole = "super_admin" | "admin" | "sales_user" | "developer" export interface User { id: string