Class: Projects::Settings::DeployKeysPresenter
- Inherits:
-
Gitlab::View::Presenter::Simple
- Object
- Gitlab::View::Presenter::Simple
- Projects::Settings::DeployKeysPresenter
- Includes:
- Gitlab::Utils::StrongMemoize
- Defined in:
- app/presenters/projects/settings/deploy_keys_presenter.rb
Instance Method Summary collapse
- #as_json ⇒ Object
-
#available_keys ⇒ Object
NOTE: This method is redundant.
-
#available_project_keys ⇒ Object
It includes: - Enabled deploy keys in projects that can be accessed by the user.
-
#available_public_keys ⇒ Object
It includes: - Instance-level public deploy keys.
-
#enabled_keys ⇒ Object
It includes: - The deploy keys enabled in the project.
- #form_partial_path ⇒ Object
- #new_key ⇒ Object
Methods inherited from Gitlab::View::Presenter::Simple
Methods included from Gitlab::View::Presenter::Base
#__subject__, #can?, #declarative_policy_delegate, #is_a?, #path_with_line_numbers, #present, #url_builder, #web_path, #web_url
Methods included from Gitlab::Allowable
Methods included from Gitlab::Routing
includes_helpers, redirect_legacy_paths, url_helpers
Constructor Details
This class inherits a constructor from Gitlab::View::Presenter::Simple
Instance Method Details
#as_json ⇒ Object
60 61 62 63 64 65 66 67 68 69 |
# File 'app/presenters/projects/settings/deploy_keys_presenter.rb', line 60 def as_json serializer = DeployKeys::DeployKeySerializer.new # rubocop: disable CodeReuse/Serializer opts = { user: current_user, project: project, readable_project_ids: readable_project_ids } { enabled_keys: serializer.represent(enabled_keys, opts), available_project_keys: serializer.represent(available_project_keys, opts), public_keys: serializer.represent(available_public_keys, opts) } end |
#available_keys ⇒ Object
NOTE: This method is redundant. Use ‘available_project_keys` and `available_public_keys` instead. It includes:
-
Enabled deploy keys in projects that can be accessed by the user.
-
Instance-level public deploy keys.
It excludes:
-
The deploy keys enabled in the project.
31 32 33 34 35 36 37 38 |
# File 'app/presenters/projects/settings/deploy_keys_presenter.rb', line 31 def available_keys strong_memoize(:available_keys) do current_user .accessible_deploy_keys .id_not_in(enabled_keys.select(:id)) .with_projects end end |
#available_project_keys ⇒ Object
It includes:
-
Enabled deploy keys in projects that can be accessed by the user.
It excludes:
-
The deploy keys enabled in the project
44 45 46 47 48 |
# File 'app/presenters/projects/settings/deploy_keys_presenter.rb', line 44 def available_project_keys strong_memoize(:available_project_keys) do current_user.project_deploy_keys.with_projects - enabled_keys end end |
#available_public_keys ⇒ Object
It includes:
-
Instance-level public deploy keys.
It excludes:
-
The deploy keys enabled in the project.
54 55 56 57 58 |
# File 'app/presenters/projects/settings/deploy_keys_presenter.rb', line 54 def available_public_keys strong_memoize(:available_public_keys) do DeployKey.are_public.with_projects - enabled_keys end end |
#enabled_keys ⇒ Object
It includes:
-
The deploy keys enabled in the project.
19 20 21 22 23 |
# File 'app/presenters/projects/settings/deploy_keys_presenter.rb', line 19 def enabled_keys strong_memoize(:enabled_keys) do project.deploy_keys.with_projects end end |
#form_partial_path ⇒ Object
71 72 73 |
# File 'app/presenters/projects/settings/deploy_keys_presenter.rb', line 71 def form_partial_path 'shared/deploy_keys/project_group_form' end |
#new_key ⇒ Object
13 14 15 |
# File 'app/presenters/projects/settings/deploy_keys_presenter.rb', line 13 def new_key @key ||= DeployKey.new.tap { |dk| dk.deploy_keys_projects.build } end |