Permisos agrupados

This commit is contained in:
Jaime Jimenez
2023-05-02 07:59:52 +02:00
parent 59c05ee5fd
commit 1116d8c435
47 changed files with 1227 additions and 217 deletions

View File

@ -82,7 +82,7 @@ class Ajax extends ResourceController
if($records[$key]['email_confirmed'] == 1){
$records[$key]['email'] = $records[$key]['email'].' '.'<span class="text-success"><i class="fas fa-check-circle"></i></span>';
}
$editLink = site_url('user/edit/').$records[$key]['token'];
$editLink = site_url('usuarios/user/edit/').$records[$key]['token'];
$records[$key]['options'] = ''.
'<div class="btn-group mr-1 mb-1" xmlns="http://www.w3.org/1999/html">
<button type="button" class="btn btn-primary btn-block dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@ -172,7 +172,7 @@ class Ajax extends ResourceController
//Format records
foreach ($records as $key => $value){
$editLink = site_url('group/edit/').$records[$key]['token'];
$editLink = site_url('usuarios/group/edit/').$records[$key]['token'];
$records[$key]['options'] = ''.
'<div class="btn-group mr-1 mb-1" xmlns="http://www.w3.org/1999/html">
<button type="button" class="btn btn-primary btn-block dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">

View File

@ -0,0 +1,30 @@
<?php
namespace App\Controllers\Catalogo;
use App\Controllers\BaseController;
class Catalogo extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function import()
{
}
public function delete()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Clientes;
use App\Controllers\BaseController;
class Cliente extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,34 @@
<?php
namespace App\Controllers\Clientes;
use App\Controllers\BaseController;
class Tarifacliente extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,25 @@
<?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseController;
class Calendario extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function edit()
{
}
}

View File

@ -1,10 +1,10 @@
<?php
namespace App\Controllers\Impresion;
namespace App\Controllers\Configuracion;
use App\Controllers\BaseController;
class Impresioncliente extends BaseController
class Correo extends BaseController
{
function __construct()
{
@ -16,5 +16,6 @@ class Impresioncliente extends BaseController
echo 'Hola2';
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseController;
class Formaspago extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function edit()
{
}
public function add()
{
}
public function delete()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseController;
class Imposiciones extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function edit()
{
}
public function add()
{
}
public function delete()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseController;
class Maquina extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function edit()
{
}
public function add()
{
}
public function delete()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseController;
class Papelgenerico extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function edit()
{
}
public function add()
{
}
public function delete()
{
}
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseController;
class Serie extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseController;
class Serviciocliente extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function edit()
{
}
public function add()
{
}
public function delete()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseController;
class Tamanioformatos extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function edit()
{
}
public function add()
{
}
public function delete()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseController;
class Tamaniolibros extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function edit()
{
}
public function add()
{
}
public function delete()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseController;
class Tareaservicio extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function edit()
{
}
public function add()
{
}
public function delete()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseController;
class Tiposimpresion extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function edit()
{
}
public function add()
{
}
public function delete()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseController;
class Trabajo extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function edit()
{
}
public function add()
{
}
public function delete()
{
}
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Controllers\Digitalizacion;
use App\Controllers\BaseController;
class Digitalizacion extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
}

View File

@ -0,0 +1,30 @@
<?php
namespace App\Controllers\Facturacion;
use App\Controllers\BaseController;
class Albaran extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function export()
{
}
}

View File

@ -0,0 +1,30 @@
<?php
namespace App\Controllers\Facturacion;
use App\Controllers\BaseController;
class Factura extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function export()
{
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace App\Controllers\Informes;
use App\Controllers\BaseController;
class Informe extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace App\Controllers\Logistica;
use App\Controllers\BaseController;
class Logistica extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Pedidos;
use App\Controllers\BaseController;
class Pedido extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete_files()
{
}
public function pedidos_maquetacion()
{
}
public function pedidos_prestashop()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Presupuestos;
use App\Controllers\BaseController;
class Presupuesto extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Presupuestos;
use App\Controllers\BaseController;
class Presupuestomaquetacion extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Produccion;
use App\Controllers\BaseController;
class Ordenmaquina extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Produccion;
use App\Controllers\BaseController;
class Ordentrabajo extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Produccion;
use App\Controllers\BaseController;
class Ordentrabajomaquetacion extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Produccion;
use App\Controllers\BaseController;
class Pedido extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,30 @@
<?php
namespace App\Controllers\Proveedores;
use App\Controllers\BaseController;
class Proveedor extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function export()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Tarifas;
use App\Controllers\BaseController;
class Tarifaacabado extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Tarifas;
use App\Controllers\BaseController;
class Tarifaenvio extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Tarifas;
use App\Controllers\BaseController;
class Tarifaimpresion extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Tarifas;
use App\Controllers\BaseController;
class Tarifamanipulado extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Tarifas;
use App\Controllers\BaseController;
class Tarifapapelcompra extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Tarifas;
use App\Controllers\BaseController;
class Tarifapapeldefecto extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Controllers\Tarifas;
use App\Controllers\BaseController;
class Tarifapreimpresion extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola2';
}
public function delete()
{
}
public function add()
{
}
public function edit()
{
}
}

