File: /var/www/gestor-horarios.bradford/app/controllers/maintainers/UsersController.php
<?php
class UsersController extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('mantenedores/mantenedor_general_model');
define('LAYOUT', 'shared/layout');
valida_sesion($this->session->userdata('token_usuario'));
define("STAFF_ID", '' . $this->session->userdata('rt_staff') . '');
}
function index()
{
$this->usuarios_listar(); //inicio
}
function usuarios_crear()
{
$post = $this->input->post();
if (!empty($post)) {
$data = $this->input->post('data');
$data['rut'] = str_replace('.', '', $data['rut']);
if (empty($data['password']) || empty($data['password_confirm'])) {
$this->session->set_flashdata("mensaje_error", "Contraseñas es requerida");
redirect('dashboard/usuarios/new');
}
if ($data['password'] != $data['password_confirm']) {
$this->session->set_flashdata("mensaje_error", "Contraseñas no coinciden");
redirect('dashboard/usuarios/new');
}
unset($data['password_confirm']);
$validation_result = validate_password($data['password']);
if ($validation_result === true) {
$data['password'] = sha1($data['password']);
$data['perfiles_id'] = 100;
$id = $this->mantenedor_general_model->crear($data, 'usuarios');
$error = $this->db->_error_number();
if ($error == 1452) {
$this->session->set_flashdata("mensaje_error", "No puede dejar en blanco la información de ");
redirect('dashboard/usuarios/new');
} else {
redirect('dashboard/usuarios/' . $id . '/view');
}
} else {
$this->session->set_flashdata("mensaje_error", implode(", ", $validation_result));
redirect('dashboard/usuarios/new');
}
}
$data['button'] = array(
'name' => 'continuar',
'id' => 'continuar',
'value' => 'Continuar',
'class' => 'btn-mant btn btn-small btn-primary',
'type' => 'submit',
'content' => ' Continuar '
);
//$data['perfiles_nombre'] = $this->prepara_dropdown($this->mantenedor_general_model->traer_tabla('perfiles', 'nombre'));
$data['perfiles_nombre'] = $this->mantenedor_general_model->traer_todo('perfiles');
$data['trabajadores_nombre'] = $this->prepara_dropdown($this->mantenedor_general_model->traer_tabla('trabajadores', 'nombres'));
$data['rut'] = array(
'name' => 'data[rut]',
'id' => 'rut',
'class' => '',
'maxlength' => '45',
'size' => '45',
'style' => ''
);
$data['username'] = array(
'name' => 'data[username]',
'id' => 'username',
'class' => '',
'maxlength' => '145',
'size' => '145',
'style' => ''
);
$data['password'] = array(
'name' => 'data[password]',
'id' => 'password',
'class' => '',
'maxlength' => '145',
'size' => '145',
'style' => ''
);
$data['password_confirm'] = array(
'name' => 'data[password_confirm]',
'id' => 'password_confirm',
'class' => '',
'maxlength' => '145',
'size' => '145',
'style' => ''
);
$data['remember_token'] = array(
'name' => 'data[remember_token]',
'id' => 'remember_token',
'class' => '',
'maxlength' => '145',
'size' => '145',
'style' => ''
);
$data['form_open'] = array(
'class' => 'form_mant form_usuarios',
'id' => 'form_usuarios'
);
$data['current_usuarios'] = 'current';
$data['title'] = 'Gestión Usuarios - Crear';
$data['breadcrumb'] = 'Crear Usuarios';
$data["mensaje_error"] = $this->session->flashdata("mensaje_error");
$data['main_content'] = 'mantenedores/mantenedor_usuarios_crear_view';
$this->load->view(LAYOUT, $data);
}
function usuarios_editar($usuarios_id)
{
$post = $this->input->post();
if (!empty($post)) {
$data = $this->input->post('data');
$data['rut'] = str_replace('.', '', $data['rut']);
$id = $this->mantenedor_general_model->actualizar($data['id'], $data, 'usuarios');
$error = $this->db->_error_number();
if ($error == 1452) {
$this->session->set_flashdata("mensaje_error", "No puede dejar en blanco la información de ");
redirect('dashboard/usuarios/' . $data['id'] . '/edit');
} else {
redirect('dashboard/usuarios/' . $data['id'] . '/view');
}
}
$data['button'] = array(
'name' => 'continuar',
'id' => 'continuar',
'value' => 'Continuar',
'class' => 'btn-mant btn btn-small btn-primary',
'type' => 'submit',
'content' => ' Continuar '
);
//$data['perfiles_nombre'] = $this->prepara_dropdown($this->mantenedor_general_model->traer_tabla('perfiles', 'nombre'));
$data['perfiles_nombre'] = $this->mantenedor_general_model->traer_todo('perfiles');
$data['trabajadores_nombre'] = $this->prepara_dropdown($this->mantenedor_general_model->traer_tabla('trabajadores', 'nombres'));
$data['rut'] = array(
'name' => 'data[rut]',
'id' => 'rut',
'class' => '',
'maxlength' => '45',
'size' => '45',
'style' => ''
);
$data['username'] = array(
'name' => 'data[username]',
'id' => 'username',
'class' => '',
'maxlength' => '145',
'size' => '145',
'style' => ''
);
$data['password'] = array(
'name' => 'data[password]',
'id' => 'password',
'class' => '',
'maxlength' => '145',
'size' => '145',
'style' => ''
);
$data['remember_token'] = array(
'name' => 'data[remember_token]',
'id' => 'remember_token',
'class' => '',
'maxlength' => '145',
'size' => '145',
'style' => ''
);
$data['ficha'] = $this->mantenedor_general_model->traer_ficha($usuarios_id, 'usuarios');
$data['form_open'] = array(
'class' => 'form_mant form_usuarios',
'id' => 'form_usuarios'
);
$data['hidden'] = array('data[id]' => $usuarios_id);
$data['current_usuarios'] = 'current';
$data["mensaje_error"] = $this->session->flashdata("mensaje_error");
$data['title'] = 'Gestión Usuarios - Editar';
$data['breadcrumb'] = 'Editar Usuarios';
$data['main_content'] = 'mantenedores/mantenedor_usuarios_editar_view';
$this->load->view(LAYOUT, $data);
}
function usuarios_ficha($usuarios_id)
{
$data['ficha'] = $this->mantenedor_general_model->traer_ficha($usuarios_id, 'usuarios');
$data['ficha']->perfiles_nombre = $this->mantenedor_general_model->traer_nombre($data['ficha']->perfiles_id, 'perfiles', 'nombre');
if (!empty($data['ficha']->trabajadores_id)) {
$data['ficha']->trabajadores_nombre = $this->mantenedor_general_model->traer_nombre($data['ficha']->trabajadores_id, 'trabajadores', 'nombres');
}
$data['current_usuarios'] = 'current';
$data["mensaje_error"] = $this->session->flashdata("mensaje_error");
$data['title'] = 'Gestión Usuarios - Ficha';
$data['breadcrumb'] = 'Ficha Usuarios';
$data['main_content'] = 'mantenedores/mantenedor_usuarios_ficha_view';
$this->load->view(LAYOUT, $data);
}
function usuarios_listar()
{
$data['buscar'] = array(
'name' => 'buscar',
'id' => 'buscar',
'maxlength' => '145',
'size' => '50',
);
$data['form_open'] = array(
'class' => 'form_mant form_usuarios',
'id' => 'form_usuarios'
);
$data['ficha'] = $this->mantenedor_general_model->traer_todo('usuarios');
foreach ($data['ficha'] as $key => $value) {
$data['ficha'][$key]->perfiles_nombre = $this->mantenedor_general_model->traer_nombre($value->perfiles_id, 'perfiles', 'nombre');
if (!empty($value->trabajadores_id)) {
$data['ficha'][$key]->trabajadores_nombre = $this->mantenedor_general_model->traer_nombre($value->trabajadores_id, 'trabajadores', 'nombres');
}
}
$data['current_usuarios'] = 'current';
$data['hidden'] = array('flag' => 1);
$data["mensaje_error"] = $this->session->flashdata("mensaje_error");
$data['title'] = 'Gestión Usuarios - Listar';
$data['breadcrumb'] = 'Listar Usuarios';
$data['main_content'] = 'mantenedores/mantenedor_usuarios_listar_view';
$this->load->view(LAYOUT, $data);
}
function eliminar_usuarios($usuarios_id)
{
$this->mantenedor_general_model->eliminar($usuarios_id, 'usuarios');
$error = $this->db->_error_number();
if ($error == 1451) {
$this->session->set_flashdata("mensaje_error", "No se puede eliminar, hay referencias a este registro");
}
redirect('dashboard/usuarios/list');
}
function cambiar_password($usuarios_id)
{
$flag = $this->input->post('flag');
if ($flag == 1) {
$data = $this->input->post('data');
if (empty($data['password']) && empty($data['password_confirm'])) {
$this->session->set_flashdata("mensaje_error", "No puede dejar en blanco los campos.");
redirect('dashboard/usuarios/password/' . $data['id']);
}
if ($data['password'] == $data['password_confirm']) {
unset($data["password_confirm"]);
$data["password"] = sha1($data["password"]);
$this->mantenedor_general_model->actualizar($data['id'], $data, 'usuarios');
$error = $this->db->_error_number();
if (!$error) {
redirect('dashboard/usuarios/' . $data['id'] . '/view');
}
} else {
$this->session->set_flashdata("mensaje_error", "Las contraseñas no coinciden.");
redirect('dashboard/usuarios/password/' . $data['id']);
}
}
$data['button'] = array(
'name' => 'continuar',
'id' => 'continuar',
'value' => 'Guardar',
'class' => 'btn-mant btn btn-small btn-primary',
'type' => 'submit',
'content' => ' Guardar '
);
$data['password'] = array(
'name' => 'data[password]',
'id' => 'password',
'class' => 'form-control',
'maxlength' => '45',
'size' => '45',
'style' => '',
'type' => 'password'
);
$data['password_confirm'] = array(
'name' => 'data[password_confirm]',
'id' => 'password_confirm',
'class' => 'form-control',
'maxlength' => '45',
'size' => '45',
'style' => '',
'type' => 'password'
);
$data['ficha'] = $this->mantenedor_general_model->traer_ficha($usuarios_id, 'usuarios');
$data['form_open'] = array(
'class' => 'form_mant form_staff',
'id' => 'form_staff'
);
$data['hidden'] = array(
'flag' => 1,
'data[id]' => $usuarios_id
);
$data['current_staff'] = 'active';
$data["mensaje_error"] = $this->session->flashdata("mensaje_error");
$data['title'] = 'Gestión Usuarios - Cambiar Contraseña';
$data['breadcrumb'] = 'Cambiar Contraseña';
$data['main_content'] = 'mantenedores/mantenedor_usuarios_password_view';
$this->load->view(LAYOUT, $data);
}
private function prepara_dropdown($data, $id = "id", $nombre = "nombres")
{
$result["seleccione"] = "Seleccione";
foreach ($data as $key => $value) {
$result[$value->$id] = $value->$nombre;
}
return $result;
}
}