/** * montar_codemin_usuarios * * Faz a montagem das views para o usuário, * busca as permissões no banco de dados e * cria os radios box para cada área. * * * @access public * @param $string * @return null */ public function montar_codemin_usuarios($titulo) { $data['areas'] = $this->configuracoes['areas']; $data['navlinks'] = $this->configuracoes['navlinks']; $data['activelink'] = $this->configuracoes['activelink']; $this->configuracoes['navlinks']['usuarios'] = "Usuários"; $data['contentBody'] = $this->configuracoes['contentBody']; $data['nivel_acesso'] = $this->configuracoes['nivel_acesso']; $this->load->view('codemin/header_view', $data); $this->load->view('codemin/nav_view'); // Dados dos usuários $dados[] = array('titulo' => 'Nome', 'campo' => 'nome', 'tipo' => 'input-text', 'placeholder' => 'Nome Completo'); $dados[] = array('titulo' => 'Login', 'campo' => 'login', 'tipo' => 'input-text', 'placeholder' => 'Login do usuário'); $dados[] = array('titulo' => 'Senha', 'campo' => 'senha', 'tipo' => 'senha', 'placeholder' => 'Senha do usuário'); $array = array(0 => 'Não', 1 => 'Sim'); $dados[] = array('titulo' => 'Administrador', 'campo' => 'administrador', 'tipo' => 'select', 'dados' => $array, 'placeholder' => 'Senha do usuário'); $data['titulo'] = $titulo; $tabela = 'codemin_usuarios'; $acao = $this->uri->segment(3); $id = $this->uri->segment(4); $this->load->library('form_validation'); switch ($acao) { case 'adicionar': $this->form_validation->set_rules('nome', 'Nome', 'required|min_length[6]|max_length[255]'); $this->form_validation->set_rules('login', 'Login', 'required|is_unique[codemin_usuarios.login]|min_length[4]|max_length[20]'); $this->form_validation->set_rules('senha', 'Senha', 'required|min_length[6]|max_length[255]'); if ($_POST & $this->form_validation->run() == TRUE) { $insert = array('nome' => $this->input->post('nome'), 'login' => $this->input->post('login'), 'senha' => senha_usuario($this->input->post('senha')), 'administrador' => $this->input->post('administrador'), 'ativo' => $this->input->post('ativo')); if ($this->db->insert($tabela, $insert)) { $this->session->set_flashdata('sucesso', 'Registro adicionado com sucesso!'); redirect('/administrador/usuarios/', 'location'); } else { $this->session->set_flashdata('erro', 'Houve um erro ao adicionar o registro!'); } } // Inicia a montagem do formulário $data['dados'] = $this->montar_campos($dados); $data['contentBody'] = $this->configuracoes['contentBody']; $this->load->view('codemin/adicionar_view', $data); break; case 'editar': $this->form_validation->set_rules('nome', 'Nome', 'required|min_length[6]|max_length[255]'); $this->form_validation->set_rules('login', 'Login', 'required|min_length[4]|max_length[20]'); $this->form_validation->set_rules('senha', 'Senha', 'min_length[6]|max_length[255]'); if ($_POST & $this->form_validation->run() == TRUE) { $update = array('nome' => $this->input->post('nome'), 'login' => $this->input->post('login'), 'administrador' => $this->input->post('administrador'), 'ativo' => $this->input->post('ativo')); if ($this->input->post('senha')) { $update['senha'] = senha_usuario($this->input->post('senha')); } $this->db->where('id', $id); if ($this->db->update($tabela, $update)) { // Permissões do usuário $this->db->where('id_usuario', $id); $this->db->delete($tabela . '_permissoes'); foreach ($this->configuracoes['areas'] as $key => $value) { $insert = array('area' => $key, 'nivel' => $this->input->post('usuario-' . $key), 'id_usuario' => $id); $this->db->insert($tabela . '_permissoes', $insert); } $this->session->set_flashdata('sucesso', 'Registro editado com sucesso!'); redirect('/administrador/usuarios/', 'location'); } else { $this->session->set_flashdata('erro', 'Houve um erro ao adicionar o registro!'); } } // Pega os registros do banco $this->db->where('id', $id); $resultado = $this->db->get($tabela)->row_array(); // Pega as permissoes $this->db->where('id_usuario', $id); $permissoes = array(); foreach ($this->db->get($tabela . '_permissoes')->result() as $permissao) { $permissoes[$permissao->area] = $permissao->nivel; } // Inicia a montagem do formulário $data['dados'] = $this->montar_campos($dados, $resultado, $permissoes); $data['contentBody'] = $this->configuracoes['contentBody']; $this->load->view('codemin/editar_view', $data); break; case 'excluir': $id = $this->uri->segment(4); $this->db->where('id', $id); $this->db->delete($tabela); redirect('/administrador/usuarios', 'location'); break; default: $data['listagens'] = array('nome', 'login'); $data['titulo'] = $titulo; // Pega todos os resultados $this->db->order_by('id', 'desc'); $data['resultados'] = $this->db->get($tabela)->result_array(); // Monta a view com a listagem $this->load->view('codemin/listagem_view', $data); break; } $footer['scriptFooter'] = $this->configuracoes['scriptFooter']; $this->load->view('codemin/footer_view', $footer); }
/** * * instalar * * Cria as tabelas iniciais e adicionar o primeiro usuário administrador * * * @access public * @param null * @return null */ public function instalar() { // CRIAR A TABELA DE LOG DE ACESSOS (PADRÃO) echo "<div class='alert alert-success'>CRIAR TABELA SE NAO EXISTIR '" . $this->db->dbprefix('codemin_log_acessos') . "'</div>"; $this->db->query("CREATE TABLE IF NOT EXISTS `" . $this->db->dbprefix('codemin_log_acessos') . "` (\n\t\t `id` int(11) NOT NULL AUTO_INCREMENT,\n\t\t `id_usuario` int(11) NOT NULL,\n\t\t `ip_usuario` varchar(15) NOT NULL,\n\t\t `user_agent` varchar(255) NOT NULL,\n\t\t `data` datetime NOT NULL,\n\t\t PRIMARY KEY (`id`)\n\t\t) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); // CRIAR A TABELA DE LOG DE AÇÕES (PADRÃO) echo "<div class='alert alert-success'>CRIAR TABELA SE NAO EXISTIR '" . $this->db->dbprefix('codemin_log_acoes') . "'</div>"; $this->db->query("CREATE TABLE IF NOT EXISTS `" . $this->db->dbprefix('codemin_log_acoes') . "` (\n\t\t `id` int(11) NOT NULL AUTO_INCREMENT,\n\t\t `id_usuario` int(11) NOT NULL,\n\t\t `tabela` varchar(255) NOT NULL,\n\t\t `id_registro` int(11) NOT NULL,\n\t\t `acao` int(1) NOT NULL,\n\t\t `data` datetime NOT NULL,\n\t\t PRIMARY KEY (`id`)\n\t\t) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); // CRIAR A TABELA DE OPÇÕES (PADRÃO) echo "<div class='alert alert-success'>CRIAR TABELA SE NAO EXISTIR '" . $this->db->dbprefix('codemin_opcoes') . "'</div>"; $this->db->query("CREATE TABLE IF NOT EXISTS `" . $this->db->dbprefix('codemin_opcoes') . "` (\n\t\t `id` int(11) NOT NULL AUTO_INCREMENT,\n\t\t `tabela` varchar(255) NOT NULL,\n\t\t `campo` varchar(255) NOT NULL,\n\t\t `opcao` varchar(255) NOT NULL,\n\t\t PRIMARY KEY (`id`)\n\t\t) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); // CRIAR A TABELA DE OPÇÕES SELECIONADAS (PADRÃO) echo "<div class='alert alert-success'>CRIAR TABELA SE NAO EXISTIR '" . $this->db->dbprefix('codemin_opcoes_selecionadas') . "'</div>"; $this->db->query("CREATE TABLE IF NOT EXISTS `" . $this->db->dbprefix('codemin_opcoes_selecionadas') . "` (\n\t\t `id` int(11) NOT NULL AUTO_INCREMENT,\n\t\t `tabela` varchar(255) NOT NULL,\n\t\t `campo` varchar(255) NOT NULL,\n\t\t `id_registro` int(11) NOT NULL,\n\t\t `id_opcao` int(11) NOT NULL,\n\t\t PRIMARY KEY (`id`)\n\t\t) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); // CRIAR A TABELA DE UPLOADS (PADRÃO) echo "<div class='alert alert-success'>CRIAR TABELA SE NAO EXISTIR '" . $this->db->dbprefix('codemin_uploads') . "'</div>"; $this->db->query("CREATE TABLE IF NOT EXISTS `" . $this->db->dbprefix('codemin_uploads') . "` (\n\t\t `id` int(11) NOT NULL AUTO_INCREMENT,\n\t\t `tipo` varchar(255) NOT NULL,\n\t\t `tabela` varchar(255) NOT NULL,\n\t\t `registro` varchar(255) NOT NULL,\n\t\t `campo` varchar(255) NOT NULL,\n\t\t `arquivo` varchar(255) NOT NULL,\n\t\t PRIMARY KEY (`id`)\n\t\t) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); // CRIAR A TABELA DE USUÁRIOS (PADRÃO) echo "<div class='alert alert-success'>CRIAR TABELA SE NAO EXISTIR '" . $this->db->dbprefix('codemin_usuarios') . "'</div>"; $this->db->query("CREATE TABLE IF NOT EXISTS `" . $this->db->dbprefix('codemin_usuarios') . "` (\n\t\t `id` int(1) NOT NULL AUTO_INCREMENT,\n\t\t `ativo` tinyint(1) NOT NULL,\n\t\t `administrador` tinyint(1) NOT NULL,\n\t\t `nome` varchar(255) NOT NULL,\n\t\t `login` varchar(255) NOT NULL,\n\t\t `senha` varchar(255) NOT NULL,\n\t\t PRIMARY KEY (`id`)\n\t\t) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); // CRIAR A TABELA DE USUÁRIOS PERMISSÕES (PADRÃO) echo "<div class='alert alert-success'>CRIAR TABELA SE NAO EXISTIR '" . $this->db->dbprefix('codemin_usuarios_permissoes') . "'</div>"; $this->db->query("CREATE TABLE IF NOT EXISTS `" . $this->db->dbprefix('codemin_usuarios_permissoes') . "` (\n\t\t `id` int(11) NOT NULL AUTO_INCREMENT,\n\t\t `id_usuario` int(11) NOT NULL,\n\t\t `nivel` int(1) NOT NULL,\n\t\t `area` varchar(255) NOT NULL,\n\t\t PRIMARY KEY (`id`)\n\t\t) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $nome = $this->input->post('nome'); $login = $this->input->post('login'); $senha = $this->input->post('senha'); $senha_hash = senha_usuario($this->input->post('senha')); $inserir = array('ativo' => 1, 'administrador' => 1, 'nome' => $nome, 'login' => $login, 'senha' => $senha_hash); $this->db->insert('codemin_usuarios', $inserir); echo "<div class='alert alert-success'>INSERIDO USUÁRIO {$login} COM A SENHA {$senha} NA TABELA '" . $this->db->dbprefix('codemin_usuarios_permissoes') . "'</div>"; }