Files
plantillas-proyectos/frontend/src/routes/dashboard/admin/+layout.svelte
Galindo97 12f5164054 feat: Implement admin role and permission management APIs
- Added centralized API exports for admin functionalities.
- Created permissions API for managing system permissions, including listing, creating, updating, and deleting permissions.
- Developed role-permissions API for managing permissions assigned to roles, including listing, assigning, and removing permissions.
- Implemented roles API for managing company roles, including listing, creating, updating, and deleting roles.
- Created user-permissions API for managing individual user permissions, including assigning and revoking permissions.
- Developed user-roles API for managing user roles, including listing roles assigned to users and assigning/removing roles.
- Added utility functions for permission checks and route guards based on user permissions.
- Implemented admin dashboard layout and roles management page with UI components for role and permission management.
2026-01-15 18:00:05 -06:00

37 lines
956 B
Svelte

<script lang="ts">
import type { Snippet } from 'svelte';
import { page } from '$app/stores';
import { Button } from '$lib/components/ui/button';
import { Shield, Key, Users, UserCog } from 'lucide-svelte';
let { children }: { children: Snippet } = $props();
const adminRoutes = [
{ name: 'Roles', path: '/dashboard/admin/roles', icon: Shield }
];
const currentPath = $derived($page.url.pathname);
</script>
<div class="min-h-screen bg-background">
<div class="border-b">
<div class="container mx-auto px-4">
<div class="flex items-center gap-2 py-4 overflow-x-auto">
{#each adminRoutes as route}
{@const Icon = route.icon}
<Button
variant={currentPath === route.path ? 'default' : 'ghost'}
href={route.path}
class="flex items-center gap-2 whitespace-nowrap"
>
<Icon class="h-4 w-4" />
{route.name}
</Button>
{/each}
</div>
</div>
</div>
{@render children()}
</div>