File manager - Edit - /var/www/ratemypay_dev/app/Http/Controllers/UserController.php
Back
<?php namespace App\Http\Controllers; use App\Models\User; use App\Models\Organization; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Validation\Rule; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Redirect; class UserController extends Controller { public function __construct() { $this->middleware('auth'); $this->authorizeResource(User::class, 'user'); } public function index(Request $request) { $query = User::with('organization'); // Apply filters if ($request->filled('role')) { $query->where('role', $request->role); } if ($request->filled('organization_id')) { $query->where('organization_id', $request->organization_id); } if ($request->filled('search')) { $query->where(function ($q) use ($request) { $q->where('name', 'like', "%{$request->search}%") ->orWhere('email', 'like', "%{$request->search}%") ->orWhere('user_name', 'like', "%{$request->search}%"); }); } $users = $query->latest()->paginate(15); $organizations = Organization::all(); return view('users.index', compact('users', 'organizations')); } public function create() { $organizations = Organization::all(); return view('users.create', compact('organizations')); } public function store(Request $request) { $request->validate([ 'name' => ['required', 'string', 'max:255'], 'user_name' => ['required', 'string', 'max:255', 'unique:users'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'confirmed', 'min:8'], 'role' => ['required', 'in:regular,member,admin'], 'organization_id' => ['nullable', 'exists:organizations,id'], 'address' => ['nullable', 'string', 'max:255'], 'city' => ['nullable', 'string', 'max:255'], 'country' => ['nullable', 'string', 'max:255'], ]); $region = geoip()->getLocation($request->ip())->iso_code ?? 'global'; User::create([ 'name' => $request->name, 'user_name' => $request->user_name, 'email' => $request->email, 'password' => Hash::make($request->password), 'role' => $request->role, 'organization_id' => $request->organization_id, 'address' => $request->address, 'city' => $request->city, 'country' => $request->country, 'region' => $region, ]); return redirect()->route('users.index') ->with('success', 'User created successfully!'); } public function show(User $user) { return view('users.show', compact('user')); } public function edit(User $user) { $organizations = Organization::all(); return view('users.edit', compact('user', 'organizations')); } public function update(Request $request, User $user) { $request->validate([ 'name' => ['required', 'string', 'max:255'], 'user_name' => ['required', 'string', 'max:255', Rule::unique('users')->ignore($user->id)], 'email' => ['required', 'string', 'email', 'max:255', Rule::unique('users')->ignore($user->id)], 'password' => ['nullable', 'confirmed', 'min:8'], 'role' => ['required', 'in:regular,member,admin'], 'organization_id' => ['nullable', 'exists:organizations,id'], 'address' => ['nullable', 'string', 'max:255'], 'city' => ['nullable', 'string', 'max:255'], 'country' => ['nullable', 'string', 'max:255'], ]); $data = $request->all(); if ($request->filled('password')) { $data['password'] = Hash::make($request->password); } else { unset($data['password']); } $user->update($data); return redirect()->route('users.index') ->with('success', 'User updated successfully!'); } /** * Delete the user's account. */ public function destroy(Request $request): RedirectResponse { $request->validateWithBag('userDeletion', [ 'password' => ['required', 'current_password'], ]); $user = $request->user(); Auth::logout(); $user->delete(); $request->session()->invalidate(); $request->session()->regenerateToken(); return Redirect::to('/'); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings