summaryrefslogtreecommitdiff
path: root/users/app/models/account.rb
diff options
context:
space:
mode:
authorjessib <jessib@riseup.net>2013-12-02 10:17:19 -0800
committerjessib <jessib@riseup.net>2013-12-02 10:17:19 -0800
commit8de6f143e53af5287b41913dcf3c7969f452fbc9 (patch)
tree6a311eb5cf4c20fa2053022ca9a45a92f0502f87 /users/app/models/account.rb
parentb75f8781bb55557f13a9a4ae48fc45e5d6f1ee86 (diff)
parentdade6497424a869db5f1dfb030f88f4711278b81 (diff)
Merge pull request #118 from azul/feature/validate-pgp-keys
Feature/validate pgp keys
Diffstat (limited to 'users/app/models/account.rb')
-rw-r--r--users/app/models/account.rb11
1 files changed, 8 insertions, 3 deletions
diff --git a/users/app/models/account.rb b/users/app/models/account.rb
index 5c943bb..cf998e4 100644
--- a/users/app/models/account.rb
+++ b/users/app/models/account.rb
@@ -27,7 +27,8 @@ class Account
@user.update_attributes attrs.slice(:password_verifier, :password_salt)
end
# TODO: move into identity controller
- update_pgp_key(attrs[:public_key]) if attrs.has_key? :public_key
+ key = update_pgp_key(attrs[:public_key])
+ @user.errors.set :public_key, key.errors.full_messages
@user.save && save_identities
@user.refresh_identity
end
@@ -49,8 +50,12 @@ class Account
end
def update_pgp_key(key)
- @new_identity ||= Identity.for(@user)
- @new_identity.set_key(:pgp, key)
+ PgpKey.new(key).tap do |key|
+ if key.present? && key.valid?
+ @new_identity ||= Identity.for(@user)
+ @new_identity.set_key(:pgp, key)
+ end
+ end
end
def save_identities