diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 191b2b6..958045b 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -4,6 +4,8 @@ namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Foundation\Auth\AuthenticatesUsers; +use Illuminate\Http\Request; +use Illuminate\Validation\ValidationException; class LoginController extends Controller { @@ -36,4 +38,19 @@ class LoginController extends Controller { $this->middleware('guest')->except('logout'); } + + public function username() + { + $login = request()->input('login'); + $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'name'; + request()->merge([$field => $login]); + return $field; + } + + protected function sendFailedLoginResponse(Request $request) + { + throw ValidationException::withMessages([ + 'login' => [trans('auth.failed')], + ]); + } } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/ProfileController.php similarity index 79% rename from app/Http/Controllers/UserController.php rename to app/Http/Controllers/ProfileController.php index 8b937e8..fdbd6a1 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/ProfileController.php @@ -10,7 +10,7 @@ use Illuminate\Http\Request; use Illuminate\Validation\Rule; use MightyPork\Utils\Str; -class UserController extends Controller +class ProfileController extends Controller { /** * Show the application dashboard. @@ -23,7 +23,7 @@ class UserController extends Controller ->with('revision:id,row_count') ->paginate(10); - return view('user.view')->with(compact('tables', 'user')); + return view('profile.view')->with(compact('tables', 'user')); } /** @@ -34,7 +34,7 @@ class UserController extends Controller */ public function edit() { - return view('user.edit')->with('user', \user()); + return view('profile.edit')->with('user', \user()); } /** @@ -92,6 +92,17 @@ class UserController extends Controller public function manageOauth() { - return view('user.logins', ['user' => user()]); + return view('profile.logins', ['user' => user()]); + } + + public function forgetSocialLogin($id) + { + $identity = user()->socialIdentities()->where('id', $id)->first(); + if (null === $identity) { + abort(404, "No such identity"); + } + + $identity->delete(); + return redirect(route('profile.manage-oauth')); } } diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php index e4cec9c..e27860e 100644 --- a/app/Http/Middleware/RedirectIfAuthenticated.php +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -18,7 +18,7 @@ class RedirectIfAuthenticated public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check()) { - return redirect('/home'); + return redirect('/'); } return $next($request); diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 55bc903..2537cb7 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -20,7 +20,8 @@ class AppServiceProvider extends ServiceProvider } \Route::bind('user', function ($value) { - $u = User::where('name', $value)->first(); + // Hack to have the URL case insensitive (also needed a vendor patch for login) + $u = User::whereRaw('LOWER(name)=LOWER(?)', [$value])->first(); // it may also be the _id directly if (!$u && is_numeric($value)) $u = User::find((int)$value); if (!$u) abort(404); diff --git a/app/View/WidgetFactory.php b/app/View/WidgetFactory.php index c2e8c84..ffa104b 100644 --- a/app/View/WidgetFactory.php +++ b/app/View/WidgetFactory.php @@ -21,10 +21,11 @@ class WidgetFactory ""; } - public function par($text) + public function par($text, $extraClasses='') { - return "
fieldCols offset-md-$this->labelCols\">".e($text)."". + return + "
fieldCols offset-md-$this->labelCols mb-2 ".e($extraClasses)."\">".e($text)."". "