Skip to main content

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