File manager - Edit - /var/www/payraty/inventory_main/app/Http/Controllers/Admin/Administration/UsersController.php
Back
<?php namespace App\Http\Controllers\Admin\Administration; use App\DataTables\UserDataTable; use App\Http\Requests\UserRequest; use App\Models\User; use App\Services\Role\RoleService; use App\Services\User\UserService; use App\Http\Controllers\Controller; use App\Http\Requests\ProfileRequest; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Log; use Illuminate\Http\Request; use PDF; use Excel; use App\Exports\UsersExport; use Illuminate\Support\Facades\DB; use Spatie\Permission\Models\Role; class UsersController extends Controller { protected $userService; protected $roleService; /** * __construct * * @param mixed $userService * @param mixed $roleService * @return void */ public function __construct(UserService $userService, RoleService $roleService) { $this->userService = $userService; $this->roleService = $roleService; $this->middleware(['permission:List User'])->only(['index']); $this->middleware(['permission:Add User'])->only(['create']); $this->middleware(['permission:Edit User'])->only(['edit']); $this->middleware(['permission:Delete User'])->only(['destroy']); } /** * index * * @param mixed $dataTable * @return void */ public function index(UserDataTable $dataTable) { // return auth()->user(); set_page_meta(__('custom.users')); $currentUser = Auth::user(); $users = User::where('users.organisation_id', $currentUser->organisation_id) ->join('profiles', 'users.id', '=', 'profiles.user_id') ->paginate(15); //return $dataTable->render('admin.administration.users.index'); return view('admin.administration.users.index', compact('users')); } public function filter(Request $request) { $user = Auth::user(); $orgId = $user->organisation_id; $period = $request->get('period', 'all'); $query = User::where('users.organisation_id', $user->organisation_id) ->join('profiles', 'users.id', '=', 'profiles.user_id'); switch ($period) { case 'monthly': $query->whereMonth('users.created_at', now()->month); break; case 'yearly': $query->whereYear('users.created_at', now()->year); break; // 'all' case doesn't need additional filtering } $users = $query->paginate(10); if ($request->ajax()) { return response()->json([ 'users' => $users ]); } // Fallback for non-AJAX requests return redirect()->route('admin.administration.users.index'); } public function search(Request $request) { $user = Auth::user(); $orgId = $user->organisation_id; $searchTerm = $request->get('q'); $users = User::where('users.organisation_id', $user->organisation_id) ->join('profiles', 'users.id', '=', 'profiles.user_id') ->where(function ($query) use ($searchTerm) { $query->where('name', 'LIKE', "%{$searchTerm}%") ->orWhere('email', 'LIKE', "%{$searchTerm}%"); }) ->paginate(10); if ($request->ajax()) { return response()->json([ 'users' => $users ]); } // Fallback for non-AJAX requests return view('admin.administration.users.index', compact('users')); } /** * exportUsers * * @param mixed $request * @return void */ public function exportUsers(Request $request) { $users = []; $type = $request->type; $currentUser = Auth::user(); $users = User::where('users.organisation_id', $currentUser->organisation_id) ->join('profiles', 'users.id', '=', 'profiles.user_id') ->get(); $name = 'User_' . now()->format('YmdHis'); if ($type == 'pdf') { $pdf = PDF::loadView('admin.administration.users.pdf.index', ['users' => $users]); return $pdf->download($name . '.pdf'); } else if ($type == 'csv') { return Excel::download(new UsersExport($users), $name . '.csv'); } else if ($type == 'excel') { return Excel::download(new UsersExport($users), $name . '.xlsx'); } } /** * create * * @return void */ public function create() { $organisation = Auth::user(); $organisationId = $organisation->organisation_id; $roles = Role::where('organisation_id', $organisationId)->get(); set_page_meta(__('custom.add_user')); return view('admin.administration.users.create', compact('roles')); } /** * store * * @param mixed $request * @return void */ public function store(UserRequest $request) { $data = $request->validated(); // // dd($request->all()); // if ($this->userService->createOrUpdate($data)) { // flash(__('custom.user_create_successful'))->success(); // } else { // flash(__('custom.user_create_failed'))->error(); // } // Create the user $user = Auth::user(); $orgId = $user->organisation_id; $user = $this->userService->createOrUpdate($orgId, $data); if ($user) { // Insert user_id into profiles table DB::table('profiles')->insert([ 'user_id' => $user->id, 'first_name' => $data['name'], 'created_at' => now(), 'updated_at' => now(), ]); flash(__('custom.user_create_successful'))->success(); } else { flash(__('custom.user_create_failed'))->error(); } return redirect()->route('admin.users.index'); } /** * edit * * @param mixed $id * @return void */ public function edit($id) { $organisation = Auth::user(); $organisationId = $organisation->organisation_id; $user = User::select( 'users.*', 'users.id as user_id', 'profiles.first_name', 'profiles.last_name', 'profiles.profile_image', ) ->join('profiles', 'users.id', '=', 'profiles.user_id') ->where('users.organisation_id', $organisationId) ->where("users.id", $id)->first(); $user = $this->userService->get($id); // $roles = $this->roleService->get(); $roles = Role::where('organisation_id', $organisationId)->get(); if (!$user) { return redirect()->route('admin.users.index')->with('error', 'User not found.'); } set_page_meta(__('custom.edit_user')); return view('admin.administration.users.edit', compact('user', 'roles')); } /** * update * * @param mixed $request * @param mixed $id * @return void */ public function update(UserRequest $request, $id) { $data = $request->validated(); $user = Auth::user(); $orgId = $user->organisation_id; if ($this->userService->createOrUpdate($orgId, $data, $id)) { flash(__('custom.user_updated_successful'))->success(); } else { flash(__('custom.user_updated_failed'))->error(); } return redirect()->route('admin.users.index'); } /** * destroy * * @param mixed $id * @return void */ public function destroy($id) { // Check self delete if ($id == Auth::id()) { flash(__('custom.you_cant_delete_your_self'))->warning(); return redirect()->back(); } $user = User::where('id', $id)->delete(); flash(__('custom.user_deleted_successful'))->success(); return redirect()->back(); } /** * profile * * @return void */ public function profile() { $user = $this->userService->get(Auth::id()); set_page_meta(__('custom.edit_profile')); return view('admin.administration.users.profile', compact('user')); } /** * updateProfile * * @param mixed $request * @param mixed $profile * @return void */ public function updateProfile(ProfileRequest $request, $profile) { $data = $request->validated(); if ($this->userService->updateProfile($data, Auth::id())) { flash(__('custom.profile_update_successful'))->success(); } else { flash(__('custom.profile_update_failed'))->error(); } return redirect()->route('admin.dashboard'); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings