Skip to content

Commit

Permalink
update sync preparando la sangria
Browse files Browse the repository at this point in the history
  • Loading branch information
manuretaindec committed Mar 6, 2024
2 parents d39654b + 9daa5d5 commit f92517f
Show file tree
Hide file tree
Showing 67 changed files with 22,285 additions and 21,454 deletions.
4 changes: 2 additions & 2 deletions app/Http/Controllers/ArchivoController.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ public function index(Request $request)
$archivos = $AppUser->visible_files()->withCount('viewers')->get();
$archivos = $archivos->merge($AppUser->mis_files()->withCount('viewers')->get());
try {
if ($AppUser->hasPermissionTo('Ver Archivos')) {
$archivos->merge(Archivo::withCount('viewers')->get());
if ($AppUser->can('Ver Archivos')) {
$archivos = $archivos->merge(Archivo::withCount('viewers')->get());
}
} catch (PermissionDoesNotExist $e) {
Session::flash('message', 'No existe el permiso "Ver Archivos"');
Expand Down
46 changes: 46 additions & 0 deletions app/Http/Controllers/FilterController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Spatie\Permission\Models\Permission;

class FilterController extends Controller
{
public function listarFiltros(){
$filtros = Permission::where('guard_name', 'filters')->get();
return view('filters', compact('filtros'));
}

public function renombrarFiltro(Request $request, Permission $filter){
$filtro = Permission::where('id', $filter->id)->where('guard_name', 'filters')->first();
if($filtro) {
if ($request->newName) {
$nuevo = Permission::where('name', $request->newName)->where('guard_name', 'filters')->first();
if($nuevo) {
return redirect()->back()->with('error_rename','Ya existe el filtro!')->with('id_error', $filter->id);
} else {
$filtro->name = $request->newName;
$filtro->save();
return redirect()->route('admin.listarFiltros')->with('info','Filtro actualizado!');
}
} else {
return redirect()->back()->with('error_rename','El nombre del filtro no puede estar vacío.')->with('id_error', $filter->id);
}
}
}

public function crearFiltro(Request $request){
if($request->newFilterName){
$filtro = Permission::where('name', $request->newFilterName)->where('guard_name', 'filters')->first();
if($filtro) {
return redirect()->back()->with('error_create','Ya existe el filtro!')->with('id', $filtro->id);
} else {
Permission::create(['name' => $request->newFilterName, 'guard_name' => 'filters']);
return redirect()->route('admin.listarFiltros')->with('info','Filtro creado!');
}
} else {
return redirect()->back()->with('error_create','El nombre del filtro no puede estar vacío.');
}
}
}
35 changes: 24 additions & 11 deletions app/Http/Controllers/ProvinciaController.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use Datatables;
use Auth;
use Illuminate\Support\Facades\Log;
use Spatie\Permission\Models\Permission;

class ProvinciaController extends Controller
{
Expand Down Expand Up @@ -79,12 +80,12 @@ public function provsList()
$button = '<button type="button" class="btn_descarga btn-sm btn-primary" > Descargar </button> ';
// botón de eliminar PROVINCIA en test, si esta logueado.
if (Auth::check()) {
try {
if ( ( Auth::user()->hasPermissionTo('Borrar Provincia') ) and ($data['departamentos_count']==0) )
// Botón borrar sólo si tiene permiso y la provicnia no tiene deptos.
try {
$filtro = Permission::where('name',$data['codigo'])->first();
if ( $filtro and ( Auth::user()->hasPermissionTo($data['codigo'], 'filters') and Auth::user()->can('Borrar Provincia') and ($data['departamentos_count']==0) ) )
// Botón borrar sólo si tiene permiso y la provicnia no tiene deptos. (agregar or Auth::user()->hasRole('Super Admin') solo para tests)
{
$button .= '<button type="button" class="btn_prov_delete btn-sm btn-danger " > Borrar ('.
$data['departamentos_count'].') </button>';
$button .= '<button type="button" class="btn_prov_delete btn-sm btn-danger "> Borrar </button>';
}
} catch (PermissionDoesNotExist $e) {
Log::warning('No existe el permiso "Borrar Provincia"');
Expand Down Expand Up @@ -177,12 +178,24 @@ public function destroy(Provincia $provincia)
$_info = $provincia->codigo.' '.$provincia->nombre;
$deptos = count($provincia->departamentos);
if ($deptos == 0){
if ($provincia->delete()) {
Log::info('Se borró la provincia: '.$_info);
$respuesta = ['statusCode'=> 200,'message' => 'Se eliminó la provincia: '.$_info];
}else{
Log::error('NO se borró la provincia: '.$_info);
$respuesta = ['statusCode'=> 304,'message' => 'NO se eliminó la provincia: '.$_info];
$filtro = Permission::where('name',$provincia->codigo)->first();
if ($filtro && Auth::user()->hasPermissionTo($provincia->codigo, 'filters')) {
//agregar or Auth::user()->hasRole('Super Admin') solo para tests
Log::info('El usuario posee el filtro: '.$provincia->codigo);
if ($provincia->delete()) {
Log::info('Se borró la provincia: '.$_info);
$respuesta = ['statusCode'=> 200,'message' => 'Se eliminó la provincia: '.$_info];
}else{
Log::error('NO se borró la provincia: '.$_info);
$respuesta = ['statusCode'=> 304,'message' => 'NO se eliminó la provincia: '.$_info];
}
} else {
if ($filtro) {
Log::error('El usuario no posee el filtro: '.$provincia->codigo);
} else {
Log::error('No existe el filtro: '.$provincia->codigo);
}
$respuesta = ['statusCode'=> 304,'message' => 'No cuenta con la autorización para eliminar la provincia: '.$_info];
}
} else {
$respuesta = ['statusCode'=> 304,'message' => 'Existen '.$deptos.' departamentos que dependen de ésta provincia. '.$_info];
Expand Down
94 changes: 94 additions & 0 deletions app/Http/Controllers/RoleController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;

class RoleController extends Controller
{
public function listarRoles(){
$roles = Role::all();
$permisos = Permission::where('guard_name', 'web')->get();
$filtros = Permission::where('guard_name', 'filters')->get();
return view('roles', compact('roles','permisos','filtros'));
}

public function editarRol(Request $request, Role $role){
$rol = Role::find($role)->first();
if($rol) {
if($request->newName){
$nuevo = Role::where('name', $request->newName)->first();
if($nuevo) {
return redirect()->back()->with('error_rename','Ya existe el rol!')->with('id_error', $role->id);
} else {
$rol->name = $request->newName;
$rol->save();
}
}
if($request->role_type == "permisos"){
if($request->permisos){
// actualizo el guard antes de hacer la sincronizacion
$rol->setAttribute('guard_name', 'web');
$rol->save();
$rol->syncPermissions($request->permisos);
return redirect()->route('admin.listarRoles')->with('info','Rol actualizado!');
} else {
return redirect()->back()->with('error_authorization_edit','Debe asignar al menos un permiso/filtro')->with('id_error', $role->id);
}
} elseif($request->role_type == "filtros") {
if($request->filtros){
// tomo los modelos ya que si a syncPermissions() le mando una lista de ids intentara sincronizar usando el guard default (web)
$filtros = Permission::find($request->filtros);
// actualizo el guard antes de hacer la sincronizacion
$rol->setAttribute('guard_name', 'filters');
$rol->save();
$rol->syncPermissions($request->filtros);
return redirect()->route('admin.listarRoles')->with('info','Rol actualizado!');
} else {
return redirect()->back()->with('error_authorization_edit','Debe asignar al menos un permiso/filtro')->with('id_error', $role->id);
}
}
}
}

public function crearRol(Request $request){
if($request->newRoleName){
$rol = Role::where('name', $request->newRoleName)->first();
if($rol) {
return redirect()->back()->with('error_create','Ya existe el rol!')->with('id', $rol->id);
} else {
if($request->role_type == "permisos"){
if($request->permisos){
$nuevoRol = Role::create(['guard_name' => 'web','name' => $request->newRoleName]);
$nuevoRol->syncPermissions($request->permisos);
return redirect()->route('admin.listarRoles')->with('info','Rol creado!');
} else {
return redirect()->back()->with('error_authorizations_new','Debe asignar al menos un permiso/filtro');
}
} elseif($request->role_type == "filtros") {
$nuevoRol = Role::create(['guard_name' => 'filters','name' => $request->newRoleName]);
// tomo los modelos ya que si a syncPermissions() le mando una lista de ids intentara sincronizar usando el guard default (web)
$filtros = Permission::find($request->filtros);
$nuevoRol->syncPermissions($request->filtros);
return redirect()->route('admin.listarRoles')->with('info','Rol creado!');
} else {
return redirect()->back()->with('error_authorizations_new','Debe asignar al menos un permiso/filtro');
}
}
} else {
return redirect()->back()->with('error_create','El nombre del rol no puede estar vacío.');
}

}

public function detallesRol(Request $request, $roleId) {
$rol = Role::find($roleId);
$autorizaciones = $rol->permissions()->pluck('name');
return response()->json([
'rol' => $rol,
'autorizaciones' => $autorizaciones,
]);
}
}
10 changes: 5 additions & 5 deletions app/Http/Controllers/SegmenterController.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public function store(Request $request)
flash($mensaje)->error()->important();
return $mensaje;
}

$AppUser = Auth::user();
$data = [];
$segmenta_auto = false;
Expand Down Expand Up @@ -97,7 +97,7 @@ public function store(Request $request)
$temp[0] = (object) $algo;
$codaglo = isset($codaglo) ? $codaglo : $temp;
$ppdddllls=[];

// Carga de arcos o e00
if ($request->hasFile('shp')) {
if($shp_file = Archivo::cargar($request->shp, Auth::user(),
Expand Down Expand Up @@ -151,7 +151,7 @@ public function store(Request $request)
if ($ppdddlll != null){
if (strlen($ppdddlll->link)==2) {
flash('Se cargo una provincia. La '.$ppdddlll->link)->info()->important();
} else {
} elseif ($ppdddlll->link != null){
flash('Preparando localidad '.$ppdddlll->link.'. Agrego segi, segd e Intenta juntar Geom y Listado')->info();
MyDB::agregarsegisegd($ppdddlll->link);
MyDB::juntaListadoGeom('e'.$ppdddlll->link);
Expand All @@ -176,7 +176,7 @@ public function store(Request $request)
$procesar_result = false;
flash("Error en el modelo archivo al cargar PxRad")->error();
}
if ($procesar_result)
if ($procesar_result)
{
$tabla = $pxrad_file->tabla;
// Busco provincia encontrada en pxrad:
Expand Down Expand Up @@ -285,6 +285,6 @@ public function store(Request $request)
$oDepto->loadCount('localidades')]);
}
return view('segmenter/index', ['data' => $data,'epsgs'=> $this->epsgs]);

}
}
26 changes: 22 additions & 4 deletions app/Http/Controllers/UserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,16 @@ class UserController extends Controller
{

public function listarUsuarios(){
$usuarios = User::paginate(15);
$usuarios = User::all();
$roles = Role::all();
$permisos = Permission::all();
return view('users', compact('usuarios', 'roles', 'permisos'));
$permisos = Permission::where('guard_name', 'web')->get();
$filtros = Permission::where('guard_name', 'filters')->get();
try{
$superadmins = User::role('Super Admin')->count();
} catch (Spatie\Permission\Exceptions\RoleDoesNotExist $e) {
Session::flash('message', 'No existe el rol "Super Admin"');
}
return view('users', compact('usuarios', 'roles', 'permisos', 'filtros', 'superadmins'));
}

public function editarRolUsuario(Request $request, User $user){
Expand All @@ -26,8 +32,20 @@ public function editarRolUsuario(Request $request, User $user){
}

public function editarPermisoUsuario(Request $request, User $user){
$user->syncPermissions($request->permisos);
// le sincronizo tambien los filtros que ya tenia para que no se pierdan
$filtros = $user->getAllPermissions()->where('guard_name', 'filters');
$user->syncPermissions([$request->permisos, $filtros]);
return redirect()->route('admin.listarUsuarios')->with('info','Permisos actualizados!');
}

public function editarFiltroUsuario(Request $request, User $user){
// le sincronizo tambien los permisos que ya tenia para que no se pierdan
$permisos = $user->getAllPermissions()->where('guard_name', 'web');
// tomo los modelos de los filtros,
// ya que si a syncPermissions() le mando una lista de ids intentara sincronizar usando el guard default (web)
$filtros = Permission::where('guard_name', 'filters')->get()->whereIn('id', $request->filtros);
$user->syncPermissions([$filtros, $permisos]);
return redirect()->route('admin.listarUsuarios')->with('info','Filtros actualizados!');
}

}
26 changes: 13 additions & 13 deletions app/Model/Archivo.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;
use Symfony\Component\Process\Exception\ProcessTimedOutException;
use Symfony\Component\Process\Exception\RuntimeException;
use Symfony\Component\Process\Exception\RuntimeException;
use Illuminate\Support\Facades\Config;
use App\Imports\SegmentosImport;
use App\Imports\CsvImport;
Expand Down Expand Up @@ -57,7 +57,7 @@ private static function checksumCalculate($request_file, $shape_files = []){
}
}
$checksum = md5(implode('',$checksums));
}
}
return $checksum;
}

Expand Down Expand Up @@ -118,7 +118,7 @@ public static function cargar($request_file, $user, $tipo=null, $shape_files = [
if ($shape_file != null and $shape_file != ''){
$extension = strtolower($shape_file->getClientOriginalExtension());
$data_files[] = $shape_file->storeAs('segmentador', $random_name.'.'.$extension);
$size_total =+ $shape_file->getSize();
$size_total = $size_total + $shape_file->getSize();
};
}
}
Expand Down Expand Up @@ -191,7 +191,7 @@ public function getArchivosSHP() {

// genero nombre para cada extension
$extensiones = [".shp", ".dbf", ".shx", ".prj"];
foreach ($extensiones as $extension) {
foreach ($extensiones as $extension) {
$o = storage_path().'/app/'.$nombre . $extension;
$key = 'mandarina_'.$nombre_original . $extension;
$archivos[$key]= $o;
Expand Down Expand Up @@ -320,7 +320,7 @@ public function procesarGeomSHP($capa = 'arc') {
-overwrite $file )'
);
$processOGR2OGR->setTimeout(1800);

//Cargo etiquetas
try{
$processOGR2OGR->run(null,[
Expand Down Expand Up @@ -476,18 +476,18 @@ public function pasarData(){
$codprov = MyDB::getProv('lab', 'e_'.$this->tabla);
$codprov_pol = MyDB::getProv('arc', 'e_'.$this->tabla);

flash('Puede ser una "pais" x prov con deptos: '.count($coddeptos).' o '.count($coddeptos_pol));
flash('Puede ser una "pais" x prov con deptos: '.count($coddeptos).' o '.count($coddeptos_pol));

if ($codprov != null){
if ($codprov != null){
flash('Se encontró Provincia : '.$codprov);
// MyDB::createSchema($coddepto->link);
// MyDB::copiaraEsquemaPais('e_'.$this->tabla,'e'.$coddepto->link,$coddepto->link);
MyDB::createSchema($codprov);
MyDB::copiaraEsquemaPais('e_'.$this->tabla,'e'.$codprov,'lab',null,$codprov);
$count++;
}
if ($codprov_pol != null){

if ($codprov_pol != null){
flash('Se encontró Departamentos en arc/pol : '.$codprov_pol);
// MyDB::createSchema($coddepto->link);
// MyDB::copiaraEsquemaPais('e_'.$this->tabla,'e'.$coddepto->link,$coddepto->link);
Expand All @@ -496,7 +496,7 @@ public function pasarData(){
$count++;
$codprov=$codprov_pol;
}

MyDB::limpiar_esquema('e_'.$this->tabla);
$prov=array('link'=>$codprov);
$resultado[0] = (object) $prov;
Expand Down Expand Up @@ -576,7 +576,7 @@ public function buscarYBorrarArchivosSHP($original, $copia){

// busco para cada extension
$extensiones = [".dbf", ".shx", ".prj"];
foreach ($extensiones as $extension) {
foreach ($extensiones as $extension) {
$o = $nombre_original . $extension;
$c = $nombre_copia . $extension;
if(Storage::exists($c)) {
Expand All @@ -597,7 +597,7 @@ public function buscarYBorrarArchivosSHP($original, $copia){
}
}
}

public function chequearYBorrarStorage(Archivo $original){
$copia = $this;
if(Storage::exists($original->nombre)) {
Expand Down Expand Up @@ -648,5 +648,5 @@ public function limpiar_copia(Archivo $original){
$this->delete();
Log::info("Se eliminó el registro");
}

}

0 comments on commit f92517f

Please sign in to comment.