public function insereAdministrador($nome, $cpf, $telefone, $email, $login, $senha)
 {
     $administradorDAO = new AdministradorDAO();
     $administrador = new Administrador();
     $administrador->setNome($nome);
     $administrador->setCPF($cpf);
     $administrador->setTelefone($telefone);
     $administrador->setEmail($email);
     $administrador->setLogin($login);
     $administrador->setSenha($senha);
     $administradorDAO->insereAdministrador($administrador);
     return "ok";
 }
function listaCoordenadores($ano = false)
{
    require_once dirname(__FILE__) . "/../../entidades/Administrador.php";
    // lemos as credenciais do banco de dados
    $dados = file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/../config.json");
    $dados = json_decode($dados, true);
    foreach ($dados as $chave => $valor) {
        $dados[$chave] = str_rot13($valor);
    }
    $host = $dados["host"];
    $usuario = $dados["nome_usuario"];
    $senhaBD = $dados["senha"];
    // cria conexão com o banco
    $conexao = null;
    $db = "homeopatias";
    try {
        $conexao = new PDO("mysql:host={$host};dbname={$db};charset=utf8", $usuario, $senhaBD);
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
    if (!$ano) {
        $textoQuery = 'SELECT U.nome, U.login, A.idAdmin
                        FROM Usuario U INNER JOIN Administrador A ON A.idUsuario = U.id
                        WHERE A.idUsuario = U.id AND A.nivel = "coordenador" ORDER BY U.nome ASC';
        $query = $conexao->prepare($textoQuery);
    } else {
        $textoQuery = 'SELECT U.nome, U.login, A.idAdmin
                        FROM Usuario U INNER JOIN Administrador A ON A.idUsuario = U.id
                        WHERE A.nivel = "coordenador" AND NOT EXISTS(
                            SELECT Ad.idAdmin FROM Administrador Ad LEFT JOIN Cidade C
                            ON C.idCoordenador = Ad.idAdmin WHERE C.idCidade IS NOT NULL
                            AND C.ano = ? AND C.idCoordenador = A.idAdmin
                        )
                        ORDER BY U.nome ASC';
        $query = $conexao->prepare($textoQuery);
        $query->bindParam(1, $ano);
    }
    $query->setFetchMode(PDO::FETCH_ASSOC);
    $query->execute();
    $numeroRegistros = 0;
    $tabela = "";
    $resultado = [];
    while ($linha = $query->fetch()) {
        $novo = new Administrador($linha["login"]);
        $novo->setNome($linha["nome"]);
        $novo->setIdAdmin($linha["idAdmin"]);
        // insere $novo na última posição do vetor
        $resultado[] = $novo;
    }
    return $resultado;
}
function listaProfessores()
{
    require_once "entidades/Administrador.php";
    // lemos as credenciais do banco de dados
    $dados = file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/../config.json");
    $dados = json_decode($dados, true);
    foreach ($dados as $chave => $valor) {
        $dados[$chave] = str_rot13($valor);
    }
    $host = $dados["host"];
    $usuario = $dados["nome_usuario"];
    $senhaBD = $dados["senha"];
    // cria conexão com o banco
    $conexao = null;
    $db = "homeopatias";
    try {
        $conexao = new PDO("mysql:host={$host};dbname={$db};charset=utf8", $usuario, $senhaBD);
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
    $textoQuery = "SELECT U.id, U.cpf, U.dataInscricao, U.email, \n                    U.nome, U.login, A.idAdmin \n                    FROM Usuario U, Administrador A WHERE A.idUsuario = U.id AND \n                    A.nivel = \"professor\" ORDER BY U.nome ASC";
    $query = $conexao->prepare($textoQuery);
    $query->setFetchMode(PDO::FETCH_ASSOC);
    $query->execute();
    $numeroRegistros = 0;
    $tabela = "";
    $resultado = [];
    while ($linha = $query->fetch()) {
        $novo = new Administrador($linha["login"]);
        $novo->setNome($linha["nome"]);
        $novo->setIdAdmin($linha["idAdmin"]);
        // insere $novo na última posição do vetor
        $resultado[] = $novo;
    }
    return $resultado;
}
 $idValido = isset($id) && preg_match("/^[0-9]*\$/", $id);
 $senhaValida = !$senha || mb_strlen($senha, 'UTF-8') >= 6 && mb_strlen($senha, 'UTF-8') <= 72;
 // se todos os dados estão válidos, o coordenador é editado
 if ($nomeValido && $cpfValido[0] && $emailValido[0] && $loginValido && $idAdminValido && $idValido && $senhaValida) {
     // lemos as credenciais do banco de dados
     $dados = file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/../config.json");
     $dados = json_decode($dados, true);
     foreach ($dados as $chave => $valor) {
         $dados[$chave] = str_rot13($valor);
     }
     $host = $dados["host"];
     $usuario = $dados["nome_usuario"];
     $senhaBD = $dados["senha"];
     require_once "../../entidades/Administrador.php";
     $atualizar = new Administrador($login);
     $atualizar->setNome($nome);
     $atualizar->setCpf($cpf);
     $atualizar->setEmail($email);
     $atualizar->setId($id);
     $atualizar->setIdAdmin($idAdmin);
     $atualizar->setNivelAdmin("coordenador");
     $sucesso = $atualizar->atualizar($host, "homeopatias", $usuario, $senhaBD);
     if ($sucesso) {
         $mensagem = "";
         if ($senha) {
             $sucesso = $atualizar->mudaSenha($senha);
             if (!$sucesso) {
                 $mensagem = "Erro ao alterar a senha";
             }
         }
     } else {
 $loginValido = isset($login) && mb_strlen($login, 'UTF-8') >= 3 && mb_strlen($login, 'UTF-8') <= 100;
 $senhaValida = isset($senha) && mb_strlen($senha, 'UTF-8') >= 6 && mb_strlen($senha, 'UTF-8') <= 72;
 // se todos os dados estão válidos, o administrador é cadastrado
 if ($nomeValido && $emailValido && $loginValido && $senhaValida) {
     // lemos as credenciais do banco de dados
     $dados = file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/../config.json");
     $dados = json_decode($dados, true);
     foreach ($dados as $chave => $valor) {
         $dados[$chave] = str_rot13($valor);
     }
     $host = $dados["host"];
     $usuario = $dados["nome_usuario"];
     $senhaBD = $dados["senha"];
     require_once "entidades/Administrador.php";
     $novo = new Administrador($login);
     $novo->setNome($nome);
     $novo->setEmail($email);
     $novo->setPermissoes($permissoes);
     $novo->setNivelAdmin("administrador");
     $sucesso = $novo->cadastrar($host, "homeopatias", $usuario, $senhaBD, $senha);
     if (!$sucesso) {
         $mensagem = "Já existe um usuário com esse nome \n                                         de usuário no sistema";
     }
 } else {
     if (!$nomeValido) {
         $mensagem = "Nome inválido!";
     } else {
         if (!$emailValido && !$emailExistente) {
             $mensagem = "E-mail inválido!";
         } else {
             if ($emailExistente) {