API - Perfiles y Menús
Visión General
Endpoints para la gestión del sistema de perfiles de usuario y menús dinámicos. Controla qué usuarios pueden acceder a qué funcionalidades de la plataforma.
Perfiles de Usuario
GET /profiles/all
Obtener todos los perfiles disponibles.
Response Success (200)
{
"success": true,
"data": [
{
"id": 1,
"profile_name": "Administrador",
"description": "Acceso completo al sistema",
"permissions": {
"users": ["create", "read", "update", "delete"],
"properties": ["create", "read", "update", "delete"],
"contracts": ["create", "read", "update", "delete"]
},
"active": true,
"created_at": "2024-01-15T10:30:00Z"
},
{
"id": 2,
"profile_name": "Propietario",
"description": "Gestión de propiedades propias",
"permissions": {
"properties": ["create", "read", "update"],
"contracts": ["create", "read"]
},
"active": true
}
]
}
GET /profiles/active
Obtener solo perfiles activos.
Response Success (200)
{
"success": true,
"data": [
{
"id": 1,
"profile_name": "Administrador",
"description": "Acceso completo al sistema",
"active": true
}
]
}
POST /profile/create
Crear nuevo perfil.
Request
{
"profile_name": "Agente Inmobiliario",
"description": "Gestión de propiedades asignadas",
"permissions": {
"properties": ["read", "update"],
"contracts": ["create", "read"]
},
"active": true
}
Response Success (201)
{
"success": true,
"message": "Perfil creado exitosamente",
"data": {
"id": 4,
"profile_name": "Agente Inmobiliario",
"active": true
}
}
PUT /profile/edit
Editar perfil existente.
Request
{
"profile_id": 4,
"description": "Gestión avanzada de propiedades asignadas",
"permissions": {
"properties": ["create", "read", "update"],
"contracts": ["create", "read", "update"]
}
}
Response Success (200)
{
"success": true,
"message": "Perfil actualizado exitosamente"
}
Sistema de Menús
GET /menu/items
Obtener todos los elementos del menú.
Response Success (200)
{
"success": true,
"data": [
{
"id": 1,
"menu_title": "Dashboard",
"path": "/",
"icon": "MdHome",
"order_index": 1,
"active": true,
"permissions_required": ""
},
{
"id": 2,
"menu_title": "Propiedades",
"path": "/properties",
"icon": "MdHome",
"order_index": 2,
"active": true,
"permissions_required": "propietario,administrador"
}
]
}
POST /menu/item/create
Crear nuevo elemento de menú.
Request
{
"menu_title": "Reportes",
"path": "/reports",
"icon": "MdAnalytics",
"order_index": 10,
"permissions_required": "administrador",
"active": true
}
Response Success (201)
{
"success": true,
"message": "Elemento de menú creado exitosamente",
"data": {
"id": 15,
"menu_title": "Reportes",
"path": "/reports"
}
}
PUT /menu/item/update/[id]
Actualizar elemento de menú.
Request
{
"menu_title": "Reportes Avanzados",
"order_index": 5,
"permissions_required": "administrador,agente"
}
Response Success (200)
{
"success": true,
"message": "Elemento de menú actualizado exitosamente"
}
DELETE /menu/item/delete/[id]
Eliminar elemento de menú.
Response Success (200)
{
"success": true,
"message": "Elemento de menú eliminado exitosamente"
}
Asignación de Menús a Perfiles
GET /menu/profile/items/[profile_id]
Obtener elementos de menú por perfil.
Response Success (200)
{
"success": true,
"data": [
{
"id": 1,
"menu_title": "Dashboard",
"path": "/",
"icon": "MdHome",
"permissions_required": ""
},
{
"id": 2,
"menu_title": "Mis Propiedades",
"path": "/properties",
"icon": "MdHome",
"permissions_required": "propietario"
}
]
}
POST /menu/profile/assign/[profile_id]
Asignar menús a un perfil.
Request
{
"menu_ids": [1, 2, 3, 5, 8],
"replace_existing": true
}
Response Success (200)
{
"success": true,
"message": "Menús asignados exitosamente al perfil",
"data": {
"profile_id": 2,
"assigned_menus": 5,
"total_menus": 8
}
}
Iconos Disponibles
Material Design Icons
- MdHome, MdPerson, MdSettings, MdSpaceDashboard
- MdMenu, MdList, MdGridView, MdGroup
- MdAccountCircle, MdBuild, MdTune, MdSecurity
- MdAnalytics, MdBarChart, MdPieChart, MdTimeline
- MdLocationOn, MdMap, MdNavigation, MdPlace
FontAwesome Icons
- FaList, FaPlus, FaUserCog, FaBuilding
- FaFileContract, FaUsers, FaCog, FaHome
- FaChartBar, FaCalendarAlt
Permisos del Sistema
Niveles de Permiso
- create: Crear nuevos recursos
- read: Leer/consultar recursos
- update: Actualizar recursos existentes
- delete: Eliminar recursos
Recursos Protegidos
- users: Gestión de usuarios
- properties: Gestión de propiedades
- contracts: Gestión de contratos
- payments: Gestión de pagos
- reports: Acceso a reportes
- settings: Configuración del sistema