Class: GpgKey
Constant Summary
collapse
- KEY_PREFIX =
'-----BEGIN PGP PUBLIC KEY BLOCK-----'
- KEY_SUFFIX =
'-----END PGP PUBLIC KEY BLOCK-----'
ApplicationRecord::MAX_PLUCK
ResetOnUnionError::MAX_RESET_PERIOD
Instance Method Summary
collapse
cached_column_list, #create_or_load_association, declarative_enum, default_select_columns, id_in, id_not_in, iid_in, pluck_primary_key, primary_key_in, #readable_by?, safe_ensure_unique, safe_find_or_create_by, safe_find_or_create_by!, #to_ability_name, underscore, where_exists, where_not_exists, with_fast_read_statement_timeout, without_order
#serializable_hash
Instance Method Details
#emails_with_verified_status ⇒ Object
73
74
75
76
77
78
79
80
|
# File 'app/models/gpg_key.rb', line 73
def emails_with_verified_status
user_infos.to_h do |user_info|
[
user_info[:email],
user.verified_email?(user_info[:email])
]
end
end
|
#fingerprint ⇒ Object
51
52
53
|
# File 'app/models/gpg_key.rb', line 51
def fingerprint
super&.upcase
end
|
#key=(value) ⇒ Object
55
56
57
|
# File 'app/models/gpg_key.rb', line 55
def key=(value)
super(value&.strip)
end
|
#keyids ⇒ Object
59
60
61
|
# File 'app/models/gpg_key.rb', line 59
def keyids
[keyid].concat(subkeys.map(&:keyid))
end
|
#primary_keyid ⇒ Object
Also known as:
keyid
46
47
48
|
# File 'app/models/gpg_key.rb', line 46
def primary_keyid
super&.upcase
end
|
#revoke ⇒ Object
94
95
96
97
98
99
100
101
102
103
104
105
106
|
# File 'app/models/gpg_key.rb', line 94
def revoke
CommitSignatures::GpgSignature
.with_key_and_subkeys(self)
.where.not(verification_status: CommitSignatures::GpgSignature.verification_statuses[:unknown_key])
.update_all(
gpg_key_id: nil,
gpg_key_subkey_id: nil,
verification_status: CommitSignatures::GpgSignature.verification_statuses[:unknown_key],
updated_at: Time.zone.now
)
destroy
end
|
#update_invalid_gpg_signatures ⇒ Object
#verified? ⇒ Boolean
82
83
84
|
# File 'app/models/gpg_key.rb', line 82
def verified?
emails_with_verified_status.values.any?
end
|
#verified_and_belongs_to_email?(email) ⇒ Boolean
86
87
88
|
# File 'app/models/gpg_key.rb', line 86
def verified_and_belongs_to_email?(email)
emails_with_verified_status.fetch(email.downcase, false)
end
|
#verified_user_infos ⇒ Object
67
68
69
70
71
|
# File 'app/models/gpg_key.rb', line 67
def verified_user_infos
user_infos.select do |user_info|
user.verified_email?(user_info[:email])
end
end
|