]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 192393 - $::dbwritesallowed never set
authorbbaetz%acm.org <>
Sun, 9 Feb 2003 07:26:47 +0000 (07:26 +0000)
committerbbaetz%acm.org <>
Sun, 9 Feb 2003 07:26:47 +0000 (07:26 +0000)
r, a=justdave

Bugzilla.pm
CGI.pl
globals.pl

index a45c5ca0fd40bd6e714b5523cfb57e940069e766..56d1f24cc7c4e4ed369112333cfc5cfae2711ee1 100644 (file)
@@ -46,7 +46,6 @@ sub cgi {
 my $_dbh;
 my $_dbh_main;
 my $_dbh_shadow;
-
 sub dbh {
     my $class = shift;
 
@@ -58,6 +57,17 @@ sub dbh {
     return $_dbh;
 }
 
+sub dbwritesallowed {
+    my $class = shift;
+
+    # We can write if we are connected to the main database.
+    # Note that if we don't have a shadowdb, then we claim that its ok
+    # to write even if we're nominally connected to the shadowdb.
+    # This is OK because this method is only used to test if misc
+    # updates can be done, rather than anything complicated.
+    return $class->dbh == $_dbh_main;
+}
+
 sub switch_to_shadow_db {
     my $class = shift;
 
@@ -175,6 +185,12 @@ method for those scripts/templates which are only use via CGI, though.
 
 The current database handle. See L<DBI>.
 
+=item C<dbwritesallowed>
+
+Determines if writes to the database are permitted. This is usually used to
+determine if some general cleanup needs to occur (such as clearing the token
+table)
+
 =item C<switch_to_shadow_db>
 
 Switch from using the main database to using the shadow database.
diff --git a/CGI.pl b/CGI.pl
index 61797ac44b5cb42f29078ad592aca76cd57608c2..7ded11ef2e20ebad1534f767ba58fa6c5a4e02c7 100644 (file)
--- a/CGI.pl
+++ b/CGI.pl
@@ -611,7 +611,7 @@ Content-type: text/html
         # This seems like as good as time as any to get rid of old
         # crufty junk in the logincookies table.  Get rid of any entry
         # that hasn't been used in a month.
-        if ($::dbwritesallowed) {
+        if (Bugzilla->dbwritesallowed) {
             SendSQL("DELETE FROM logincookies " .
                     "WHERE TO_DAYS(NOW()) - TO_DAYS(lastused) > 30");
         }
@@ -620,7 +620,7 @@ Content-type: text/html
     }
 
     # Update the timestamp on our logincookie, so it'll keep on working.
-    if ($::dbwritesallowed) {
+    if (Bugzilla->dbwritesallowed) {
         SendSQL("UPDATE logincookies SET lastused = null " .
                 "WHERE cookie = $::COOKIE{'Bugzilla_logincookie'}");
     }
index 1aee0bd02f40ba11ed9e8f26bfcf381f72bd29e8..62fc1d63359c665f91fb24cf1b436ea423fbf250 100644 (file)
@@ -352,7 +352,7 @@ sub GetVersionTable {
     }
     if (time() - $mtime > 3600) {
         use Token;
-        Token::CleanTokenTable() if $::dbwritesallowed;
+        Token::CleanTokenTable() if Bugzilla->dbwritesallowed;
         GenerateVersionTable();
     }
     require 'data/versioncache';