Class: DeployKey
Constant Summary
Constants included
from Expirable
Expirable::DAYS_TO_EXPIRE
ApplicationRecord::MAX_PLUCK
ResetOnUnionError::MAX_RESET_PERIOD
Class Method Summary
collapse
Instance Method Summary
collapse
#present
#access_locked?, #admin?, #alert_bot?, #automation_bot?, #blocked?, #can?, #can_create_group, #can_read_all_resources?, #confirmation_required_on_sign_in?, #deactivated?, #external?, #from_ci_job_token?, #internal?, #password_expired_if_applicable?, #preferred_language, #required_terms_not_accepted?, #requires_ldap_check?, #security_bot?, #security_policy_bot?, #support_bot?, #try_obtain_ldap_lease
Methods inherited from Key
#add_to_authorized_keys, #can_delete?, #ensure_sha256_fingerprint!, #key=, #post_create_hook, #post_destroy_hook, #projects, #public_key, #publishable_key, #refresh_user_cache, regular_keys, #remove_from_authorized_keys, #shell_id, #signing?, #update_last_used_at
Methods included from Expirable
#expired?, #expires?, #expires_soon?
#run_after_commit, #run_after_commit_or_now
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
Class Method Details
.with_write_access_for_project(project, deploy_key: nil) ⇒ Object
69
70
71
72
73
74
|
# File 'app/models/deploy_key.rb', line 69
def self.with_write_access_for_project(project, deploy_key: nil)
query = in_projects(project).with_write_access
query = query.where(id: deploy_key) if deploy_key
query
end
|
Instance Method Details
#almost_orphaned? ⇒ Boolean
37
38
39
|
# File 'app/models/deploy_key.rb', line 37
def almost_orphaned?
self.deploy_keys_projects.size == 1
end
|
#audit_details ⇒ Object
49
50
51
|
# File 'app/models/deploy_key.rb', line 49
def audit_details
title
end
|
#can_push_to?(project) ⇒ Boolean
57
58
59
|
# File 'app/models/deploy_key.rb', line 57
def can_push_to?(project)
!!deploy_keys_project_for(project)&.can_push?
end
|
#deploy_keys_project_for(project) ⇒ Object
61
62
63
64
65
66
67
|
# File 'app/models/deploy_key.rb', line 61
def deploy_keys_project_for(project)
if association(:deploy_keys_projects).loaded?
deploy_keys_projects.find { |dkp| dkp.project_id.eql?(project&.id) }
else
deploy_keys_projects.find_by(project: project)
end
end
|
#destroyed_when_orphaned? ⇒ Boolean
41
42
43
|
# File 'app/models/deploy_key.rb', line 41
def destroyed_when_orphaned?
self.private?
end
|
#has_access_to?(project) ⇒ Boolean
53
54
55
|
# File 'app/models/deploy_key.rb', line 53
def has_access_to?(project)
deploy_keys_project_for(project).present?
end
|
#impersonated? ⇒ Boolean
This is used for the internal logic of AuditEvents::BuildService.
77
78
79
|
# File 'app/models/deploy_key.rb', line 77
def impersonated?
false
end
|
#orphaned? ⇒ Boolean
33
34
35
|
# File 'app/models/deploy_key.rb', line 33
def orphaned?
self.deploy_keys_projects.empty?
end
|
#private? ⇒ Boolean
29
30
31
|
# File 'app/models/deploy_key.rb', line 29
def private?
!public?
end
|
#user ⇒ Object
45
46
47
|
# File 'app/models/deploy_key.rb', line 45
def user
super || Users::Internal.ghost
end
|