summaryrefslogtreecommitdiff
path: root/lib/api/internal.rb
diff options
context:
space:
mode:
authorClement Ho <ClemMakesApps@gmail.com>2017-06-09 14:28:28 -0500
committerClement Ho <ClemMakesApps@gmail.com>2017-06-09 14:28:28 -0500
commit5bed8ac730f3849f550590ae9906166dd031dc87 (patch)
treebab3febb5105a9720e29abc2898ac440875c58c5 /lib/api/internal.rb
parent66bbf30ed8bb006d9a968693fef266c86ec2325f (diff)
parentabc61f260074663e5711d3814d9b7d301d07a259 (diff)
downloadgitlab-ce-merge-master-9-3-stable.tar.gz
Merge commit 'abc61f260074663e5711d3814d9b7d301d07a259' into merge-master-9-3-stablemerge-master-9-3-stable
Diffstat (limited to 'lib/api/internal.rb')
-rw-r--r--lib/api/internal.rb36
1 files changed, 14 insertions, 22 deletions
diff --git a/lib/api/internal.rb b/lib/api/internal.rb
index 2971887770b..38631953014 100644
--- a/lib/api/internal.rb
+++ b/lib/api/internal.rb
@@ -32,31 +32,23 @@ module API
actor.update_last_used_at if actor.is_a?(Key)
- access_checker = wiki? ? Gitlab::GitAccessWiki : Gitlab::GitAccess
- access_status = access_checker
+ access_checker_klass = wiki? ? Gitlab::GitAccessWiki : Gitlab::GitAccess
+ access_checker = access_checker_klass
.new(actor, project, protocol, authentication_abilities: ssh_authentication_abilities)
- .check(params[:action], params[:changes])
- response = { status: access_status.status, message: access_status.message }
-
- if access_status.status
- log_user_activity(actor)
-
- # Project id to pass between components that don't share/don't have
- # access to the same filesystem mounts
- response[:gl_repository] = Gitlab::GlRepository.gl_repository(project, wiki?)
-
- # Return the repository full path so that gitlab-shell has it when
- # handling ssh commands
- response[:repository_path] =
- if wiki?
- project.wiki.repository.path_to_repo
- else
- project.repository.path_to_repo
- end
+ begin
+ access_checker.check(params[:action], params[:changes])
+ rescue Gitlab::GitAccess::UnauthorizedError, Gitlab::GitAccess::NotFoundError => e
+ return { status: false, message: e.message }
end
- response
+ log_user_activity(actor)
+
+ {
+ status: true,
+ gl_repository: gl_repository,
+ repository_path: repository_path
+ }
end
post "/lfs_authenticate" do
@@ -90,7 +82,7 @@ module API
{
api_version: API.version,
gitlab_version: Gitlab::VERSION,
- gitlab_rev: Gitlab::REVISION,
+ gitlab_rev: Gitlab::REVISION
}
end