Files
librenms-librenms/app/Http/Controllers/Auth/LoginController.php
Jellyfrog 09929bd686 Implement OAuth and SAML2 support (#13764)
* Implement OAuth and SAML2 support via Socialite

* Add socialite docs

* fixes

* Additional information added

* wip

* 22.3.0 targeted version

* Allow mysql auth as long as there is a password saved

Co-authored-by: laf <gh+n@laf.io>
Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-02-20 22:05:51 +01:00

73 lines
2.1 KiB
PHP

<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\Device;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use LibreNMS\Config;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function username(): string
{
return 'username';
}
/**
* @return \Illuminate\View\View|\Illuminate\Http\RedirectResponse|\Symfony\Component\HttpFoundation\Response
*/
public function showLoginForm(Request $request)
{
// Check if we want to redirect users to the socialite provider directly
if (! $request->has('redirect') && Config::get('auth.socialite.redirect') && array_key_first(Config::get('auth.socialite.configs', []))) {
return (new SocialiteController)->redirect($request, array_key_first(Config::get('auth.socialite.configs', [])));
}
if (Config::get('public_status')) {
$devices = Device::isActive()->with('location')->get();
return view('auth.public-status')->with('devices', $devices);
}
return view('auth.login');
}
protected function loggedOut(Request $request): \Illuminate\Http\RedirectResponse
{
return redirect(Config::get('auth_logout_handler', $this->redirectTo));
}
}