añadir funicionalidades de permisos y grupos
This commit is contained in:
@@ -2,33 +2,14 @@
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Models\Document;
|
||||
use App\Models\Project;
|
||||
use App\Models\User;
|
||||
use App\Policies\DocumentPolicy;
|
||||
use App\Policies\PermissionPolicy;
|
||||
use App\Policies\ProfilePolicy;
|
||||
use App\Policies\ProjectPolicy;
|
||||
use App\Policies\RolePolicy;
|
||||
use App\Policies\UserPolicy;
|
||||
use Illuminate\Support\Facades\Blade;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Illuminate\Support\Facades\Blade;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Livewire\Livewire;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
use Spatie\Permission\Models\Role;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
|
||||
protected $policies = [
|
||||
User::class => UserPolicy::class,
|
||||
User::class => ProfilePolicy::class,
|
||||
Role::class => RolePolicy::class,
|
||||
Permission::class => PermissionPolicy::class,
|
||||
Document::class => DocumentPolicy::class,
|
||||
Project::class => ProjectPolicy::class,
|
||||
];
|
||||
|
||||
/**
|
||||
* Register any application services.
|
||||
*/
|
||||
@@ -42,10 +23,23 @@ class AppServiceProvider extends ServiceProvider
|
||||
*/
|
||||
public function boot(): void
|
||||
{
|
||||
//
|
||||
// Configuración de componentes Blade
|
||||
Blade::componentNamespace('App\\View\\Components', 'icons');
|
||||
Blade::component('multiselect', \App\View\Components\Multiselect::class);
|
||||
|
||||
// Registro de componentes Livewire
|
||||
Livewire::component('project-show', \App\Http\Livewire\ProjectShow::class);
|
||||
Livewire::component('file-upload', \App\Http\Livewire\FileUpload::class);
|
||||
Livewire::component('toolbar', \App\Http\Livewire\Toolbar::class);
|
||||
|
||||
// Validación personalizada
|
||||
Validator::extend('max_upload_size', function ($attribute, $value, $parameters, $validator) {
|
||||
$maxSize = env('MAX_UPLOAD_SIZE', 51200); // 50MB por defecto
|
||||
$totalSize = array_reduce($value, function($sum, $file) {
|
||||
return $sum + $file->getSize();
|
||||
}, 0);
|
||||
|
||||
return $totalSize <= ($maxSize * 1024);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
66
app/Providers/AppServiceProvider.php.back
Normal file
66
app/Providers/AppServiceProvider.php.back
Normal file
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Models\Document;
|
||||
use App\Models\Folder;
|
||||
use App\Models\Project;
|
||||
use App\Models\User;
|
||||
use App\Policies\DocumentPolicy;
|
||||
use App\Policies\FolderPolicy;
|
||||
use App\Policies\PermissionPolicy;
|
||||
use App\Policies\ProfilePolicy;
|
||||
use App\Policies\ProjectPolicy;
|
||||
use App\Policies\RolePolicy;
|
||||
use App\Policies\UserPolicy;
|
||||
use Illuminate\Support\Facades\Blade;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Livewire\Livewire;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
use Spatie\Permission\Models\Role;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
|
||||
protected $policies = [
|
||||
User::class => UserPolicy::class,
|
||||
User::class => ProfilePolicy::class,
|
||||
Role::class => RolePolicy::class,
|
||||
Permission::class => PermissionPolicy::class,
|
||||
Document::class => DocumentPolicy::class,
|
||||
Project::class => ProjectPolicy::class,
|
||||
Folder::class => FolderPolicy::class,
|
||||
];
|
||||
|
||||
/**
|
||||
* Register any application services.
|
||||
*/
|
||||
public function register(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Bootstrap any application services.
|
||||
*/
|
||||
public function boot(): void
|
||||
{
|
||||
//
|
||||
Blade::componentNamespace('App\\View\\Components', 'icons');
|
||||
Blade::component('multiselect', \App\View\Components\Multiselect::class);
|
||||
|
||||
Livewire::component('project-show', \App\Http\Livewire\ProjectShow::class);
|
||||
Livewire::component('project-show', \App\Http\Livewire\FileUpload::class);
|
||||
Livewire::component('toolbar', \App\Http\Livewire\Toolbar::class);
|
||||
|
||||
Validator::extend('max_upload_size', function ($attribute, $value, $parameters, $validator) {
|
||||
$maxSize = env('MAX_UPLOAD_SIZE', 51200); // Default 50MB
|
||||
$totalSize = array_reduce($value, function($sum, $file) {
|
||||
return $sum + $file->getSize();
|
||||
}, 0);
|
||||
|
||||
return $totalSize <= ($maxSize * 1024);
|
||||
});
|
||||
}
|
||||
}
|
||||
62
app/Providers/AuthServiceProvider.php
Normal file
62
app/Providers/AuthServiceProvider.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
//use Illuminate\Support\ServiceProvider;
|
||||
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use App\Models\User;
|
||||
use App\Models\Document;
|
||||
use App\Models\Project;
|
||||
use App\Models\Folder;
|
||||
use Spatie\Permission\Models\Role;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
use App\Policies\UserPolicy;
|
||||
use App\Policies\DocumentPolicy;
|
||||
use App\Policies\ProjectPolicy;
|
||||
use App\Policies\FolderPolicy;
|
||||
use App\Policies\RolePolicy;
|
||||
use App\Policies\PermissionPolicy;
|
||||
|
||||
class AuthServiceProvider extends ServiceProvider
|
||||
{
|
||||
|
||||
/**
|
||||
* The policy mappings for the application.
|
||||
*
|
||||
* @var array<class-string, class-string>
|
||||
*/
|
||||
protected $policies = [
|
||||
User::class => UserPolicy::class,
|
||||
|
||||
Project::class => ProjectPolicy::class,
|
||||
Folder::class => FolderPolicy::class,
|
||||
Document::class => DocumentPolicy::class,
|
||||
|
||||
Role::class => RolePolicy::class,
|
||||
Permission::class => PermissionPolicy::class,
|
||||
];
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Register services.
|
||||
*/
|
||||
public function register(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Bootstrap services.
|
||||
*/
|
||||
public function boot(): void
|
||||
{
|
||||
$this->registerPolicies();
|
||||
|
||||
// Configuración adicional de gates aquí si es necesario
|
||||
Gate::before(function ($user, $ability) {
|
||||
return $user->hasRole('admin') ? true : null;
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user