diff options
author | Zapata <zapata@xs4all.nl> | 2011-01-29 22:13:05 +0100 |
---|---|---|
committer | Zapata <zapata@xs4all.nl> | 2011-01-29 22:13:05 +0100 |
commit | e65dbf59bf3aaa0b4bde29ca49ca67f7ad17b5a9 (patch) | |
tree | cd914b8c588ea35f732abdbd7336d3c459804b70 /lib/backend | |
parent | 7382be9d83bc5f95ad8d184b95c379ca5b9d1725 (diff) | |
download | keyringer-e65dbf59bf3aaa0b4bde29ca49ca67f7ad17b5a9.tar.gz keyringer-e65dbf59bf3aaa0b4bde29ca49ca67f7ad17b5a9.tar.bz2 |
added preliminary recipient management functionality
Diffstat (limited to 'lib/backend')
-rw-r--r-- | lib/backend/recipients_store.rb | 79 |
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
|