X-Git-Url: http://gitweb.michael.orlitzky.com/?p=mailshears.git;a=blobdiff_plain;f=lib%2Fcommon%2Fagendav_plugin.rb;h=3b3389dcd074ea4c8b3e666ebf0874b5ec7dfc99;hp=c5e7d7719178dd5035f46b39a2c8cf79c78399ae;hb=HEAD;hpb=579a22471329c71552bcb4077a0590d60cdec784 diff --git a/lib/common/agendav_plugin.rb b/lib/common/agendav_plugin.rb deleted file mode 100644 index c5e7d77..0000000 --- a/lib/common/agendav_plugin.rb +++ /dev/null @@ -1,56 +0,0 @@ -require 'common/plugin' -require 'common/user' - -# Code that all Agendav plugins ({AgendavPrune}, {AgendavRm}, -# {AgendavMv}) share. -module AgendavPlugin - - # We implement the Plugin "interface." - include Plugin - - - # Initialize this Agendav {Plugin} with values in *cfg*. - # - # @param cfg [Configuration] the configuration for this plugin. - # - def initialize(cfg) - @db_hash = { - :host => cfg.agendav_dbhost, - :port => cfg.agendav_dbport, - :options => cfg.agendav_dbopts, - :tty => cfg.agendav_dbtty, - :dbname => cfg.agendav_dbname, - :user => cfg.agendav_dbuser, - :password => cfg.agendav_dbpass } - end - - - # Return a list of Agendav users. - # - # @return [Array] a list of users contained in the - # Agendav database. - # - def list_users() - users = [] - - connection = PG::Connection.new(@db_hash) - - # There are also "owner" and "with" fields in the "shares" table, - # but they contains principal URLs and not a bare username. Thus - # their format depends on the CalDAV server configuration, and - # isn't predictable. - sql_query = 'SELECT username FROM prefs;' - - begin - connection.query(sql_query) do |result| - users = result.field_values('username') - end - ensure - # Make sure the connection gets closed even if the query explodes. - connection.close() - end - - return users.map{ |u| User.new(u) } - end - -end