diff --git a/picquiz/app/Http/Controllers/UserController.php b/picquiz/app/Http/Controllers/UserController.php index b9a7bca..7d7aee5 100644 --- a/picquiz/app/Http/Controllers/UserController.php +++ b/picquiz/app/Http/Controllers/UserController.php @@ -10,67 +10,94 @@ use Illuminate\Support\Facades\Auth; class UserController extends Controller { - // Show Register/Create Form: - public function create() { - return view('users.register'); - } + // ### Register ### - //Create a new user and store it in database: - public function store(Request $request) { - $formFields = $request->validate([ - 'username' => ['required', 'min:3'], - 'email' => ['required', 'email', Rule::unique('users', 'email')], - 'password' => ['required', 'confirmed', 'min:6'], - //'profile_picture' => ['image', 'mimes:jpg,png,jpeg,gif,svg', 'max:2048', 'dimensions:min_width:100,min_height:100,max_width:1000,max_height:1000'] - ]); - - if ($request->hasFile('profile_picture')) { - $formFields['profile_picture'] = $request->file('profile_picture')->store('images/uploads/users', 'public'); - - } - else { - $formFields['profile_picture'] = "/images/samplePictures/Sample_User_Icon.png"; + // Show Register/Create Form: + public function create() { + return view('users.register'); + } + + //Create a new user and store it in database: + public function store(Request $request) { + $formFields = $request->validate([ + 'username' => ['required', 'min:3'], + 'email' => ['required', 'email', Rule::unique('users', 'email')], + 'password' => ['required', 'confirmed', 'min:6'], + //'profile_picture' => ['image', 'mimes:jpg,png,jpeg,gif,svg', 'max:2048', 'dimensions:min_width:100,min_height:100,max_width:1000,max_height:1000'] + ]); + + if ($request->hasFile('profile_picture')) { + $formFields['profile_picture'] = $request->file('profile_picture')->store('images/uploads/users', 'public'); + + } + else { + $formFields['profile_picture'] = "/images/samplePictures/Sample_User_Icon.png"; + } + + //dd($formFields['profile_picture']); + + //Hash password: + $formFields['password'] = bcrypt($formFields['password']); + + $user = User::create($formFields); + + return redirect('/')->with('message', 'Példa szöveg regisztráció tesztelésére!'); + } + + // ### Login ### + + //Show Login form: + public function login() { + return view('users.login'); + } + + //Authenticate User: + public function authenticate(Request $request) { + $formFields = $request->validate([ + 'email' => ['required', 'email'], + 'password' => ['required'] + ]); + + if (auth()->attempt($formFields)) { + + $request->session()->regenerate(); + return redirect('/')->with('message', 'Sikeresen bejelentkeztél!'); + } + + return back()->withErrors(['email' => 'Hibás adatmegadás!'])->onlyInput('email'); + } + + //Logout: + public function logout(Request $request) { + auth()->logout(); + + $request->session()->invalidate(); + $request->session()->regenerateToken(); + + return redirect('/')->with('message', 'Sikeresen kijelentkeztél!'); + } + + // ### Modify ### + + public function toggle_ban(Request $request){ + if (!Auth::check() || Auth::User()->isAdmin != 1) { + return abort(401); } - //dd($formFields['profile_picture']); + $uid = $request->uid; + if(User::where('id', $uid)->get()[0]->isBanned){ + $this->set_ban($uid, False); + }else{ + $this->set_ban($uid, true); + } - //Hash password: - $formFields['password'] = bcrypt($formFields['password']); + return redirect('/UserList'); + } - $user = User::create($formFields); - - return redirect('/')->with('message', 'Példa szöveg regisztráció tesztelésére!'); - } - - //Show Login form: - public function login() { - return view('users.login'); - } - - //Authenticate User: - public function authenticate(Request $request) { - $formFields = $request->validate([ - 'email' => ['required', 'email'], - 'password' => ['required'] - ]); - - if (auth()->attempt($formFields)) { - - $request->session()->regenerate(); - return redirect('/')->with('message', 'Sikeresen bejelentkeztél!'); - } - - return back()->withErrors(['email' => 'Hibás adatmegadás!'])->onlyInput('email'); - } - - //Logout: - public function logout(Request $request) { - auth()->logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/')->with('message', 'Sikeresen kijelentkeztél!'); + private function set_ban($uid, $banned) + { + User::where('id', $uid)->update(['isBanned' => $banned]); + return; } } diff --git a/picquiz/resources/views/users/list.blade.php b/picquiz/resources/views/users/list.blade.php index dc6c18a..6e96b0a 100644 --- a/picquiz/resources/views/users/list.blade.php +++ b/picquiz/resources/views/users/list.blade.php @@ -47,7 +47,8 @@ Nem @endif -
@@ -60,7 +61,9 @@ Nem @endif - diff --git a/picquiz/routes/web.php b/picquiz/routes/web.php index 0775b67..2850489 100644 --- a/picquiz/routes/web.php +++ b/picquiz/routes/web.php @@ -65,3 +65,5 @@ Route::get('/play', function(){ return view('game/game'); }); //Route::get('/UserDoList', [UserListController::class, 'do_list']); Route::get('/UserList', function() {return view('users/list'); } ); + +Route::post('/toggleBan', [UserController::class, 'toggle_ban'] );