]> gitweb.michael.orlitzky.com - mailshears.git/blobdiff - lib/common/postfixadmin_plugin.rb
Make list_users() methods public in several plugins.
[mailshears.git] / lib / common / postfixadmin_plugin.rb
index 4bfda9dcdece7e7216856b17ff96745c031313e7..b14f295031e4ff1178ec114ca483562604d394d4 100644 (file)
@@ -6,9 +6,7 @@ module PostfixadminPlugin
   # share.  That is, we implement the Plugin interface.
   include Plugin
 
-  def initialize()
-
-    cfg = Configuration.new()
+  def initialize(cfg)
     @db_host = cfg.postfixadmin_dbhost
     @db_port = cfg.postfixadmin_dbport
     @db_opts = cfg.postfixadmin_dbopts
@@ -19,9 +17,9 @@ module PostfixadminPlugin
   end
 
 
-  def describe_account(account)
+  def describe_user(user)
     # There's no other unique identifier in PostfixAdmin
-    return account
+    return user
   end
 
 
@@ -60,7 +58,7 @@ module PostfixadminPlugin
 
 
   def list_users()
-    accounts = []
+    users = []
 
     # Just assume PostgreSQL for now.
     begin
@@ -72,11 +70,9 @@ module PostfixadminPlugin
                                   @db_user,
                                   @db_pass)
 
-      # If address = goto, then the alias basically says, "really
-      # deliver to that address; it's not an alias."
       sql_query = 'SELECT username FROM mailbox;'
       connection.query(sql_query) do |result|
-        accounts = result.field_values('username')
+        users = result.field_values('username')
       end
       connection.close()
     rescue PGError => e
@@ -84,7 +80,7 @@ module PostfixadminPlugin
       raise DatabaseError.new(e)
     end
 
-    return accounts
+    return users
   end
 
 
@@ -116,4 +112,35 @@ module PostfixadminPlugin
     return usernames
   end
 
+
+  def list_aliases()
+    #
+    # Get a list of all aliases, useful for testing.
+    #
+    aliases = []
+
+    # Just assume PostgreSQL for now.
+    begin
+      connection = PGconn.connect(@db_host,
+                                  @db_port,
+                                  @db_opts,
+                                  @db_tty,
+                                  @db_name,
+                                  @db_user,
+                                  @db_pass)
+
+      sql_query = 'SELECT address,goto FROM alias;'
+      results = connection.query(sql_query)
+      results.each do |row|
+        aliases << row # row should be a hash
+      end
+      connection.close()
+    rescue PGError => e
+      # But pretend like we're database-agnostic in case we ever are.
+      raise DatabaseError.new(e)
+    end
+
+    return aliases
+  end
+
 end