Describe the issue or problem
i want to add user action activity like Username ipaddress user login attempt user login or faild . Information insert in Database
Steps I took leading up to the issue
First On LoginHandler.php page chnage
Ojs Version:
, OJS 3.3.0.11.Php version:7.4.10
i worked on this page
function signIn($args, $request) {
$servername = Config::getVar(‘database’, ‘host’);
$username = Config::getVar(‘database’, ‘username’);
$password = Config::getVar(‘database’, ‘password’);
$dbname = Config::getVar(‘database’, ‘name’);
$conn = new mysqli($servername, $username, $password, $dbname);
//$enc = base64_decode($request->getUserVar('password'));
if(strpos($request->getUserVar('password'), $_COOKIE['captcha_txt']) === false){
$new_password = $request->getUserVar('password');
}else{
$pass_ex = explode('.$%55R*', $request->getUserVar('password'));
$finalpass = explode('*&asgfER**',$pass_ex[1]);
$new_password = base64_decode($finalpass[0]);
}
$this->setupTemplate($request);
if (Validation::isLoggedIn()) $this->sendHome($request);
if (Config::getVar('security', 'force_login_ssl') && $request->getProtocol() != 'https') {
// Force SSL connections for login
$request->redirectSSL();
}
if($_COOKIE[‘captcha_txt’] == $_POST[‘captcha_code’]){
$user = Validation::login($request->getUserVar(‘username’), $request->getUserVar(‘password’), $reason, $request->getUserVar(‘remember’) == null ? false : true);
if ($user !== false) {
$sql = "INSERT INTO audit_trail (ip_address, login_status, username, action_type) VALUES ('".getenv('REMOTE_ADDR')."', 'Successfull Login', '".$request->getUserVar('username')."', '".$_SERVER['REQUEST_METHOD']."')";
$conn->query($sql);
$conn->close();
if ($user->getMustChangePassword()) {
// User must change their password in order to log in
Validation::logout();
$request->redirect(null, null, 'changePassword', $user->getUsername());
} else {
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$source = $request->getUserVar('source');
$redirectNonSsl = Config::getVar('security', 'force_login_ssl') && !Config::getVar('security', 'force_ssl');
if (preg_match('#^/\w#', $source) === 1) {
$request->redirectUrl($source);
}
if ($redirectNonSsl) {
$request->redirectNonSSL();
} else {
$this->_redirectAfterLogin($request);
}
}
} else {
$sql = "INSERT INTO audit_trail (ip_address, login_status, username, action_type) VALUES ('".getenv('REMOTE_ADDR')."', 'Invalid Credentials', '".$request->getUserVar('username')."', '".$_SERVER['REQUEST_METHOD']."')";
$conn->query($sql);
$conn->close();
$sessionManager = SessionManager::getManager();
$session = $sessionManager->getUserSession();
$templateMgr = TemplateManager::getManager($request);
$templateMgr->assign(array(
'username' => $request->getUserVar('username'),
'remember' => $request->getUserVar('remember'),
'source' => $request->getUserVar('source'),
'showRemember' => Config::getVar('general', 'session_lifetime') > 0,
'error' => $reason===null?'user.login.loginError':($reason===''?'user.login.accountDisabled':'user.login.accountDisabledWithReason'),
'reason' => $reason,
));
$templateMgr->display('frontend/pages/userLogin.tpl');
}
}
else {
$sql = "INSERT INTO audit_trail (ip_address, login_status, username, action_type) VALUES ('".getenv('REMOTE_ADDR')."', 'Captch Incorrect', '".$request->getUserVar('username')."', '".$_SERVER['REQUEST_METHOD']."')";
$conn->query($sql);
$conn->close();
$sessionManager = SessionManager::getManager();
$session = $sessionManager->getUserSession();
$templateMgr = TemplateManager::getManager($request);
$templateMgr->assign(array(
'username' => $request->getUserVar('username'),
'remember' => $request->getUserVar('remember'),
'source' => $request->getUserVar('source'),
'showRemember' => Config::getVar('general', 'session_lifetime') > 0,
'error' => $reason===null?'user.login.loginCaptcha':($reason===''?'user.login.accountDisabled':'user.login.accountDisabledWithReason'),
'reason' => 'The Validation code does not match!',
));
$templateMgr->display('frontend/pages/userLogin.tpl');
}
}