mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
* 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>
73 lines
2.1 KiB
PHP
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));
|
|
}
|
|
}
|