import { cookies } from 'next/headers';
import { redirect } from 'next/navigation';
import { BACKEND_TOKEN_COOKIE_NAME, SESSION_COOKIE_NAME, getAuthenticatedHome, parseSessionToken } from '@/lib/session';
import { sanitizeUserForClient } from '@/lib/auth';
import { canManageUsers } from '@/lib/users';
import { DashboardWorkspace } from '@/components/dashboard/DashboardWorkspace';
import { UserManagement } from '@/components/dashboard/UserManagement';

export default async function UsersPage() {
  const jar = cookies();
  const user = await parseSessionToken(jar.get(SESSION_COOKIE_NAME)?.value, jar.get(BACKEND_TOKEN_COOKIE_NAME)?.value);
  if (!user) redirect('/?screen=get_started');
  if (!canManageUsers(user)) redirect(getAuthenticatedHome(user));
  return <DashboardWorkspace user={sanitizeUserForClient(user)} activeView="USERS">
    <UserManagement />
  </DashboardWorkspace>;
}
