Files
docker-rconfig/app/Http/Controllers/Connections/Telnet/Login.php
2024-10-19 18:23:55 +00:00

77 lines
2.6 KiB
PHP

<?php
namespace App\Http\Controllers\Connections\Telnet;
use App\CustomClasses\SetDeviceStatus;
class Login
{
protected $send;
protected $read;
protected $connectionObj;
public function __construct(object $connectionObj)
{
// dd($connectionObj);
$this->connectionObj = $connectionObj;
$this->send = new Send($this->connectionObj->connection);
$this->read = new Read($this->connectionObj);
}
public function login()
{
if (isset($this->connectionObj->hasSplashScreen) && $this->connectionObj->hasSplashScreen == 'on') {
// avaya login
$this->read->readTo($this->connectionObj->splashScreenReadToText);
$this->send->sendControlCode($this->connectionObj->splashScreenSendControlCode);
}
if ($this->connectionObj->usernamePrompt != "") {
$this->read->readTo($this->connectionObj->usernamePrompt);
$this->send->sendString($this->connectionObj->username);
}
$this->read->readTo($this->connectionObj->passwordPrompt);
$this->send->sendString($this->connectionObj->password);
if ($this->connectionObj->enable == 'on') {
$devicePromptValid = $this->enableModeLogin();
} else {
$devicePromptValid = $this->read->readTo($this->connectionObj->devicePrompt);
}
$this->send->sendString($this->connectionObj->pagingCmd);
$this->read->readTo($this->connectionObj->devicePrompt);
return $this->loginErrorCheck($devicePromptValid);
}
private function loginErrorCheck($devicePromptValid)
{
if ($devicePromptValid != true) {
(new SetDeviceStatus($this->connectionObj->device_id, 0))->setDeviceStatus();
$logmsg = 'Authentication Failed for ' . ($this->connectionObj->hostname . ' ID:' . $this->connectionObj->device_id) . '. Or wrong prompt configured for this device! Check your device settings.';
activityLogIt(__CLASS__, __FUNCTION__, 'error', $logmsg, 'connection', $this->connectionObj->hostname, $this->connectionObj->device_id, 'device');
return false;
}
return true;
}
private function enableModeLogin()
{
// ADD HP LOGIN HERE AFTER
// dd($this->connectionObj);
$this->read->readTo($this->connectionObj->enablePrompt);
$this->send->sendString($this->connectionObj->enableCmd);
$this->read->readTo($this->connectionObj->enablePassPrmpt);
$this->send->sendString($this->connectionObj->enableModePassword);
return $this->read->readTo($this->connectionObj->devicePrompt);
}
}