Files
picquiz/picquiz/app/Http/Controllers/UserController.php
2022-11-04 18:23:55 +01:00

83 lines
2.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
use PhpParser\Node\Expr\FuncCall;
use Illuminate\Support\Facades\Auth;
class UserController extends Controller
{
// 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');
$formFields['profile_picture'] = '/storage/'.$formFields['profile_picture'];
}
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', 'Sikeres regisztráció!');
}
//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!');
}
//View User:
public function view() {
return view('users.view');
}
}