Added authentication
This commit is contained in:
parent
67af4ef427
commit
c26d8e4642
24
app/Hashing/MySQLHasher.php
Normal file
24
app/Hashing/MySQLHasher.php
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Hashing;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Hashing\Hasher;
|
||||||
|
use Illuminate\Hashing\AbstractHasher;
|
||||||
|
|
||||||
|
class MySQLHasher extends AbstractHasher implements Hasher
|
||||||
|
{
|
||||||
|
public function make($value, array $options = []): string
|
||||||
|
{
|
||||||
|
return '*' . mb_strtoupper(sha1(sha1($value, true)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function check($value, $hashedValue, array $options = []): bool
|
||||||
|
{
|
||||||
|
return $this->make($value) === $hashedValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function needsRehash($hashedValue, array $options = []): bool
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
57
app/Http/Controllers/LoginController.php
Normal file
57
app/Http/Controllers/LoginController.php
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Http\RedirectResponse;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
use Illuminate\View\View;
|
||||||
|
|
||||||
|
class LoginController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Handle an authentication attempt.
|
||||||
|
*/
|
||||||
|
public function login(Request $request): RedirectResponse
|
||||||
|
{
|
||||||
|
$validator = Validator::make($request->all(), [
|
||||||
|
'login' => ['required'],
|
||||||
|
'password' => ['required'],
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($validator->fails())
|
||||||
|
return redirect('user/login')->withErrors($validator)->withInput();
|
||||||
|
|
||||||
|
$credentials = $validator->validated();
|
||||||
|
|
||||||
|
if (Auth::attempt($credentials)) {
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
$user->ip = $request->ip();
|
||||||
|
$user->saveOrFail();
|
||||||
|
|
||||||
|
return redirect()->intended('user/administration');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect('user/login')->withErrors([
|
||||||
|
'login' => 'The provided credentials do not match our records.',
|
||||||
|
])->onlyInput('login');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log the user out of the application.
|
||||||
|
*/
|
||||||
|
public function logout(Request $request): View
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return view('user/logout');
|
||||||
|
}
|
||||||
|
}
|
@ -4,23 +4,40 @@
|
|||||||
|
|
||||||
// use Illuminate\Contracts\Auth\MustVerifyEmail;
|
// use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
use Illuminate\Foundation\Auth\User;
|
||||||
use Illuminate\Notifications\Notifiable;
|
use Illuminate\Notifications\Notifiable;
|
||||||
use Laravel\Sanctum\HasApiTokens;
|
use Laravel\Sanctum\HasApiTokens;
|
||||||
|
|
||||||
class User extends Authenticatable
|
class Account extends User
|
||||||
{
|
{
|
||||||
use HasApiTokens, HasFactory, Notifiable;
|
use HasApiTokens, HasFactory, Notifiable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The connection name for the model.
|
||||||
|
*
|
||||||
|
* @var string|null
|
||||||
|
*/
|
||||||
|
protected $connection = 'account';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The table associated with the model.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $table = 'account';
|
||||||
|
|
||||||
|
const UPDATED_AT = null;
|
||||||
|
const CREATED_AT = 'create_time';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The attributes that are mass assignable.
|
* The attributes that are mass assignable.
|
||||||
*
|
*
|
||||||
* @var array<int, string>
|
* @var array<int, string>
|
||||||
*/
|
*/
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'name',
|
'login',
|
||||||
'email',
|
|
||||||
'password',
|
'password',
|
||||||
|
'email',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -30,7 +47,8 @@ class User extends Authenticatable
|
|||||||
*/
|
*/
|
||||||
protected $hidden = [
|
protected $hidden = [
|
||||||
'password',
|
'password',
|
||||||
'remember_token',
|
'social_id',
|
||||||
|
'securitycode'
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
@ -3,7 +3,11 @@
|
|||||||
namespace App\Providers;
|
namespace App\Providers;
|
||||||
|
|
||||||
// use Illuminate\Support\Facades\Gate;
|
// use Illuminate\Support\Facades\Gate;
|
||||||
|
use App\Hashing\MySQLHasher;
|
||||||
|
use Illuminate\Auth\EloquentUserProvider;
|
||||||
|
use Illuminate\Foundation\Application;
|
||||||
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
|
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class AuthServiceProvider extends ServiceProvider
|
class AuthServiceProvider extends ServiceProvider
|
||||||
{
|
{
|
||||||
@ -21,6 +25,9 @@ class AuthServiceProvider extends ServiceProvider
|
|||||||
*/
|
*/
|
||||||
public function boot(): void
|
public function boot(): void
|
||||||
{
|
{
|
||||||
//
|
Auth::provider('legacy', function (Application $app, array $config) {
|
||||||
|
$mysqlHasher = new MySQLHasher();
|
||||||
|
return new EloquentUserProvider($mysqlHasher, $config['model']);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,14 +61,10 @@
|
|||||||
|
|
||||||
'providers' => [
|
'providers' => [
|
||||||
'users' => [
|
'users' => [
|
||||||
'driver' => 'eloquent',
|
// 'driver' => 'eloquent',
|
||||||
'model' => App\Models\User::class,
|
'driver' => 'legacy',
|
||||||
|
'model' => App\Models\Account::class,
|
||||||
],
|
],
|
||||||
|
|
||||||
// 'users' => [
|
|
||||||
// 'driver' => 'database',
|
|
||||||
// 'table' => 'users',
|
|
||||||
// ],
|
|
||||||
],
|
],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'default' => env('DB_CONNECTION', 'mysql'),
|
'default' => env('DB_CONNECTION', 'website'),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@ -35,62 +35,26 @@
|
|||||||
|
|
||||||
'connections' => [
|
'connections' => [
|
||||||
|
|
||||||
'sqlite' => [
|
'website' => [
|
||||||
'driver' => 'sqlite',
|
|
||||||
'url' => env('DATABASE_URL'),
|
|
||||||
'database' => env('DB_DATABASE', database_path('database.sqlite')),
|
|
||||||
'prefix' => '',
|
|
||||||
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
|
|
||||||
],
|
|
||||||
|
|
||||||
'mysql' => [
|
|
||||||
'driver' => 'mysql',
|
'driver' => 'mysql',
|
||||||
'url' => env('DATABASE_URL'),
|
|
||||||
'host' => env('DB_HOST', '127.0.0.1'),
|
'host' => env('DB_HOST', '127.0.0.1'),
|
||||||
'port' => env('DB_PORT', '3306'),
|
'port' => env('DB_PORT', '3306'),
|
||||||
'database' => env('DB_DATABASE', 'forge'),
|
'database' => 'website',
|
||||||
'username' => env('DB_USERNAME', 'forge'),
|
'username' => env('DB_USERNAME', 'forge'),
|
||||||
'password' => env('DB_PASSWORD', ''),
|
'password' => env('DB_PASSWORD', ''),
|
||||||
'unix_socket' => env('DB_SOCKET', ''),
|
|
||||||
'charset' => 'utf8mb4',
|
'charset' => 'utf8mb4',
|
||||||
'collation' => 'utf8mb4_unicode_ci',
|
'collation' => 'utf8mb4_unicode_ci',
|
||||||
'prefix' => '',
|
|
||||||
'prefix_indexes' => true,
|
|
||||||
'strict' => true,
|
|
||||||
'engine' => null,
|
|
||||||
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
|
||||||
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
|
|
||||||
]) : [],
|
|
||||||
],
|
],
|
||||||
|
|
||||||
'pgsql' => [
|
'account' => [
|
||||||
'driver' => 'pgsql',
|
'driver' => 'mysql',
|
||||||
'url' => env('DATABASE_URL'),
|
|
||||||
'host' => env('DB_HOST', '127.0.0.1'),
|
'host' => env('DB_HOST', '127.0.0.1'),
|
||||||
'port' => env('DB_PORT', '5432'),
|
'port' => env('DB_PORT', '3306'),
|
||||||
'database' => env('DB_DATABASE', 'forge'),
|
'database' => 'account',
|
||||||
'username' => env('DB_USERNAME', 'forge'),
|
'username' => env('DB_USERNAME', 'forge'),
|
||||||
'password' => env('DB_PASSWORD', ''),
|
'password' => env('DB_PASSWORD', ''),
|
||||||
'charset' => 'utf8',
|
'charset' => 'utf8mb4',
|
||||||
'prefix' => '',
|
'collation' => 'utf8mb4_unicode_ci',
|
||||||
'prefix_indexes' => true,
|
|
||||||
'search_path' => 'public',
|
|
||||||
'sslmode' => 'prefer',
|
|
||||||
],
|
|
||||||
|
|
||||||
'sqlsrv' => [
|
|
||||||
'driver' => 'sqlsrv',
|
|
||||||
'url' => env('DATABASE_URL'),
|
|
||||||
'host' => env('DB_HOST', 'localhost'),
|
|
||||||
'port' => env('DB_PORT', '1433'),
|
|
||||||
'database' => env('DB_DATABASE', 'forge'),
|
|
||||||
'username' => env('DB_USERNAME', 'forge'),
|
|
||||||
'password' => env('DB_PASSWORD', ''),
|
|
||||||
'charset' => 'utf8',
|
|
||||||
'prefix' => '',
|
|
||||||
'prefix_indexes' => true,
|
|
||||||
// 'encrypt' => env('DB_ENCRYPT', 'yes'),
|
|
||||||
// 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'),
|
|
||||||
],
|
],
|
||||||
|
|
||||||
],
|
],
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\User>
|
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Account>
|
||||||
*/
|
*/
|
||||||
class UserFactory extends Factory
|
class UserFactory extends Factory
|
||||||
{
|
{
|
||||||
|
@ -59,7 +59,7 @@
|
|||||||
fancybox_css.close.right = $('#fancybox-close').css('right');
|
fancybox_css.close.right = $('#fancybox-close').css('right');
|
||||||
fancybox_css.close.top = $('#fancybox-close').css('top');
|
fancybox_css.close.top = $('#fancybox-close').css('top');
|
||||||
fancybox_css.close.width = $('#fancybox-close').css('width');
|
fancybox_css.close.width = $('#fancybox-close').css('width');
|
||||||
$('#fancybox-outer').css({'background': 'transparent url("img/isbg.png") center center no-repeat'});
|
$('#fancybox-outer').css({'background': 'transparent url("/img/isbg.png") center center no-repeat'});
|
||||||
$('#fancybox-close').css({'background-image': 'none', 'height': '16px', 'right': '3px', 'top': '7px', 'width': '16px'});
|
$('#fancybox-close').css({'background-image': 'none', 'height': '16px', 'right': '3px', 'top': '7px', 'width': '16px'});
|
||||||
},
|
},
|
||||||
'onComplete': function() {
|
'onComplete': function() {
|
||||||
@ -129,14 +129,14 @@ function () {
|
|||||||
</div>
|
</div>
|
||||||
@else
|
@else
|
||||||
<div id="userBox">
|
<div id="userBox">
|
||||||
<div class='welcome-text welcome-text-left'>Bun venit, " . $_SESSION['id'] . "</div>
|
<div class="welcome-text welcome-text-left">Bun venit, {{ Auth::user()->login }}</div>
|
||||||
<div class='welcome-text welcome-text-right'>Ai " . $_SESSION['coins'] . " Monede</div>
|
<div class="welcome-text welcome-text-right">Ai {{ Auth::user()->cash }} Monede Dragon</div>
|
||||||
<br class="clearfloat" />
|
<br class="clearfloat" />
|
||||||
<div class="header-box-nav-container">
|
<div class="header-box-nav-container">
|
||||||
<ul class="header-box-nav-login" style="position:absolute; margin-left:-0px;">
|
<ul class="header-box-nav-login" style="position:absolute; margin-left:-0px;">
|
||||||
<li class="stepdown"><a href="?s=donate" class="nav-box-btn nav-box-btn-1">Doneaza</a></li>
|
<li class="stepdown"><a href="#" class="nav-box-btn nav-box-btn-1">Încarcă MD</a></li>
|
||||||
<li class="stepdown"><a href="?s=administration" class="nav-box-btn nav-box-btn-2">Datele utilizatorului</a></li>
|
<li class="stepdown"><a href="{{ url('user/administration') }}" class="nav-box-btn nav-box-btn-2">Datele utilizatorului</a></li>
|
||||||
<li class="stepdown"><a href="?s=home&logout" class="nav-box-btn nav-box-btn-4">Delogare</a></li>
|
<li class="stepdown"><a href="{{ url('user/logout') }}" class="nav-box-btn nav-box-btn-4">Delogare</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -180,18 +180,20 @@ function () {
|
|||||||
<div class="modul-box-bg-bottom">
|
<div class="modul-box-bg-bottom">
|
||||||
<h3>Logare</h3>
|
<h3>Logare</h3>
|
||||||
<form action="{{ url('user/login') }}" method="post">
|
<form action="{{ url('user/login') }}" method="post">
|
||||||
|
@csrf
|
||||||
|
|
||||||
<div class="form-login">
|
<div class="form-login">
|
||||||
<label>Nume de utilizator</label>
|
<label>Nume de utilizator</label>
|
||||||
<div class="input">
|
<div class="input">
|
||||||
<input type="text" name="user"><br>
|
<input type="text" name="login"><br>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<label>Parola</label>
|
<label>Parola</label>
|
||||||
<div class="input">
|
<div class="input">
|
||||||
<input type="password" name="pw"><br>
|
<input type="password" name="password"><br>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<input type="submit" class="button btn-login" name="login" value="Login">
|
<input type="submit" class="button btn-login" value="Login">
|
||||||
<p class="agbok">
|
<p class="agbok">
|
||||||
Intrând aici, accept <a href="{{ url('legal/terms') }}"><strong>Termenii și condițiile</strong></a>.
|
Intrând aici, accept <a href="{{ url('legal/terms') }}"><strong>Termenii și condițiile</strong></a>.
|
||||||
<a href="{{ url('user/passwordlostrequest') }}" rel="nofollow" class="password">Ai uitat parola?</a>
|
<a href="{{ url('user/passwordlostrequest') }}" rel="nofollow" class="password">Ai uitat parola?</a>
|
||||||
@ -209,7 +211,7 @@ function () {
|
|||||||
<div class="modul-box-bg">
|
<div class="modul-box-bg">
|
||||||
<div class="modul-box-bg-bottom">
|
<div class="modul-box-bg-bottom">
|
||||||
<h3>Descărcare</h3>
|
<h3>Descărcare</h3>
|
||||||
<a href="?s=download" class="btn download-btn"></a>
|
<a href="{{ url('main/download') }}" class="btn download-btn"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -219,16 +221,6 @@ function () {
|
|||||||
<div class="modul-box-bg">
|
<div class="modul-box-bg">
|
||||||
<div class="modul-box-bg-bottom">
|
<div class="modul-box-bg-bottom">
|
||||||
<h3>Magazinul de item-uri</h3>
|
<h3>Magazinul de item-uri</h3>
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$.ajax({
|
|
||||||
dataType: 'jsonp', data: '', jsonp: '',
|
|
||||||
url: "/is/",
|
|
||||||
success: function(returndata) {;},
|
|
||||||
error: function(XMLHttpRequest, textStatus, errorThrown) {;}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
<a href="/is/" class="itemshop btn itemshop-btn iframe" title="Magazinul de item-uri"></a>
|
<a href="/is/" class="itemshop btn itemshop-btn iframe" title="Magazinul de item-uri"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -12,21 +12,25 @@
|
|||||||
<h4>Datele utilizatorului</h4>
|
<h4>Datele utilizatorului</h4>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Nume de utilizator: gigelfrone</li>
|
<li>Nume de utilizator: {{ Auth::user()->login }}</li>
|
||||||
<li>Email: <span id="yourEmail">gigelfrone@gmail.com</span></li>
|
<li>Email: <span id="yourEmail">{{ Auth::user()->email }}</span></li>
|
||||||
<li>Monede Dragon: 123 <a href="#" class="load-link">(top up)</a></li>
|
<li>Monede Dragon: {{ Auth::user()->cash }} <a href="#" class="load-link">(top up)</a></li>
|
||||||
<li>Semnele Dragonului: 20</li>
|
<li>Semnele Dragonului: {{ Auth::user()->mileage }}</li>
|
||||||
|
|
||||||
|
@if (Auth::user()->social_id)
|
||||||
|
<li class="long-li-code">Cod de ștergere caracter: <span class="delete-code">{{ Auth::user()->social_id }}</span></li>
|
||||||
|
@else
|
||||||
<li class="long-li-code">Cod de ștergere caracter: <span class="delete-code">încă nespecificat</span></li>
|
<li class="long-li-code">Cod de ștergere caracter: <span class="delete-code">încă nespecificat</span></li>
|
||||||
|
@endif
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="administration-box"><a href="#" class="btn">Încarcă MD</a><p>Îmbunătățește-ți contul folosind Monede Dragon</p></div>
|
<div class="administration-box"><a href="#" class="btn">Încarcă MD</a><p>Îmbunătățește-ți contul folosind Monede Dragon</p></div>
|
||||||
<div class="administration-box"><a href="#" class="btn">Caracter</a><p>Lista caracterelor</p></div>
|
<div class="administration-box"><a href="{{ url('user/characters') }}" class="btn">Caracter</a><p>Lista caracterelor</p></div>
|
||||||
{{-- <div class="administration-box"><a href="#" class="btn">Prieteni</a><p>Recruteaza prieteni si vezi statusul noilor prieteni recrutati</p></div> --}}
|
{{-- <div class="administration-box"><a href="#" class="btn">Prieteni</a><p>Recruteaza prieteni si vezi statusul noilor prieteni recrutati</p></div> --}}
|
||||||
<div class="administration-box"><a href="?s=emailchange" class="btn">Email</a><p>Schimbă adresa de email</p></div>
|
<div class="administration-box"><a href="{{ url('user/emailchange') }}" class="btn">Email</a><p>Schimbă adresa de email</p></div>
|
||||||
<div class="administration-box"><a href="#passwordchangerequest" class="btn">Parola</a><p>Schimbă parola</p></div>
|
<div class="administration-box"><a href="{{ url('user/passwordchangerequest') }}" class="btn">Parola</a><p>Schimbă parola</p></div>
|
||||||
<div class="administration-box"><a href="?s=pwchange" class="btn">Schimba Datele</a><p>Schimba datele contului</p></div>
|
<div class="administration-box"><a href="{{ url('user/storagepasswordlost') }}" class="btn">Parola Depozit</a><p>Cere parola de la Depozit</p></div>
|
||||||
<div class="administration-box"><a href="?s=storagepasswordlost" class="btn">Parola Depozit</a><p>Cere parola de la Depozit</p></div>
|
<div class="administration-box"><a href="{{ url('user/displaycode') }}" class="btn">Parola Stergere</a><p>Codul pentru ştergerea personajelor</p></div>
|
||||||
<div class="administration-box"><a href="?s=displaycode" class="btn">Parola Stergere</a><p>Codul pentru ştergerea personajelor</p></div>
|
|
||||||
<div class="administration-box"><a href="#" class="btn">Anularea contului</a><p>Anularea contului</p></div>
|
<div class="administration-box"><a href="#" class="btn">Anularea contului</a><p>Anularea contului</p></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -12,19 +12,27 @@
|
|||||||
<h3><a id="topwLost" href="{{ url('user/passwordlostrequest') }}" title="Ai uitat parola?">Ai uitat parola?</a>Logare</h3>
|
<h3><a id="topwLost" href="{{ url('user/passwordlostrequest') }}" title="Ai uitat parola?">Ai uitat parola?</a>Logare</h3>
|
||||||
<div class="trenner"></div>
|
<div class="trenner"></div>
|
||||||
<form name="loginForm" id="loginForm" action="{{ url('user/login') }}" method="post">
|
<form name="loginForm" id="loginForm" action="{{ url('user/login') }}" method="post">
|
||||||
|
@csrf
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label for="username">Nume de utilizator: *</label>
|
<label for="username">Nume de utilizator: *</label>
|
||||||
<input type="text" class="validate[required,custom[noSpecialCharacters]]" id="username" name="username" maxlength="16" value=""/>
|
<input type="text" class="validate[required,custom[noSpecialCharacters]]" id="username" name="login" maxlength="16" value="{{ old('login') }}"/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label for="password">Parola: *</label>
|
<label for="password">Parola: *</label>
|
||||||
<input type="password" class="validate[required,length[5,16]]" id="password" name="password" maxlength="16" value=""/>
|
<input type="password" class="validate[required,length[5,16]]" id="password" name="password" maxlength="16" value="{{ old('password') }}" />
|
||||||
</div>
|
</div>
|
||||||
<div id="checkerror">
|
<div id="checkerror">
|
||||||
<p>Intrând aici, accept <a href="{{ url('legal/terms') }}" target="_blank"><strong>Termenii şi condiţiile</strong></a>.</p>
|
<p>Intrând aici, accept <a href="{{ url('legal/terms') }}" target="_blank"><strong>Termenii şi condiţiile</strong></a>.</p>
|
||||||
</div>
|
</div>
|
||||||
<input id="submitBtn" class="btn-big" type="submit" name="SubmitLoginForm" value="Trimite"/>
|
<input id="submitBtn" class="btn-big" type="submit" name="SubmitLoginForm" value="Trimite"/>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
@error('login')
|
||||||
|
$.validationEngine.buildPrompt("#username", "{{ $message }}", "error");
|
||||||
|
@enderror
|
||||||
|
@error('password')
|
||||||
|
$.validationEngine.buildPrompt("#password", "{{ $message }}", "error");
|
||||||
|
@enderror
|
||||||
</script>
|
</script>
|
||||||
</form>
|
</form>
|
||||||
<p id="regLegend">* este necesar</p>
|
<p id="regLegend">* este necesar</p>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use App\Http\Controllers\LoginController;
|
||||||
use Illuminate\Support\Facades\Redirect;
|
use Illuminate\Support\Facades\Redirect;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
@ -49,19 +50,21 @@
|
|||||||
|
|
||||||
Route::prefix('user')->group(function() {
|
Route::prefix('user')->group(function() {
|
||||||
Route::get('/register', fn () => view('user/register'));
|
Route::get('/register', fn () => view('user/register'));
|
||||||
Route::get('/login', fn () => view('user/login'));
|
Route::get('/login', fn () => view('user/login'))->name('login');
|
||||||
|
Route::post('/login', [LoginController::class, 'login']);
|
||||||
// will autocomplete the username
|
// will autocomplete the username
|
||||||
Route::get('/login/{username}', fn ($username) => view('user/login'));
|
Route::get('/login/{username}', fn ($username) => view('user/login'));
|
||||||
Route::get('/logout', fn () => view('user/logout'));
|
Route::get('/logout', [LoginController::class, 'logout']);
|
||||||
|
|
||||||
Route::get('/administration', fn () => view('user/administration'));
|
|
||||||
|
|
||||||
Route::get('/characters', fn () => view('user/characters'));
|
|
||||||
|
|
||||||
Route::get('/passwordlostrequest', fn () => view('user/passwordlostrequest'));
|
Route::get('/passwordlostrequest', fn () => view('user/passwordlostrequest'));
|
||||||
Route::get('/passwordlost/{username}/{hash}', fn ($username, $hash) => view('user/passwordlost-expired'));
|
Route::get('/passwordlost/{username}/{hash}', fn ($username, $hash) => view('user/passwordlost-expired'));
|
||||||
Route::get('/resendack', fn () => view('user/resendack'));
|
Route::get('/resendack', fn () => view('user/resendack'));
|
||||||
|
|
||||||
|
Route::middleware('auth')->group(function() {
|
||||||
|
Route::get('/administration', fn () => view('user/administration'));
|
||||||
|
|
||||||
|
Route::get('/characters', fn () => view('user/characters'));
|
||||||
|
|
||||||
Route::get('/emailchangeaccept/{username}/{hash}', fn ($username, $hash) => view('user/emailchangeaccept'));
|
Route::get('/emailchangeaccept/{username}/{hash}', fn ($username, $hash) => view('user/emailchangeaccept'));
|
||||||
Route::get('/emailchangecancel/{username}/{hash}', fn ($username, $hash) => view('user/emailchangecancel'));
|
Route::get('/emailchangecancel/{username}/{hash}', fn ($username, $hash) => view('user/emailchangecancel'));
|
||||||
|
|
||||||
@ -71,6 +74,7 @@
|
|||||||
|
|
||||||
Route::get('/lostpasswordcode/{userId}/{hash}', fn ($userId, $hash) => view('user/lostpasswordcode'));
|
Route::get('/lostpasswordcode/{userId}/{hash}', fn ($userId, $hash) => view('user/lostpasswordcode'));
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
Route::prefix('contest')->group(function() {
|
Route::prefix('contest')->group(function() {
|
||||||
Route::get('/', fn () => Redirect::to('/contest/info', 301));
|
Route::get('/', fn () => Redirect::to('/contest/info', 301));
|
||||||
@ -84,3 +88,7 @@
|
|||||||
Route::get('/privacy', fn () => view('legal/privacy'));
|
Route::get('/privacy', fn () => view('legal/privacy'));
|
||||||
Route::get('/imprint', fn () => view('legal/imprint'));
|
Route::get('/imprint', fn () => view('legal/imprint'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Route::fallback(function() {
|
||||||
|
return view('errors.404');
|
||||||
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user