View File

@ -13,172 +13,7 @@ class Test extends BaseController
public function index()
{
$request = \Config\Services::request();
$uri = new \CodeIgniter\HTTP\URI('https://sk-jjo.imnavajas.es/impresion/impresioncliente');
$language = \Config\Services::language();
$language->setLocale(session()->lang);
$getWhiteList = $this->whiteListController();
foreach ($getWhiteList as $item){
if(strtolower($item) == $uri->getSegment(1)){
echo '<pre>';
var_dump('1');
echo '</pre>';
dd();
return true;
}
}
$getRules = json_decode(session()->get('rules')??'[]');
foreach ($this->whiteListMethod() as $item){
if(strtolower($item) == $uri->getSegment(2)){
echo '<pre>';
var_dump('2');
echo '</pre>';
dd();
return true;
}
}
foreach ($getRules as $key=>$value){
if(strtolower($key) == $uri->getSegment(1)){
if($uri->getTotalSegments() <= 1){
echo '<pre>';
var_dump('3');
echo '</pre>';
dd();
return true;
}
foreach ($value as $item){
if(strtolower($item) == $uri->getSegment(2)){
echo '<pre>';
var_dump('4');
echo '</pre>';
dd();
return true;
}
}
}
else{
foreach($this->controllerFolderList() as $folder){
if(strtolower($folder) == $uri->getSegment(1)){
var_dump($key);
if(strtolower($key) == $uri->getSegment(2)){
if($uri->getTotalSegments() <= 2){
echo '<pre>';
var_dump('5');
echo '</pre>';
dd();
return true;
}
foreach ($value as $item){
if(strtolower($item) == $uri->getSegment(3)){
echo '<pre>';
var_dump('6');
echo '</pre>';
dd();
return true;
}
}
}
}
}
}
}
echo '<pre>';
var_dump($uri->getSegment(1));
var_dump($uri->getSegment(2));
var_dump($uri->getSegment(3));
echo '</pre>';
dd();
helper('general');
var_dump( getAllClass());
}
/**
* Returns the white list of allowed controllers.
*/
public function whiteListController(){
return [
'',
'BaseController',
'Home',
'Login',
'Oauth',
'Language',
'Api',
'Cron',
'lang',
'Ajax',
'Integration',
'Migrate',
'Test',
];
}
/**
* JJO
* Returns the controller folder list
*/
public function controllerFolderList(){
return [
'impresion',
];
}
/**
* Returns the whitelist of public controllers.
*/
public function ignoreListController(){
return [
];
}
public function validateIgnoreControllerAccess(){
$request = \Config\Services::request();
$uri = $request->uri;
$getList = $this->ignoreListController();
foreach ($getList as $item){
if(strtolower($item) == $uri->getSegment(1)){
return true;
}
}
return false;
}
public function whiteListMethod(){
return [
'initController',
'__construct',
'validateControllerAccess',
'whiteListController',
'whiteListMethod'
];
}
}
}

View File

