diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-01-31 15:12:02 +0100 |
---|---|---|
committer | Jose Ivan Vargas <jvargas@gitlab.com> | 2017-03-06 09:47:44 -0600 |
commit | 5967c17e80ec0e17a2bdc615e18d1cb0a668f68f (patch) | |
tree | 5a55652f078056ae865afe1f37c5758a62fe614d /app/presenters | |
parent | 2ee86441158076344a07f2715a148a5bdbe161b0 (diff) | |
download | gitlab-ce-5967c17e80ec0e17a2bdc615e18d1cb0a668f68f.tar.gz |
Introduced the deploy keys presenter
Diffstat (limited to 'app/presenters')
-rw-r--r-- | app/presenters/projects/settings/deploy_keys_presenter.rb | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/app/presenters/projects/settings/deploy_keys_presenter.rb b/app/presenters/projects/settings/deploy_keys_presenter.rb new file mode 100644 index 00000000000..703d93708f6 --- /dev/null +++ b/app/presenters/projects/settings/deploy_keys_presenter.rb @@ -0,0 +1,65 @@ +module Projects + module Settings + class DeployKeysPresenter < Gitlab::View::Presenter::Simple + presents :project + + def new_key + @key ||= DeployKey.new + end + + def enabled_keys + @enabled_keys ||= project.deploy_keys + end + + def any_keys_enabled? + enabled_keys.any? + end + + def enabled_keys_size + enabled_keys.size + end + + def available_keys + @available_keys ||= current_user.accessible_deploy_keys - enabled_keys + end + + def available_project_keys + @available_project_keys ||= current_user.project_deploy_keys - enabled_keys + end + + def any_available_project_keys_enabled? + available_project_keys.any? + end + + def available_project_keys_size + available_project_keys.size + end + + def available_public_keys + return @available_public_keys if defined?(@available_public_keys) + + @available_public_keys ||= DeployKey.are_public - enabled_keys + + # Public keys that are already used by another accessible project are already + # in @available_project_keys. + @available_public_keys -= available_project_keys + end + + def any_available_public_keys_enabled? + available_public_keys.any? + end + + def available_public_keys_size + available_public_keys.size + end + + def to_partial_path + 'projects/deploy_keys/index' + end + + def form_partial_path + 'projects/deploy_keys/form' + end + end + end +end |