summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dzaporozhets@gitlab.com>2015-02-20 23:02:55 +0000
committerDmitriy Zaporozhets <dzaporozhets@gitlab.com>2015-02-20 23:02:55 +0000
commit2cfb90bb6eececd4693661df1311c16e51686b05 (patch)
tree995c9f1b32d82c145707a3bad2aa1055b68b1f64
parent43b985d93b31315dc2f30eaa5f4e022f9aeaa9e1 (diff)
parentf65c68025e7c86618f70e49b89ef44989c05a83d (diff)
downloadgitlab-shell-2cfb90bb6eececd4693661df1311c16e51686b05.tar.gz
Merge branch 'less_if_nesting' into 'master'
Less if-else nesting in gitlab_shell.rb This intention of this change is to make the normal flow of execution easier to read, and to prevent mistakes in deeply nested if-else trees. See merge request !60
-rw-r--r--lib/gitlab_shell.rb62
1 files changed, 28 insertions, 34 deletions
diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb
index a0fc65c..806e016 100644
--- a/lib/gitlab_shell.rb
+++ b/lib/gitlab_shell.rb
@@ -18,20 +18,18 @@ class GitlabShell
if @origin_cmd
parse_cmd
- if git_cmds.include?(@git_cmd)
- ENV['GL_ID'] = @key_id
+ raise DisallowedCommandError unless git_cmds.include?(@git_cmd)
- access = api.check_access(@git_cmd, @repo_name, @key_id, '_any')
+ ENV['GL_ID'] = @key_id
- if access.allowed?
- process_cmd
- else
- message = "gitlab-shell: Access denied for git command <#{@origin_cmd}> by #{log_username}."
- $logger.warn message
- puts access.message
- end
+ access = api.check_access(@git_cmd, @repo_name, @key_id, '_any')
+
+ if access.allowed?
+ process_cmd
else
- raise DisallowedCommandError
+ message = "gitlab-shell: Access denied for git command <#{@origin_cmd}> by #{log_username}."
+ $logger.warn message
+ puts access.message
end
else
puts "Welcome to GitLab, #{username}!"
@@ -51,14 +49,12 @@ class GitlabShell
@git_cmd = args.first
if @git_cmd == 'git-annex-shell'
- if @config.git_annex_enabled?
- @repo_name = escape_path(args[2].sub(/\A\/~\//, ''))
+ raise DisallowedCommandError unless @config.git_annex_enabled?
- # Make sure repository has git-annex enabled
- init_git_annex(@repo_name)
- else
- raise DisallowedCommandError
- end
+ @repo_name = escape_path(args[2].sub(/\A\/~\//, ''))
+
+ # Make sure repository has git-annex enabled
+ init_git_annex(@repo_name)
else
raise DisallowedCommandError unless args.count == 2
@repo_name = escape_path(args.last)
@@ -73,24 +69,22 @@ class GitlabShell
repo_full_path = File.join(repos_path, repo_name)
if @git_cmd == 'git-annex-shell'
- if @config.git_annex_enabled?
- args = Shellwords.shellwords(@origin_cmd)
- parsed_args =
- args.map do |arg|
- # Convert /~/group/project.git to group/project.git
- # to make git annex path compatible with gitlab-shell
- if arg =~ /\A\/~\/.*\.git\Z/
- repo_full_path
- else
- arg
- end
+ raise DisallowedCommandError unless @config.git_annex_enabled?
+
+ args = Shellwords.shellwords(@origin_cmd)
+ parsed_args =
+ args.map do |arg|
+ # Convert /~/group/project.git to group/project.git
+ # to make git annex path compatible with gitlab-shell
+ if arg =~ /\A\/~\/.*\.git\Z/
+ repo_full_path
+ else
+ arg
end
+ end
- $logger.info "gitlab-shell: executing git-annex command <#{parsed_args.join(' ')}> for #{log_username}."
- exec_cmd(*parsed_args)
- else
- raise DisallowedCommandError
- end
+ $logger.info "gitlab-shell: executing git-annex command <#{parsed_args.join(' ')}> for #{log_username}."
+ exec_cmd(*parsed_args)
else
$logger.info "gitlab-shell: executing git command <#{@git_cmd} #{repo_full_path}> for #{log_username}."
exec_cmd(@git_cmd, repo_full_path)