+ban functionality

This commit is contained in:
anon 2022-11-03 10:54:38 +01:00
parent d47f1ad7d5
commit 9447132f06
3 changed files with 90 additions and 58 deletions

View File

@ -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;
}
}

View File

@ -47,7 +47,8 @@
<span class="text-danger">Nem</span>
@endif
</div>
<form class="d-inline-block">
<form class="d-inline-block" action="/toggleBan" method=post>
@csrf
<button class="btn btn-warning">Átváltás</button>
</form>
</div>
@ -60,7 +61,9 @@
<span class="text-success">Nem</span>
@endif
</div>
<form class="d-inline-block">
<form class="d-inline-block" action="/toggleBan" method=post>
@csrf
<input class="d-none" name=uid value="{{ $user->id }}">
<button class="btn btn-warning">Átváltás</button>
</form>
</div>

View File

@ -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'] );