Skip to content

Commit 594a4f0

Browse files
author
root
committed
Fix #14
1 parent 97e7f66 commit 594a4f0

File tree

2 files changed

+10
-28
lines changed

2 files changed

+10
-28
lines changed

Diff for: lib/redmine_git_hosting/patches/user_patch.rb

+6
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,14 @@ def self.included(base)
1616

1717
module InstanceMethods
1818

19+
def gitolite_identifier
20+
"redmine_#{self.login.underscore}".gsub(/[^0-9a-zA-Z\-]/, '_')
21+
end
22+
23+
1924
private
2025

26+
2127
def update_ssh_keys
2228
RedmineGitolite::GitHosting.logger.info { "Rebuild SSH keys for user : '#{self.login}'" }
2329
RedmineGitolite::GitHosting.resync_gitolite({ :command => :update_ssh_keys, :object => self.id })

Diff for: lib/redmine_gitolite/admin_repositories_helper.rb

+4-28
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ def do_update_repository(repository)
9595
repo_conf.set_git_config("redminegitolite.repositoryid", "#{repository.identifier || ''}")
9696
repo_conf.set_git_config("redminegitolite.repositorykey", repository.extra.key)
9797

98-
if User.anonymous.allowed_to?(:view_changesets, project) && repository.extra.git_http != 0
98+
if User.anonymous.allowed_to?(:view_changesets, project) || repository.extra.git_http != 0
9999
repo_conf.set_git_config("http.uploadpack", 'true')
100100
else
101101
repo_conf.set_git_config("http.uploadpack", 'false')
@@ -183,29 +183,14 @@ def build_permissions(repository)
183183
users = repository.project.member_principals.map(&:user).compact.uniq
184184
project = repository.project
185185

186-
rewind = []
187-
write = []
188-
read = []
189-
190186
if project.active?
191187
rewind_users = users.select{|user| user.allowed_to?(:manage_repository, project)}
192188
write_users = users.select{|user| user.allowed_to?(:commit_access, project) && !user.allowed_to?(:manage_repository, project)}
193189
read_users = users.select{|user| user.allowed_to?(:view_changesets, project) && !user.allowed_to?(:commit_access, project) && !user.allowed_to?(:manage_repository, project)}
194190

195-
## REWIND
196-
rewind_users.each do |user|
197-
rewind += get_keys(user) if user.gitolite_public_keys.active.user_key.all.any?
198-
end
199-
200-
## WRITE
201-
write_users.each do |user|
202-
write += get_keys(user) if user.gitolite_public_keys.active.user_key.all.any?
203-
end
204-
205-
## READ
206-
read_users.each do |user|
207-
read += get_keys(user) if user.gitolite_public_keys.active.user_key.all.any?
208-
end
191+
rewind = rewind_users.map{|user| user.gitolite_identifier}
192+
write = write_users.map{|user| user.gitolite_identifier}
193+
read = read_users.map{|user| user.gitolite_identifier}
209194

210195
## DEPLOY KEY
211196
deploy_keys = repository.repository_deployment_credentials.active
@@ -236,15 +221,6 @@ def build_permissions(repository)
236221
end
237222

238223

239-
def get_keys(user)
240-
array = []
241-
user.gitolite_public_keys.active.user_key.all.each do |key|
242-
array.push(key.owner)
243-
end
244-
return array
245-
end
246-
247-
248224
def clean_path(path_list)
249225
path_list.uniq.sort.reverse.each do |path|
250226
begin

0 commit comments

Comments
 (0)