* Fixed a bug (maybe) that was causing users to get immediately logged out of the WebUI

* Fixed a bug (maybe) that was breaking initial DB setup on Strikers.

Signed-off-by: Digimer <digimer@alteeve.ca>
main
Digimer 3 years ago
parent 257a998743
commit 32f29861a4
  1. 10
      Anvil/Tools/Account.pm
  2. 4
      Anvil/Tools/Database.pm
  3. 10
      cgi-bin/striker
  4. 2
      notes

@ -451,7 +451,8 @@ AND
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => $debug, list => { query => $query }}); $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => $debug, list => { query => $query }});
$anvil->Database->write({debug => $debug, query => $query, source => $THIS_FILE, line => __LINE__}); $anvil->Database->write({debug => $debug, query => $query, source => $THIS_FILE, line => __LINE__});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 1, key => "log_0198", variables => { user => $anvil->data->{cgi}{username}{value} }}); my $user = $anvil->data->{cgi}{username}{value} ? $anvil->data->{cgi}{username}{value} : "--";
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 1, key => "log_0198", variables => { user => $user }});
# Log that they're out # Log that they're out
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 1, key => "log_0179"}); $anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 1, key => "log_0179"});
@ -573,7 +574,7 @@ AND
$anvil->data->{sys}{users}{user_name} = $results->[0]->[0]; $anvil->data->{sys}{users}{user_name} = $results->[0]->[0];
$anvil->data->{sessions}{session_salt} = $results->[0]->[1]; $anvil->data->{sessions}{session_salt} = $results->[0]->[1];
$anvil->data->{sessions}{session_salt} = "" if not defined $anvil->data->{sessions}{session_salt}; $anvil->data->{sessions}{session_salt} = "" if not defined $anvil->data->{sessions}{session_salt};
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3, list => { $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => $debug, list => {
"sys::users::user_name" => $anvil->data->{sys}{users}{user_name}, "sys::users::user_name" => $anvil->data->{sys}{users}{user_name},
"sessions::session_salt" => $anvil->data->{sessions}{session_salt}, "sessions::session_salt" => $anvil->data->{sessions}{session_salt},
}}); }});
@ -592,8 +593,9 @@ AND
offset => -86400, offset => -86400,
}); });
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => $debug, list => { $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => $debug, list => {
today_hash => $today_hash, "s1:cookie::anvil_user_hash" => $anvil->data->{cookie}{anvil_user_hash},
yesterday_hash => $yesterday_hash, "s2:today_hash" => $today_hash,
"s3:yesterday_hash" => $yesterday_hash,
}}); }});
# See if either hash matches what the user has stored. # See if either hash matches what the user has stored.

@ -1321,12 +1321,14 @@ sub connect
# If we're a Striker, see if we're configured. # If we're a Striker, see if we're configured.
my $local_host_type = $anvil->Get->host_type(); my $local_host_type = $anvil->Get->host_type();
my $local_host_uuid = $anvil->Get->host_uuid(); my $local_host_uuid = $anvil->Get->host_uuid();
my $db_count = keys %{$anvil->data->{database}};
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => $debug, list => { $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => $debug, list => {
local_host_type => $local_host_type, local_host_type => $local_host_type,
local_host_uuid => $local_host_uuid, local_host_uuid => $local_host_uuid,
check_if_configured => $check_if_configured, check_if_configured => $check_if_configured,
real_uid => $<, real_uid => $<,
effective_uid => $>, effective_uid => $>,
db_count => $db_count,
}}); }});
# If requested, and if running with root access, set it up (or update it) if needed. # If requested, and if running with root access, set it up (or update it) if needed.
# This method just returns if nothing is needed. # This method just returns if nothing is needed.
@ -1708,7 +1710,7 @@ sub connect
} }
# If we're a striker and no connections were found, start our database. # If we're a striker and no connections were found, start our database.
if (($local_host_type eq "striker") && (not $anvil->data->{sys}{database}{connections})) if (($local_host_type eq "striker") && (not $anvil->data->{sys}{database}{connections}) && ($db_count > 1))
{ {
# Tell the user we're going to try to load and start. # Tell the user we're going to try to load and start.
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 1, priority => "alert", key => "log_0650"}); $anvil->Log->entry({source => $THIS_FILE, line => __LINE__, level => 1, priority => "alert", key => "log_0650"});

@ -265,7 +265,7 @@ sub process_task
$anvil->data->{cgi}{login}{value} = "" if not defined $anvil->data->{cgi}{login}{value}; $anvil->data->{cgi}{login}{value} = "" if not defined $anvil->data->{cgi}{login}{value};
$anvil->data->{cgi}{logout}{value} = "" if not defined $anvil->data->{cgi}{logout}{value}; $anvil->data->{cgi}{logout}{value} = "" if not defined $anvil->data->{cgi}{logout}{value};
$anvil->data->{cgi}{save}{value} = "" if not defined $anvil->data->{cgi}{save}{value}; $anvil->data->{cgi}{save}{value} = "" if not defined $anvil->data->{cgi}{save}{value};
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3, list => { $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => {
"cgi::login::value" => $anvil->data->{cgi}{login}{value}, "cgi::login::value" => $anvil->data->{cgi}{login}{value},
"cgi::logout::value" => $anvil->data->{cgi}{logout}{value}, "cgi::logout::value" => $anvil->data->{cgi}{logout}{value},
"cgi::save::value" => $anvil->data->{cgi}{save}{value}, "cgi::save::value" => $anvil->data->{cgi}{save}{value},
@ -297,14 +297,14 @@ sub process_task
# 1 - No cookie was found or read. The user needs to log in # 1 - No cookie was found or read. The user needs to log in
# 2 - There was a problem reading the user's UUID (it wasn't found in the database), so the # 2 - There was a problem reading the user's UUID (it wasn't found in the database), so the
# cookies were deleted (via C<< Account->logout() >>. The user needs to log back in. # cookies were deleted (via C<< Account->logout() >>. The user needs to log back in.
# 3 - There user's hash is invalid, it is probably expired. The user has been logged out and # 3 - Their user's hash is invalid, it is probably expired. The user has been logged out and
# needs to log back in. # needs to log back in.
my $cookie_problem = $anvil->Account->read_cookies(); my $cookie_problem = $anvil->Account->read_cookies({debug => 2});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3, list => { cookie_problem => $cookie_problem }}); $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { cookie_problem => $cookie_problem }});
if (not $cookie_problem) if (not $cookie_problem)
{ {
$logged_in = 1; $logged_in = 1;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3, list => { logged_in => $logged_in }}); $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { logged_in => $logged_in }});
} }
} }

@ -18,6 +18,8 @@ SELECT a.scan_apc_ups_name AS name, a.scan_apc_ups_serial_number AS sn, a.scan_a
============ ============
dnf -y install augeas
Jenkins; Jenkins;

Loading…
Cancel
Save