@ -1,6 +1,7 @@
<?php
namespace App\Controllers;
namespace App\Controllers\Usuarios;
use App\Controllers\BaseController;
use App\Models\UserModel;
use App\Models\UserGroupModel;
@ -59,7 +60,7 @@ class Group extends BaseController
$data['btn_return'] = [
'title' => lang("App.global_come_back"),
'route' => '/group',
'route' => 'usuarios/group',
'class' => 'btn btn-dark mr-1',
'icon' => 'fas fa-angle-left'
];
@ -94,7 +95,7 @@ class Group extends BaseController
$data['btn_return'] = [
'title' => lang("App.global_come_back"),
'route' => '/group',
'route' => 'usuarios/group',
'class' => 'btn btn-dark mr-1',
'icon' => 'fas fa-angle-left'
];
@ -108,7 +109,7 @@ class Group extends BaseController
$data['obj'] = $this->group_model->where('token', $id)->first();
if($data['obj']==null){
return redirect()->to('/group');
return redirect()->to('/usuarios/group');
}
echo view(getenv('theme.path').'main/header');
@ -121,7 +122,7 @@ class Group extends BaseController
//Demo Mode
if(env('demo.mode')??false){
session()->setFlashdata('sweet', ['warning',lang("App.general_demo_mode")]);
return redirect()->to('/group');
return redirect()->to('/usuarios/group');
}
$session = session();
@ -181,13 +182,13 @@ class Group extends BaseController
if(empty($listPost['id_group'])){
$session->setFlashdata('sweet', ['success',lang("App.group_alert_add")]);
return redirect()->to('/group');
return redirect()->to('/usuarios/group');
}else{
if($session->get('group') == $this->request->getPost('token')){
$session->set('rules', $listPost['rules']);
}
$session->setFlashdata('sweet', ['success',lang("App.group_alert_edit")]);
return redirect()->to('/group');
return redirect()->to('/usuarios/group');
}
}
}else{
@ -201,7 +202,7 @@ class Group extends BaseController
//Demo Mode
if(env('demo.mode')??false){
session()->setFlashdata('sweet', ['warning',lang("App.general_demo_mode")]);
return redirect()->to('/group');
return redirect()->to('/usuarios/group');
}
$session = session();
@ -211,6 +212,6 @@ class Group extends BaseController
}else{
$session->setFlashdata('sweet', ['error',lang("App.group_alert_error")]);
}
return redirect()->to('/group');
return redirect()->to('/usuarios/group');
}
}

View File

@ -1,6 +1,7 @@
<?php
namespace App\Controllers;
namespace App\Controllers\Usuarios;
use App\Controllers\BaseController;
use App\Libraries\PasswordHash;
use App\Models\ActivityModel;

View File

@ -41,7 +41,7 @@ class LoginAuthFilter implements FilterInterface
public function validateControllerAccess(){
$request = \Config\Services::request();
$uri = $request->uri;
$language = \Config\Services::language();
$language->setLocale(session()->lang);
@ -66,16 +66,14 @@ class LoginAuthFilter implements FilterInterface
if($uri->getTotalSegments() <= 1){
return true;
}
foreach ($value as $item){
if(strtolower($item) == $uri->getSegment(2)){
return true;
}
}
}
else{
foreach($this->controllerFolderList() as $folder){
foreach($this->controllerFolderWhiteList() as $folder){
if(strtolower($folder) == $uri->getSegment(1)){
if(strtolower($key) == $uri->getSegment(2)){
if($uri->getTotalSegments() <= 2){
@ -93,12 +91,36 @@ class LoginAuthFilter implements FilterInterface
}
}
}
}
session()->setFlashdata('sweet', ['error',lang("App.dashboard_alert_rules")]);
header('Location: /home');
exit();
}
/**
* JJO
* Returns the controller folder list
*/
public function controllerFolderWhiteList(){
return [
'Catalogo',
'Clientes',
'Configuracion',
'Digitalizacion',
'Facturacion',
'Informes',
'Logistica',
'Pedidos',
'Presupuestos',
'Produccion',
'Proveedores',
'Tarifas',
'Usuarios',
];
}
/**
* Returns the white list of allowed controllers.
*/
@ -121,17 +143,6 @@ class LoginAuthFilter implements FilterInterface
];
}
/**
* JJO
* Returns the controller folder list
*/
public function controllerFolderList(){
return [
'impresion',
];
}
/**
* Returns the whitelist of public controllers.
*/

View File

