feat(tramites): involucrados pueden editar y eliminar horas también

Antes solo el autor original de la entrada (o un Socio/Admin) podía
editar/eliminar registros de horas. Ahora cualquiera con acceso al
trámite (creador, abogado solicitante, involucrado, socio, admin)
puede editar/eliminar horas de cualquier entrada — útil cuando un
involucrado nota un error en una hora registrada por otro.

* tramites/api.php: removido el check (autor_email == me OR isSocio)
  de update_hours y delete_hours. canView() sigue siendo el único
  gate, lo cual es consistente con add_hours.
* tramites.html: los botones ✎ y ✕ ahora siempre se muestran en cada
  entrada de horas. El backend protege la operación.
This commit is contained in:
Soporte ZH Consultores
2026-06-04 20:17:10 -05:00
parent e98d791cb8
commit 2f2d20604b
2 changed files with 9 additions and 13 deletions
+3 -6
View File
@@ -369,9 +369,8 @@ try {
$tramiteId = (int)$row['tramite_id'];
if (!canView($pdo, $tramiteId)) err('No tienes acceso al trámite', 403);
if (!Auth::isSocio() && $row['autor_email'] !== $user['email']) {
err('Solo quien registró las horas (o un Socio/Admin) puede editarlas', 403);
}
// Cualquiera que pueda ver el trámite (creador, abogado solicitante,
// involucrado, o socio/admin) puede editar las horas registradas.
$abog = trim((string)($b['abogado'] ?? $row['abogado']));
$hrs = (float) ($b['hrs'] ?? $row['hrs']);
@@ -400,9 +399,7 @@ try {
$tramiteId = (int)$row['tramite_id'];
if (!canView($pdo, $tramiteId)) err('No tienes acceso al trámite', 403);
if (!Auth::isSocio() && $row['autor_email'] !== $user['email']) {
err('Solo quien registró las horas (o un Socio/Admin) puede eliminarlas', 403);
}
// Misma regla que update_hours: cualquiera con acceso al trámite puede eliminar.
$pdo->prepare('DELETE FROM tramites_hours WHERE id = :id')->execute([':id' => $hourId]);
$pdo->prepare('UPDATE tramites_legales SET actualizado_por = :u WHERE id = :id')