diff --git a/000-default.conf b/000-default.conf
old mode 100644
new mode 100755
diff --git a/Dockerfile b/Dockerfile
old mode 100644
new mode 100755
diff --git a/apache2.conf b/apache2.conf
old mode 100644
new mode 100755
diff --git a/config.yaml b/config.yaml
old mode 100644
new mode 100755
diff --git a/docker-compose.yml b/docker-compose.yml
old mode 100644
new mode 100755
diff --git a/docker/contenedor-ibiza.conf b/docker/contenedor-ibiza.conf
old mode 100644
new mode 100755
diff --git a/public/admin/asignaciones_completo.php b/public/admin/asignaciones_completo.php
index 91a9bcc..af8a47d 100755
--- a/public/admin/asignaciones_completo.php
+++ b/public/admin/asignaciones_completo.php
@@ -31,28 +31,57 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
} else {
$action = $_POST['action'] ?? '';
- if ($action === 'asignar') {
- $userId = $_POST['user_id'] ?? 0;
- $semana = $_POST['semana'] ?? '';
+ if ($auth->isAdmin()) {
+ if ($action === 'asignar') {
+ $userId = $_POST['user_id'] ?? 0;
+ $semana = $_POST['semana'] ?? '';
- if ($userId && $semana) {
- $asignacionModel->asignar($userId, $semana);
- $message = 'Turno asignado correctamente';
- $messageType = 'success';
- }
- } elseif ($action === 'rotar') {
- $semana = $_POST['semana'] ?? '';
- $asignacionActual = $asignacionModel->getAsignacionPorSemana($semana);
-
- if ($asignacionActual) {
- $proximaPersona = $asignacionModel->getProximaPersona($asignacionActual['user_id']);
- if ($proximaPersona) {
- $asignacionModel->asignar($proximaPersona['id'], $semana);
- $message = 'Turno rotado a: ' . htmlspecialchars($proximaPersona['nombre']);
+ if ($userId && $semana) {
+ $asignacionModel->asignar($userId, $semana);
+ $message = 'Turno asignado correctamente';
$messageType = 'success';
}
+ } elseif ($action === 'rotar') {
+ $semana = $_POST['semana'] ?? '';
+ $asignacionActual = $asignacionModel->getAsignacionPorSemana($semana);
+
+ if ($asignacionActual) {
+ $proximaPersona = $asignacionModel->getProximaPersona($asignacionActual['user_id']);
+ if ($proximaPersona) {
+ $asignacionModel->asignar($proximaPersona['id'], $semana);
+ $message = 'Turno rotado a: ' . htmlspecialchars($proximaPersona['nombre']);
+ $messageType = 'success';
+ }
+ }
+ } elseif ($action === 'asignar_masivo') {
+ $userIds = $_POST['user_ids'] ?? [];
+ $semanaInicio = $_POST['semana_inicio'] ?? '';
+ $rotacionAutomatica = isset($_POST['rotacion_automatica']) ? true : false;
+
+ if (!empty($userIds) && $semanaInicio) {
+ $resultado = $asignacionModel->asignarMasivo($userIds, $semanaInicio, $rotacionAutomatica);
+
+ if ($resultado['success'] > 0) {
+ $message = "Se asignaron {$resultado['success']} turnos correctamente";
+ if ($rotacionAutomatica) {
+ $message .= " con rotación automática para la siguiente semana";
+ }
+ $messageType = 'success';
+ }
+
+ if (!empty($resultado['errors'])) {
+ $message .= "
Errores: " . implode('
', $resultado['errors']);
+ $messageType = 'warning';
+ }
+ } else {
+ $message = 'Debes seleccionar al menos un ayudante y una semana';
+ $messageType = 'danger';
+ }
}
- } elseif ($action === 'rotacion_automatica') {
+ }
+
+ // Acciones permitidas tanto para Admin como para Coordinador
+ if ($action === 'rotacion_automatica') {
$resultado = $asignacionModel->asignarSemanasFuturasAutomaticas(12);
if ($resultado['success'] > 0) {
@@ -67,30 +96,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$message = 'No se pudieron generar asignaciones: ' . implode(', ', $resultado['errors']);
$messageType = 'danger';
}
- } elseif ($action === 'asignar_masivo') {
- $userIds = $_POST['user_ids'] ?? [];
- $semanaInicio = $_POST['semana_inicio'] ?? '';
- $rotacionAutomatica = isset($_POST['rotacion_automatica']) ? true : false;
-
- if (!empty($userIds) && $semanaInicio) {
- $resultado = $asignacionModel->asignarMasivo($userIds, $semanaInicio, $rotacionAutomatica);
-
- if ($resultado['success'] > 0) {
- $message = "Se asignaron {$resultado['success']} turnos correctamente";
- if ($rotacionAutomatica) {
- $message .= " con rotación automática para la siguiente semana";
- }
- $messageType = 'success';
- }
-
- if (!empty($resultado['errors'])) {
- $message .= "
Errores: " . implode('
', $resultado['errors']);
- $messageType = 'warning';
- }
- } else {
- $message = 'Debes seleccionar al menos un ayudante y una semana';
- $messageType = 'danger';
- }
}
}
}
@@ -177,6 +182,7 @@ $pageTitle = 'Asignación de Turnos';