@ -54,6 +54,10 @@ function getAllClass($controller = null){
}
}
function getAllClassFolder($folder = null){
try {
helper('filesystem');
@ -107,6 +111,8 @@ function getAllFolder(){
}
}
function getIgnoreController($controller)
{
try {

View File

@ -34,7 +34,7 @@
</div>
</div>
</div>
<div class="col-lg-3 col-sm-6">
<div class="col-12">
<div class="card">
<div class="stat-widget-one card-body">
<div class="d-inline-block">

View File

@ -60,19 +60,34 @@
</div>
</div>
<div class="row">
<?php foreach(getAllClass() as $item): ?>
<div class="col-md-3 col-lg-2">
<h4 class="danger"><?=getDictionary($item['name'])?></h4>
<?php foreach($item['methods'] as $subitem): ?>
<?php if(!getIgnoreMethod($subitem)): ?>
<div class="custom-control custom-switch">
<input type="checkbox" id="<?=$item['name'].'_'.$subitem?>" name="<?=$item['name'].'_'.$subitem?>" class="custom-control-input">
<label for="<?=$item['name'].'_'.$subitem?>" class="custom-control-label"><?=getDictionary($subitem)?></label>
<div class="col-md-12 right">
<?php foreach(getAllFolder() as $folder): ?>
<div class="card">
<div class="card-header">
<h4 class="card-title"><?= $folder??'' ?></h4>
</div>
<div class="card-body">
<div class="row">
<?php foreach(getAllClass() as $item): ?>
<?php if (str_contains($item['path'], $folder)): ?>
<div class="col-md-3 col-lg-2">
<h4 class="danger"><?=getDictionary($item['name'])?></h4>
<?php foreach($item['methods'] as $subitem): ?>
<?php if(!getIgnoreMethod($subitem)): ?>
<div class="custom-control custom-switch">
<input type="checkbox" id="<?=$item['name'].'_'.$subitem?>" name="<?=$item['name'].'_'.$subitem?>" class="custom-control-input">
<label for="<?=$item['name'].'_'.$subitem?>" class="custom-control-label"><?=getDictionary($subitem)?></label>
</div>
<?php endif; ?>
<?php endforeach; ?>
</div>
<?php endif; ?>
<?php endforeach; ?>
</div>
<?php endif; ?>
<?php endforeach; ?>
</div>
<?php endforeach; ?>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
<div class="form-actions mt-2">

View File

@ -110,7 +110,7 @@
}).then(function(isConfirm) {
console.log(isConfirm);
if (isConfirm.value) {
window.location.href = '<?=site_url("group/delete/")?>'+id;
window.location.href = '<?=site_url("usuarios/group/delete/")?>'+id;
}
})
}

View File

@ -112,7 +112,7 @@
}).then(function(isConfirm) {
console.log(isConfirm);
if (isConfirm.value) {
window.location.href = '<?=site_url("user/delete/")?>'+id;
window.location.href = '<?=site_url("usuarios/user/delete/")?>'+id;
}
})
}

View File

@ -9,10 +9,10 @@
<li><a class="has-arrow" href="Javascript:void()" aria-expanded="false"><i class="fas fa-user-friends"></i><span class="nav-text"><?= lang("App.menu_users") ?></span></a>
<ul aria-expanded="false">
<?php if (count(getArrayItem($menus,'methods','index',true)) > 0): ?>
<li><a href="<?= site_url("user")?>"><?= lang("App.menu_list") ?></a></li>
<li><a href="<?= site_url("usuarios/user")?>"><?= lang("App.menu_list") ?></a></li>
<?php endif; ?>
<?php if (count(getArrayItem($menus,'methods','add',true)) > 0): ?>
<li><a href="<?= site_url("user/add")?>"><?= lang("App.menu_add") ?></a></li>
<li><a href="<?= site_url("usuarios/user/add")?>"><?= lang("App.menu_add") ?></a></li>
<?php endif; ?>
</ul>
</li>
@ -21,10 +21,10 @@
<li><a class="has-arrow" href="Javascript:void()" aria-expanded="false"><i class="fas fa-user-lock"></i><span class="nav-text"><?= lang("App.menu_permission_group") ?></span></a>
<ul aria-expanded="false">
<?php if (count(getArrayItem($menus,'methods','index',true)) > 0): ?>
<li><a href="<?= site_url("group")?>"><?= lang("App.menu_list") ?></a></li>
<li><a href="<?= site_url("usuarios/group")?>"><?= lang("App.menu_list") ?></a></li>
<?php endif; ?>
<?php if (count(getArrayItem($menus,'methods','add',true)) > 0): ?>
<li><a href="<?= site_url("group/add")?>"><?= lang("App.menu_add") ?></a></li>
<li><a href="<?= site_url("usuarios/group/add")?>"><?= lang("App.menu_add") ?></a></li>
<?php endif; ?>
</ul>
</li>