One Hat Cyber Team
Your IP :
216.73.216.36
Server IP :
162.240.179.46
Server :
Linux vps-14493116.nutrivittasaude.com.br 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
Server Software :
Apache
PHP Version :
8.2.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
lifeprimeti
/
meta.lifeprimeti.com.br
/
public
/
View File Name :
grupos.php
<?php require_once __DIR__ . '/../config/database.php'; requireAdmin(); $titulo = 'Grupos de Acesso'; require_once __DIR__ . '/../includes/header.php'; $empresaId = getEmpresaId(); $permissoesDisponiveis = [ 'admin' => 'Administrador Total', 'dashboard' => 'Dashboard', 'agendamentos' => 'Agendamentos', 'calendario' => 'Calendario', 'clientes' => 'Clientes', 'profissionais' => 'Profissionais', 'servicos' => 'Servicos', 'relatorios' => 'Relatorios', 'usuarios' => 'Usuarios', 'grupos' => 'Grupos de Acesso', 'configuracoes' => 'Configuracoes', 'campanhas' => 'Campanhas Marketing', 'bloqueio_dias' => 'Bloqueio de Dias', ]; if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['acao'])) { $acao = $_POST['acao']; if ($acao === 'cadastrar') { $nome = trim($_POST['nome']); $descricao = trim($_POST['descricao']); $permissoes = isset($_POST['permissoes']) ? json_encode($_POST['permissoes']) : '[]'; try { $stmt = $pdo->prepare("INSERT INTO grupos (empresa_id, nome, descricao, permissoes) VALUES (?,?,?,?)"); $stmt->execute([$empresaId, $nome, $descricao, $permissoes]); $_SESSION['success_msg'] = 'Grupo criado com sucesso!'; } catch (PDOException $e) { $_SESSION['error_msg'] = 'Erro: ' . $e->getMessage(); } redirect('grupos.php'); } if ($acao === 'editar') { $id = (int)$_POST['id']; $nome = trim($_POST['nome']); $descricao = trim($_POST['descricao']); $permissoes = isset($_POST['permissoes']) ? json_encode($_POST['permissoes']) : '[]'; try { $stmt = $pdo->prepare("UPDATE grupos SET nome=?, descricao=?, permissoes=? WHERE id=? AND empresa_id=?"); $stmt->execute([$nome, $descricao, $permissoes, $id, $empresaId]); $_SESSION['success_msg'] = 'Grupo atualizado!'; } catch (PDOException $e) { $_SESSION['error_msg'] = 'Erro: ' . $e->getMessage(); } redirect('grupos.php'); } if ($acao === 'excluir') { $id = (int)$_POST['id']; try { $pdo->prepare("UPDATE usuarios SET grupo_id = NULL WHERE grupo_id = ? AND empresa_id = ?")->execute([$id, $empresaId]); $pdo->prepare("DELETE FROM grupos WHERE id=? AND empresa_id=?")->execute([$id, $empresaId]); $_SESSION['success_msg'] = 'Grupo excluido!'; } catch (PDOException $e) { $_SESSION['error_msg'] = 'Erro: ' . $e->getMessage(); } redirect('grupos.php'); } } $grupos = $pdo->prepare("SELECT * FROM grupos WHERE empresa_id = ? ORDER BY nome"); $grupos->execute([$empresaId]); $gruposLista = $grupos->fetchAll(); ?> <div class="card animate-fadeIn"> <div class="card-header d-flex align-items-center justify-content-between"> <h3 class="card-title"><i class="bi bi-shield-lock me-2 text-info"></i>Grupos de Acesso</h3> <button class="btn btn-primary btn-sm" onclick="abrirModal('modalCadastrar')"><i class="bi bi-plus"></i> Novo Grupo</button> </div> <div class="card-body p-0"> <div class="table-responsive"> <table class="table"> <thead><tr><th>ID</th><th>Nome</th><th>Descricao</th><th>Permissoes</th><th>Acoes</th></tr></thead> <tbody> <?php foreach ($gruposLista as $g): $perms = json_decode($g['permissoes'], true) ?: []; ?> <tr> <td><?= $g['id'] ?></td> <td><span class="fw-semibold"><?= sanitize($g['nome']) ?></span></td> <td class="text-secondary"><?= sanitize($g['descricao']) ?></td> <td> <?php foreach ($perms as $p): ?> <span class="badge bg-info bg-opacity-10 text-info border border-info border-opacity-25 me-1 mb-1"><?= $permissoesDisponiveis[$p] ?? $p ?></span> <?php endforeach; ?> <?php if (empty($perms)): ?><span class="text-secondary">Nenhuma</span><?php endif; ?> </td> <td> <button class="btn btn-warning btn-sm" onclick="abrirModal('modalEditar<?= $g['id'] ?>')"><i class="bi bi-pencil"></i></button> <form method="POST" style="display:inline" onsubmit="return confirm('Excluir grupo?')"> <input type="hidden" name="acao" value="excluir"><input type="hidden" name="id" value="<?= $g['id'] ?>"> <button class="btn btn-danger btn-sm"><i class="bi bi-trash"></i></button> </form> </td> </tr> <?php endforeach; ?> </tbody> </table> </div> </div> </div> <div class="modal fade" id="modalCadastrar" tabindex="-1"> <div class="modal-dialog modal-lg modal-dialog-centered"> <form method="POST" class="modal-content"><div class="modal-header"><h5 class="modal-title"><i class="bi bi-plus-circle me-2 text-info"></i>Novo Grupo</h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div> <div class="modal-body"> <input type="hidden" name="acao" value="cadastrar"> <div class="mb-3"><label class="form-label">Nome do Grupo</label><input type="text" name="nome" class="form-control" required></div> <div class="mb-3"><label class="form-label">Descricao</label><textarea name="descricao" class="form-control" rows="2"></textarea></div> <label class="form-label mb-3">Permissoes</label> <div class="row g-3"> <?php foreach ($permissoesDisponiveis as $key => $label): ?> <div class="col-md-4"> <div class="form-check"> <input type="checkbox" name="permissoes[]" class="form-check-input" value="<?= $key ?>" id="p_<?= $key ?>"> <label class="form-check-label small" for="p_<?= $key ?>"><?= $label ?></label> </div> </div> <?php endforeach; ?> </div> </div> <div class="modal-footer"><button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button><button type="submit" class="btn btn-primary">Salvar</button></div> </form> </div> </div> <?php foreach ($gruposLista as $g): $perms = json_decode($g['permissoes'], true) ?: []; ?> <div class="modal fade" id="modalEditar<?= $g['id'] ?>" tabindex="-1"> <div class="modal-dialog modal-lg modal-dialog-centered"> <form method="POST" class="modal-content"><div class="modal-header"><h5 class="modal-title"><i class="bi bi-pencil-square me-2 text-warning"></i>Editar <?= sanitize($g['nome']) ?></h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div> <div class="modal-body"> <input type="hidden" name="acao" value="editar"><input type="hidden" name="id" value="<?= $g['id'] ?>"> <div class="mb-3"><label class="form-label">Nome</label><input type="text" name="nome" class="form-control" value="<?= sanitize($g['nome']) ?>" required></div> <div class="mb-3"><label class="form-label">Descricao</label><textarea name="descricao" class="form-control" rows="2"><?= sanitize($g['descricao']) ?></textarea></div> <label class="form-label mb-3">Permissoes</label> <div class="row g-3"> <?php foreach ($permissoesDisponiveis as $key => $label): ?> <div class="col-md-4"> <div class="form-check"> <input type="checkbox" name="permissoes[]" class="form-check-input" value="<?= $key ?>" id="ep_<?= $g['id'] ?>_<?= $key ?>" <?= in_array($key, $perms) ? 'checked' : '' ?>> <label class="form-check-label small" for="ep_<?= $g['id'] ?>_<?= $key ?>"><?= $label ?></label> </div> </div> <?php endforeach; ?> </div> </div> <div class="modal-footer"><button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button><button type="submit" class="btn btn-primary">Atualizar</button></div> </form> </div> </div> <?php endforeach; ?> <?php require_once __DIR__ . '/../includes/footer.php'; ?>