Skip to content

Commit 9472000

Browse files
committed
Refactor project pubkey backend delete call to use Backend::Api
1 parent d637154 commit 9472000

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

src/api/app/controllers/source_project_controller.rb

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,18 @@ def show_pubkey
117117

118118
# DELETE /source/:project/_pubkey
119119
def delete_pubkey
120-
params[:user] = User.session.login
121-
path = pubkey_path
120+
backend_params = {
121+
user: User.session.login,
122+
meta: params[:meta],
123+
comment: params[:comment]
124+
}.compact
122125

123126
# check for permissions
124-
upper_project = @prj.name.gsub(/:[^:]*$/, '')
125-
while upper_project != @prj.name && upper_project.present?
127+
project_name = Project.get_by_name(params[:project]).name
128+
upper_project = project_name.gsub(/:[^:]*$/, '')
129+
while upper_project != project_name && upper_project.present?
126130
if Project.exists_by_name(upper_project) && User.session.can_modify?(Project.get_by_name(upper_project))
127-
pass_to_backend(path)
131+
render xml: Backend::Api::Sources::Project.delete_pubkey(params[:project], backend_params)
128132
return
129133
end
130134
break unless upper_project.include?(':')
@@ -133,18 +137,10 @@ def delete_pubkey
133137
end
134138

135139
if User.admin_session?
136-
pass_to_backend(path)
140+
render xml: Backend::Api::Sources::Project.delete_pubkey(params[:project], backend_params)
137141
else
138142
raise DeleteProjectPubkeyNoPermission, "No permission to delete public key for project '#{params[:project]}'. " \
139143
'Either maintainer permissions by upper project or admin permissions is needed.'
140144
end
141145
end
142-
143-
private
144-
145-
def pubkey_path
146-
# check for project
147-
@prj = Project.get_by_name(params[:project])
148-
request.path_info + build_query_from_hash(params, %i[user comment meta rev])
149-
end
150146
end

src/api/app/lib/backend/api/sources/project.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@ def self.pubkey(project_name, options = {})
6565
http_get(['/source/:project/_pubkey', project_name], params: options, accepted: %i[rev])
6666
end
6767

68+
# Deletes the pubkey file for the project
69+
# @return [String]
70+
def self.delete_pubkey(project_name, options = {})
71+
http_delete(['/source/:project/_pubkey', project_name], params: options, accepted: %i[user comment meta])
72+
end
73+
6874
# Returns the patchinfo for the project
6975
# @return [String]
7076
def self.patchinfo(project_name)

0 commit comments

Comments
 (0)