<?php

defined('BASEPATH') OR exit('No direct script access allowed');
require APPPATH . 'libraries/RestController.php';

use chriskacerguis\RestServer\RestController;

require APPPATH . 'libraries/Format.php';

class Permisos extends RestController {

    public function __construct() {
        parent::__construct();
    }

    public function get_all_permisos_get() {
        $this->config->load('permisos');
        $grupos_permisos = $this->config->item('permisos');
        $permisos = array();
        $i = 0;
        foreach ($grupos_permisos as $grupo_permisos) {
            $permisos[$i]['nombre_grupo'] = $grupo_permisos['nombre_grupo'];
            $permisos[$i]['categorias'] = array();
            if (isset($grupo_permisos['categorias'])) {
                $j = 0;
                foreach ($grupo_permisos['categorias'] as $categoria) {
                    $permisos[$i]['categorias'][$j]['nombre_categoria'] = $categoria['nombre_categoria'];
                    $permisos[$i]['categorias'][$j]['icono'] = $categoria['icono'];
                    $permisos[$i]['categorias'][$j]['clase'] = $categoria['clase'];
                    $permisos[$i]['categorias'][$j]['modulos'] = array();
                    if (isset($categoria['modulos'])) {
                        $k = 0;
                        foreach ($categoria['modulos'] as $modulo) {
                            $permisos[$i]['categorias'][$j]['modulos'][$k]['nombre_modulo'] = $modulo['nombre_modulo'];
                            $permisos[$i]['categorias'][$j]['modulos'][$k]['sref'] = $modulo['sref'];
                            $permisos[$i]['categorias'][$j]['modulos'][$k]['acciones'] = array();
                            if (isset($modulo['acciones'])) {
                                $l = 0;
                                foreach ($modulo['acciones'] as $accion_id => $accion) {
                                    $permisos[$i]['categorias'][$j]['modulos'][$k]['acciones'][$l]['id'] = '' . $accion_id;
                                    $permisos[$i]['categorias'][$j]['modulos'][$k]['acciones'][$l]['nombre_accion'] = $accion['nombre_accion'];
                                    $permisos[$i]['categorias'][$j]['modulos'][$k]['acciones'][$l]['state'] = $accion['state'];
                                    $l++;
                                }
                            }
                            $k++;
                        }
                    }
                    $j++;
                }
            }
            $i++;
        }
        $data['permisos'] = $permisos;
        $this->response($data, RestController::HTTP_OK);
    }

}
