From bc8a5ec7320f10e5b87f5e3ea45efcffbc2dd211 Mon Sep 17 00:00:00 2001 From: Rajendra Kadam Date: Wed, 17 Jun 2020 19:38:41 +0530 Subject: [PATCH 1/4] Use CreateService when an admin creates a new gpg key for a user --- app/services/gpg_keys/create_service.rb | 8 ++++++++ lib/api/users.rb | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/services/gpg_keys/create_service.rb b/app/services/gpg_keys/create_service.rb index e41444b2a82c55..c675e0a41b2fb7 100644 --- a/app/services/gpg_keys/create_service.rb +++ b/app/services/gpg_keys/create_service.rb @@ -2,6 +2,14 @@ module GpgKeys class CreateService < Keys::BaseService + attr_accessor :current_user + + def initialize(current_user, params = {}) + @current_user, @params = current_user, params + @ip_address = @params.delete(:ip_address) + @user = params.delete(:user) || current_user + end + def execute key = user.gpg_keys.create(params) notification_service.new_gpg_key(key) if key.persisted? diff --git a/lib/api/users.rb b/lib/api/users.rb index 5f15787015193f..2ab30d57f404ab 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -328,9 +328,9 @@ def reorder_users(users) user = User.find_by(id: params.delete(:id)) not_found!('User') unless user - key = user.gpg_keys.new(declared_params(include_missing: false)) + key = ::GpgKeys::CreateService.new(current_user, declared_params(include_missing: false).merge(user: user)).execute - if key.save + if key.persisted? present key, with: Entities::GpgKey else render_validation_error!(key) -- GitLab From f08890de936126ce7bc35e99b5d43b3a877d2c8f Mon Sep 17 00:00:00 2001 From: Rajendra Kadam Date: Wed, 17 Jun 2020 19:41:03 +0530 Subject: [PATCH 2/4] Add changelog --- changelogs/unreleased/services-usage-5.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changelogs/unreleased/services-usage-5.yml diff --git a/changelogs/unreleased/services-usage-5.yml b/changelogs/unreleased/services-usage-5.yml new file mode 100644 index 00000000000000..4daf4265b68103 --- /dev/null +++ b/changelogs/unreleased/services-usage-5.yml @@ -0,0 +1,5 @@ +--- +title: Use GpgKeys::CreateService when an admin creates a new gpg key for a user +merge_request: 34737 +author: Rajendra Kadam +type: fixed -- GitLab From f4adb14c9ff33452dc6263da5ee980e4162bb915 Mon Sep 17 00:00:00 2001 From: Rajendra Kadam Date: Wed, 17 Jun 2020 19:50:55 +0530 Subject: [PATCH 3/4] Remove initialize method and use base service initialize --- app/services/gpg_keys/create_service.rb | 8 -------- lib/api/users.rb | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/app/services/gpg_keys/create_service.rb b/app/services/gpg_keys/create_service.rb index c675e0a41b2fb7..e41444b2a82c55 100644 --- a/app/services/gpg_keys/create_service.rb +++ b/app/services/gpg_keys/create_service.rb @@ -2,14 +2,6 @@ module GpgKeys class CreateService < Keys::BaseService - attr_accessor :current_user - - def initialize(current_user, params = {}) - @current_user, @params = current_user, params - @ip_address = @params.delete(:ip_address) - @user = params.delete(:user) || current_user - end - def execute key = user.gpg_keys.create(params) notification_service.new_gpg_key(key) if key.persisted? diff --git a/lib/api/users.rb b/lib/api/users.rb index 2ab30d57f404ab..994d27e53deb99 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -328,7 +328,7 @@ def reorder_users(users) user = User.find_by(id: params.delete(:id)) not_found!('User') unless user - key = ::GpgKeys::CreateService.new(current_user, declared_params(include_missing: false).merge(user: user)).execute + key = ::GpgKeys::CreateService.new(user, declared_params(include_missing: false)).execute if key.persisted? present key, with: Entities::GpgKey -- GitLab From f75943cdef2b4f5f5a9bb8d42b5d589679120ec7 Mon Sep 17 00:00:00 2001 From: Rajendra Kadam Date: Fri, 19 Jun 2020 10:33:00 +0530 Subject: [PATCH 4/4] Update changelog --- changelogs/unreleased/services-usage-5.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelogs/unreleased/services-usage-5.yml b/changelogs/unreleased/services-usage-5.yml index 4daf4265b68103..04657cf147d752 100644 --- a/changelogs/unreleased/services-usage-5.yml +++ b/changelogs/unreleased/services-usage-5.yml @@ -1,5 +1,5 @@ --- -title: Use GpgKeys::CreateService when an admin creates a new gpg key for a user +title: Use GpgKeys::CreateService when an admin creates a new GPG key for a user merge_request: 34737 author: Rajendra Kadam type: fixed -- GitLab