X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=lib%2Fmailshears%2Fplugins%2Froundcube_db.rb;h=7d1a037623ecf75092162d7cdf77c30897b7c092;hb=d5d01229271c2afa82e90e5bad6f80546b1ae47a;hp=cb2e055f44f9b720ca436a510e6f7c0fb85bfadf;hpb=314f5670531dfda9b3d708fce8b0161a098cf134;p=mailshears.git diff --git a/lib/mailshears/plugins/roundcube_db.rb b/lib/mailshears/plugins/roundcube_db.rb index cb2e055..7d1a037 100644 --- a/lib/mailshears/plugins/roundcube_db.rb +++ b/lib/mailshears/plugins/roundcube_db.rb @@ -5,13 +5,14 @@ class RoundcubeDb include Plugin def initialize() - @db_host = Configuration::ROUNDCUBE_DBHOST - @db_port = Configuration::ROUNDCUBE_DBPORT - @db_opts = Configuration::ROUNDCUBE_DBOPTS - @db_tty = Configuration::ROUNDCUBE_DBTTY - @db_name = Configuration::ROUNDCUBE_DBNAME - @db_user = Configuration::ROUNDCUBE_DBUSER - @db_pass = Configuration::ROUNDCUBE_DBPASS + cfg = Configuration.new() + @db_host = cfg.roundcube_dbhost + @db_port = cfg.roundcube_dbport + @db_opts = cfg.roundcube_dbopts + @db_tty = cfg.roundcube_dbtty + @db_name = cfg.roundcube_dbname + @db_user = cfg.roundcube_dbuser + @db_pass = cfg.roundcube_dbpass end @@ -39,28 +40,16 @@ class RoundcubeDb # belonging to it. user_id = self.get_user_id(account) - # This is mostly unnecessary when using Postgres. The Roundcube - # developers were nice enough to include DBMS-specific install and - # upgrade scripts, so Postgres can take advantage of ON DELETE - # triggers. Here's an example: + # The Roundcube developers were nice enough to include + # DBMS-specific install and upgrade scripts, so Postgres can take + # advantage of ON DELETE triggers. Here's an example: # # ... # user_id integer NOT NULL # REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE # - sql_queries = ['DELETE FROM cache WHERE user_id = $1::int;'] - sql_queries << 'DELETE FROM cache_index WHERE user_id = $1::int;' - sql_queries << 'DELETE FROM cache_messages WHERE user_id = $1::int;' - sql_queries << 'DELETE FROM cache_thread WHERE user_id = $1::int;' - sql_queries << 'DELETE FROM contactgroupmembers WHERE contactgroup_id IN (SELECT contactgroup_id FROM contactgroups WHERE user_id = $1::int);' - sql_queries << 'DELETE FROM contactgroups WHERE user_id = $1::int;' - sql_queries << 'DELETE FROM contacts WHERE user_id = $1::int;' - sql_queries << 'DELETE FROM identities WHERE user_id = $1::int;' - sql_queries << 'DELETE FROM dictionary WHERE user_id = $1::int;' - sql_queries << 'DELETE FROM searches WHERE user_id = $1::int;' - - # This one is of course necessary with any DBMS. - sql_queries << 'DELETE FROM users WHERE user_id = $1::int;' + # This query is of course necessary with any DBMS: + sql_queries = ['DELETE FROM users WHERE user_id = $1::int;'] begin connection = PGconn.connect(@db_host, @@ -92,7 +81,7 @@ class RoundcubeDb def get_leftover_accounts(db_accounts) - # Given a list of all users who have logged in to Roundcube. + # Get a list of all users who have logged in to Roundcube. rc_accounts = self.get_roundcube_usernames() return rc_accounts - db_accounts end