diff options
author | Azul <azul@leap.se> | 2013-11-26 11:22:47 +0100 |
---|---|---|
committer | elijah <elijah@riseup.net> | 2013-12-06 15:52:11 -0800 |
commit | e64e746759bb241536612c949361442f269ef2f0 (patch) | |
tree | 7d05a83ebfa23df3dbb1b9ceeecbef057c6c1eb2 /users/app/models/account.rb | |
parent | 015ad90c98c55a078fdfe723d470ad732e807737 (diff) |
ignore attempts to empty public_key, refactor
refactor: prepare validations of the uploaded pgp keys
Diffstat (limited to 'users/app/models/account.rb')
-rw-r--r-- | users/app/models/account.rb | 11 |
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 |