Authentication: Updates to improve order compatibility.
This commit is contained in:
parent
dec61c3833
commit
d24acf66bf
|
|
@ -75,7 +75,6 @@ class authentication {
|
|||
|
||||
//use the authentication plugins
|
||||
foreach ($_SESSION['authentication']['methods'] as $name) {
|
||||
|
||||
//already processed the plugin move to the next plugin
|
||||
if (!empty($_SESSION['authentication']['plugin']) && !empty($_SESSION['authentication']['plugin'][$name]) && $_SESSION['authentication']['plugin'][$name]['authorized']) {
|
||||
continue;
|
||||
|
|
@ -103,6 +102,7 @@ class authentication {
|
|||
$array = $object->$name();
|
||||
|
||||
//build a result array
|
||||
if (!empty($array) && is_array($array)) {
|
||||
$result['plugin'] = $array["plugin"];
|
||||
$result['domain_name'] = $array["domain_name"];
|
||||
$result['username'] = $array["username"];
|
||||
|
|
@ -113,6 +113,7 @@ class authentication {
|
|||
|
||||
//save the result to the authentication plugin
|
||||
$_SESSION['authentication']['plugin'][$name] = $result;
|
||||
}
|
||||
|
||||
//plugin authorized false
|
||||
if (!$result['authorized']) {
|
||||
|
|
@ -122,6 +123,7 @@ class authentication {
|
|||
}
|
||||
|
||||
//make sure all plugins are in the array
|
||||
if (!empty($_SESSION['authentication']['methods'])) {
|
||||
foreach ($_SESSION['authentication']['methods'] as $name) {
|
||||
if (!isset($_SESSION['authentication']['plugin'][$name]['authorized'])) {
|
||||
$_SESSION['authentication']['plugin'][$name]['plugin'] = $name;
|
||||
|
|
@ -133,6 +135,7 @@ class authentication {
|
|||
$_SESSION['authentication']['plugin'][$name]['authorized'] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//debug information
|
||||
//view_array($_SESSION['authentication'], false);
|
||||
|
|
@ -152,19 +155,19 @@ class authentication {
|
|||
}
|
||||
|
||||
//result array
|
||||
$result["plugin"] = "database";
|
||||
$result["domain_name"] = $_SESSION['domain_name'];
|
||||
if (!isset($_SESSION['username'])) {
|
||||
$result["username"] = $_SESSION['username'];
|
||||
}
|
||||
if (!isset($_SESSION['user_uuid'])) {
|
||||
$result["user_uuid"] = $_SESSION['user_uuid'];
|
||||
}
|
||||
$result["domain_uuid"] = $_SESSION['domain_uuid'];
|
||||
if (!isset($_SESSION['contact_uuid'])) {
|
||||
$result["contact_uuid"] = $_SESSION['contact_uuid'];
|
||||
}
|
||||
$result["authorized"] = $authorized;
|
||||
// $result["plugin"] = "database";
|
||||
// $result["domain_name"] = $_SESSION['domain_name'];
|
||||
// if (!isset($_SESSION['username'])) {
|
||||
// $result["username"] = $_SESSION['username'];
|
||||
// }
|
||||
// if (!isset($_SESSION['user_uuid'])) {
|
||||
// $result["user_uuid"] = $_SESSION['user_uuid'];
|
||||
// }
|
||||
// $result["domain_uuid"] = $_SESSION['domain_uuid'];
|
||||
// if (!isset($_SESSION['contact_uuid'])) {
|
||||
// $result["contact_uuid"] = $_SESSION['contact_uuid'];
|
||||
// }
|
||||
// $result["authorized"] = $authorized;
|
||||
|
||||
//add user logs
|
||||
user_logs::add($result);
|
||||
|
|
|
|||
|
|
@ -226,9 +226,9 @@ class plugin_database {
|
|||
|
||||
//set a few session variables
|
||||
$_SESSION["user_uuid"] = $row['user_uuid'];
|
||||
$_SESSION["contact_uuid"] = $row["contact_uuid"];
|
||||
$_SESSION["username"] = $row['username'];
|
||||
$_SESSION["user_email"] = $row['user_email'];
|
||||
$_SESSION["contact_uuid"] = $row["contact_uuid"];
|
||||
|
||||
//validate the password
|
||||
$valid_password = false;
|
||||
|
|
@ -286,18 +286,23 @@ class plugin_database {
|
|||
$p->delete('user_edit', 'temp');
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
//clear authentication session
|
||||
if (empty($_SESSION['authentication']['methods']) || !is_array($_SESSION['authentication']['methods']) || sizeof($_SESSION['authentication']['methods']) == 0) {
|
||||
unset($_SESSION['authentication']);
|
||||
|
||||
// clear username
|
||||
unset($_SESSION['username'], $_REQUEST['username'], $_POST['username']);
|
||||
}
|
||||
|
||||
// clear username
|
||||
if (!empty($_REQUEST["password"])) {
|
||||
unset($_SESSION['username'], $_REQUEST['username'], $_POST['username']);
|
||||
unset($_SESSION['authentication']);
|
||||
}
|
||||
}
|
||||
|
||||
//result array
|
||||
if ($valid_password) {
|
||||
$result["plugin"] = "database";
|
||||
$result["domain_name"] = $this->domain_name;
|
||||
$result["username"] = $this->username;
|
||||
|
|
@ -307,9 +312,20 @@ class plugin_database {
|
|||
$result["user_email"] = $this->user_email;
|
||||
$result["sql"] = $sql;
|
||||
$result["authorized"] = $valid_password;
|
||||
}
|
||||
|
||||
//return the results
|
||||
return $result;
|
||||
return $result ?? false;
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
unset($_SESSION['username'], $_REQUEST['username'], $_POST['username']);
|
||||
unset($_SESSION['authentication']);
|
||||
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -308,6 +308,7 @@ class plugin_email {
|
|||
$view->assign("login_logo_height", $settings['theme']['login_logo_height']);
|
||||
$view->assign("login_logo_source", $settings['theme']['logo']);
|
||||
$view->assign("button_verify", $text['label-verify']);
|
||||
$view->assign("message_delay", $settings['theme']['message_delay']);
|
||||
if (!empty($_SESSION['username'])) {
|
||||
$view->assign("username", $_SESSION['username']);
|
||||
$view->assign("button_cancel", $text['button-cancel']);
|
||||
|
|
|
|||
|
|
@ -401,7 +401,7 @@ class plugin_totp {
|
|||
//build the result array
|
||||
$result["plugin"] = "totp";
|
||||
$result["domain_name"] = $_SESSION["domain_name"];
|
||||
$result["username"] = $_SESSION["username"];
|
||||
$result["username"] = $_SESSION["username"] ?? null;
|
||||
$result["user_uuid"] = $_SESSION["user_uuid"];
|
||||
$result["domain_uuid"] = $_SESSION["domain_uuid"];
|
||||
$result["contact_uuid"] = $_SESSION["contact_uuid"];
|
||||
|
|
|
|||
Loading…
Reference in New Issue