aboutsummaryrefslogtreecommitdiff
path: root/lib/backend/recipients_store.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/backend/recipients_store.rb')
-rw-r--r--lib/backend/recipients_store.rb79
1 files changed, 79 insertions, 0 deletions
diff --git a/lib/backend/recipients_store.rb b/lib/backend/recipients_store.rb
new file mode 100644
index 0000000..158aabf
--- /dev/null
+++ b/lib/backend/recipients_store.rb
@@ -0,0 +1,79 @@
+module Backend
+ # a store for the recipients configuration
+ class RecipientsStore
+ # Instantiates and stores password
+ def initialize(aBaseDir = "")
+ @baseDir = aBaseDir
+ end
+
+ def addRecipient(aRecipientAddress, aRecipientKey)
+ @recipients.push(Recipient.new(aRecipientAddress, aRecipientKey))
+ end
+
+ def removeRecipient(aRecipientKey)
+# read()
+# @recipients.push(Recipient.new(aRecipientAddress, aRecipientKey))
+# write()
+ end
+
+ def getRecipients()
+ return @recipients
+ end
+
+ def load()
+ read()
+ end
+
+ def save()
+ write()
+ end
+
+ private
+
+ def read()
+ fileName = File.join(@baseDir, "config", "recipients")
+ file = File.new(fileName, "r")
+ begin
+ recipients = []
+
+ while (line = file.gets)
+ parts = line.split()
+ if (parts.length == 2)
+ recipients.push(Recipient.new(parts[1], parts[0]))
+ end
+ end
+
+ @recipients = recipients
+ rescue => err
+ throw err
+ ensure
+ file.close
+ end
+ end
+
+ def write()
+ fileName = File.join(@baseDir, "config", "recipients")
+ file = File.new(fileName, "w")
+ begin
+ @recipients.each do |recipient|
+ file.puts("#{recipient.email} #{recipient.keySignature}")
+ end
+ rescue => err
+ throw err
+ ensure
+ file.close
+ end
+ end
+
+ end
+
+ class Recipient
+ def initialize(aKeySignature, anEmail)
+ @keySignature = aKeySignature
+ @email = anEmail
+ end
+
+ attr_reader :keySignature
+ attr_reader :email
+ end
+end