²é¿´/±à¼ ´úÂë
ÄÚÈÝ
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Activity; use App\Role; use App\User; use App\Notifications\UserNotification; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; use RealRashid\SweetAlert\Facades\Alert; class UsersController extends Controller { // public function index(){ $roles = Role::all(); $users = User::orderBy('id','asc')->simplePaginate(10); return view('admin.users',compact('users','roles')); } //View User public function viewUser(User $user){ return view('admin.view',compact('user')); } //Profile public function profile(User $user){ return view('admin.profile',compact('user')); } //Add User public function addUser(Request $request): \Illuminate\Http\RedirectResponse { $validator = Validator::make($request->all(),[ 'email'=>'required | unique:users,email' ]); if ($validator->fails()){ toast('Email must be unique or its required','warning','top-right'); return redirect()->back(); } $password = "$2y$10$7qmNLRgUzr.OXSneWfnUSepEclO3yOVulu4B8ESb29ievpgCg1Zrm"; $admin = new User(); $admin->name = $request->name; $admin->lastName = $request->lastName; $admin->phone = $request->phone; $admin->email = $request->email; $admin->role_id = $request->role_id; $admin->password = $password; $admin->save(); $adminId = $admin->id; if ($adminId){ //Get User Data $userId = Auth::user()->id; $activity = 'Created a user'; //Logging $logs = new Activity(); $logs->user_id = $userId; $logs->activity = $activity; $logs->save(); return redirect()->back(); } else{ toast('Sorry Something went wrong','warning','top-right'); return redirect()->back(); } } //Edit User public function editUser(Request $request): \Illuminate\Http\RedirectResponse { $id = $request->input('id'); $validator = Validator::make($request->all(),[ 'email'=>'required | unique:users,email,'.$id ]); if ($validator->fails()){ toast('Failed, Check email','error','top-right'); return redirect()->back(); } $admin = User::findOrFail($id); $admin->name = $request->name; $admin->lastName = $request->lastName; $admin->email = $request->email; $admin->phone = $request->phone; $admin->role_id = $request->role_id; $admin->push(); //Record activity $adminId = $admin->id; if ($adminId){ $userId = Auth::user()->id; $activity = "Updated user"; $activityLog = new Activity(); $activityLog->user_id = $userId; $activityLog->activity = $activity; $activityLog->save(); toast('User Has been updated','success','top-right'); return redirect()->back(); } else{ toast('Failed to update the user','warning','top-right'); return redirect()->back(); } } //Delete User public function deleteUser($user): \Illuminate\Http\RedirectResponse { $delete = User::findOrFail($user)->delete(); if ($delete){ $userId = Auth::user()->id; $activity = 'Deleted user'; //record Activity $activityLog = new Activity(); $activityLog->user_id = $userId; $activityLog->activity = $activity; $activityLog->save(); toast('Success! User has been deleted','warning','top-right'); } else{ toast('Failed to delete the user','error','top-right'); } return redirect()->back(); } //Update Profile Picture public function updateProfilePicture(Request $request): \Illuminate\Http\RedirectResponse { $validator = Validator::make($request->all(),[ 'image'=>'required |image|mimes:jpeg,png,jpg,gif,svg|max:2048' ]); if ($validator->fails()){ toast('Image is required or input an image'); return redirect()->back(); } $userId = Auth::user()->id; $url = request('image')->store('users','public'); $update = User::where('id',$userId) ->update(['image'=>$url]); if ($update){ //activity $activity = 'Updated profile picture'; $activityLog = new Activity(); $activityLog->user_id = $userId; $activityLog->activity = $activity; $activityLog->save(); toast('Profile picture has been updated','success','top-right'); } else{ toast('Failed to update the profile','error','top-right'); } return redirect()->back(); } //Read Notification public function userActivity(): \Illuminate\Http\RedirectResponse { $readNotification = Auth::user()->unreadNotifications->markAsRead(); if ($readNotification){ toast('You have read all notifications','info','top-right'); } return redirect()->back(); } //Clear Activity Logs public function clearAdminLog($user): \Illuminate\Http\RedirectResponse { $delete = Activity::where('user_id',$user)->delete(); if ($delete){ toast('Activity Logs have been cleared','success','top-right'); } else{ toast('Failed to delete Logs','info','top-right'); } return redirect()->back(); } public function allNotifications(){ return view('admin.notification'); } public function updatePassword(Request $request): \Illuminate\Http\RedirectResponse { $validatePassword = $request->validate([ 'oldPass'=>'required|min:6', 'password'=>'required|string|min:6', 'password_confirmation'=>'required|same:password' ],[ 'oldPass.required'=>'Old Password is required', 'oldPass.min'=>'The Old password needs to have a minimum of 6 characters', 'password.required'=>'New Password is required', 'password.min'=>'The New password needs to have a minimum of 6 characters', 'password_confirmation.same' => 'Password confirmation did not match.' ]); $currentPassword = Auth::user()->password; if (Hash::check($request->input('oldPass'),$currentPassword)){ $user_id = Auth::user()->id; $obj_user = User::find($user_id); $obj_user->password = Hash::make($request->input('password')); $obj_user->save(); //Activity $activity = 'Password has been updated'; $activityLog = new Activity(); $activityLog->user_id = $user_id; $activityLog->activity = $activity; $activityLog->save(); toast('Password has been updated','success','top-right'); } else{ toast('Failed to update password','warning','top-right'); } return redirect()->back(); } }