add('invalid_username_password', '' . molms_lt('ERROR') . ': ' . molms_lt('Invalid Username or password.'));
return $currentuser;
} else {
$session_action = apply_filters('mo2f_session_addon', 'block', $currentuser);
if ($session_action == 'block') {
return 'block';
} else {
$redirect_to = isset($_REQUEST['redirect_to']) ? esc_url_raw($_REQUEST['redirect_to']) : null;
$session_id = isset($_POST['session_id']) ? sanitize_text_field($_POST['session_id']) : null;
$user_id = $currentuser->ID;
$mo2f_factor = new Molms_Password_2Factor_Login();
$mo2f_factor->miniorange_pass2login_start_session();
$session_id_encrypt=$mo2f_factor->create_session();
$currentuser = get_user_by('id', $user_id);
wp_set_current_user($user_id, $currentuser->user_login);
$mobile_login = new Miniorange_Mobile_Login();
$mobile_login->remove_current_activity($session_id_encrypt);
wp_set_auth_cookie($user_id, true);
do_action('wp_login', $currentuser->user_login, $currentuser);
redirect_user_to($currentuser, $redirect_to);
exit;
}
}
}
function mo_session_addon_activation()
{
update_site_option('mo2f_session_addon_installed', 1);
}
function mo_session_addon_deactivation()
{
update_site_option('mo2f_session_addon_installed', 0);
update_site_option('mo2f_simultaneous_session_enable', 0);
update_site_option('mo2f_idle_session_logout_enable', 0);
update_site_option('mo2f_session_logout_time_enable', 0);
}
function mo2fa_load_textdomain()
{
load_plugin_textdomain('miniorange-2-factor-authentication', false, dirname(plugin_basename(__FILE__)) . '/lang/');
}
public static function molms_lt($string)
{
return __($string, 'miniorange-2-factor-authentication');
}
function mo2f_user_session_expiry()
{
$expiry_hours = get_site_option('mo2f_number_of_timeout_hours');
if ($expiry_hours < 4) {
$expiry_time = 14*24*60*60;
return $expiry_time;
}
if ($expiry_hours) {
$expiry_time = $expiry_hours*60*60;
} else {
$expiry_time = 14*24*60*60;
}
return $expiry_time;
}
function mo2f_plugin_session_addon($identity, $currentuser)
{
$sessions_allowed = get_site_option('mo2f_simultaneous_session_allowed', 10);
$session_details = WP_Session_Tokens::get_instance($currentuser->ID);
$session_count = count($session_details->get_all());
if ($session_count >= $sessions_allowed) {
$session_action = get_site_option('mo2f_simultaneous_session_give_entry');
if ($session_action) {
$previous_session_details = WP_Session_Tokens::get_instance($currentuser->ID);
$previous_session_details->destroy_all();
return 'allow';
} else {
return 'block';
}
}
}
function mo2f_idle_session_script()
{
$idle_session = get_site_option("mo2f_number_of_idle_hours", 10);
if ($idle_session < 4) {
return 24;
}
if (is_user_logged_in()) {
if (get_site_option('mo2f_idle_session_logout_enable')) {
echo '';
echo '';
wp_enqueue_script('idle_session_timeout_script', plugins_url('includes/js/mo_idle_session_logout.js', dirname(__FILE__)));
}
}
}
public function miniorange_idle_session_logout_init()
{
if (isset($_POST['idle_session_timeout'])&&isset($_POST['update_time'])&& sanitize_text_field($_POST['idle_session_timeout']) =='timeout'&& sanitize_text_field($_POST['update_time']) =='now') {
$nonce = sanitize_text_field($_POST['nonce']);
if (! wp_verify_nonce($nonce, 'molms-nonce')) {
return;
}
wp_destroy_current_session();
exit;
}
}
}
new Molms_Session;