Skip to content

Commit 062e24c

Browse files
author
root
committed
Extract methods
1 parent 666c87b commit 062e24c

File tree

4 files changed

+52
-30
lines changed

4 files changed

+52
-30
lines changed

Diff for: app/models/concerns/gitolitable/users.rb

+43-26
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,54 @@ module Users
33
extend ActiveSupport::Concern
44

55
def gitolite_users
6-
data = {}
7-
86
if project.active?
9-
# Add project users
10-
data[:rewind_users] = rewind_users
11-
data[:write_users] = write_users
12-
data[:read_users] = read_users
13-
data[:developer_team] = developer_team
14-
data[:all_read] = all_read
15-
16-
# Add Řepository Deployment keys
17-
deployment_credentials.active.each do |cred|
18-
if cred.perm == 'RW+'
19-
data[:rewind_users] << cred.gitolite_public_key.owner
20-
elsif cred.perm == 'R'
21-
data[:read_users] << cred.gitolite_public_key.owner
22-
end
23-
end
24-
25-
# Add other users
26-
data[:read_users] << 'DUMMY_REDMINE_KEY' if read_users.empty? && write_users.empty? && rewind_users.empty?
27-
data[:read_users] << 'gitweb' if git_web_available?
28-
data[:read_users] << 'daemon' if git_daemon_available?
29-
7+
users_for_active_project
308
elsif project.archived?
31-
data[:read_users] = ['REDMINE_ARCHIVED_PROJECT']
9+
users_for_archived_project
3210
else
33-
data[:read_users] = all_read
34-
data[:read_users] << 'REDMINE_CLOSED_PROJECT'
11+
users_for_closed_project
12+
end
13+
end
14+
15+
16+
def users_for_active_project
17+
data = {}
18+
data[:rewind_users] = rewind_users
19+
data[:write_users] = write_users
20+
data[:read_users] = read_users
21+
data[:developer_team] = developer_team
22+
data[:all_read] = all_read
23+
24+
# Add Řepository Deployment keys
25+
deployment_credentials.active.each do |cred|
26+
if cred.perm == 'RW+'
27+
data[:rewind_users] << cred.gitolite_public_key.owner
28+
elsif cred.perm == 'R'
29+
data[:read_users] << cred.gitolite_public_key.owner
30+
end
3531
end
3632

33+
# Add other users
34+
data[:read_users] << 'DUMMY_REDMINE_KEY' if read_users.empty? && write_users.empty? && rewind_users.empty?
35+
data[:read_users] << 'gitweb' if git_web_available?
36+
data[:read_users] << 'daemon' if git_daemon_available?
37+
38+
# Return users
39+
data
40+
end
41+
42+
43+
def users_for_archived_project
44+
data = {}
45+
data[:read_users] = ['REDMINE_ARCHIVED_PROJECT']
46+
data
47+
end
48+
49+
50+
def users_for_closed_project
51+
data = {}
52+
data[:read_users] = all_read
53+
data[:read_users] << 'REDMINE_CLOSED_PROJECT'
3754
data
3855
end
3956

Diff for: app/services/permissions_builder/base.rb

+5
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ def build
7373
private
7474

7575

76+
def has_no_users?(type)
77+
gitolite_users[type].nil? || gitolite_users[type].empty?
78+
end
79+
80+
7681
def merge_permissions(current_permissions, old_permissions)
7782
merge_permissions = {}
7883
merge_permissions['RW+'] = {}

Diff for: app/services/permissions_builder/protected_branches.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def build_protected_branch_permissions
3030
end
3131
end
3232

33-
@permissions['RW+']['personal/USER/'] = gitolite_users[:developer_team] unless gitolite_users[:developer_team].empty?
33+
@permissions['RW+']['personal/USER/'] = gitolite_users[:developer_team] unless has_no_users?(:developer_team)
3434
end
3535

3636
end

Diff for: app/services/permissions_builder/standard.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ def build
2323

2424

2525
def build_permissions
26-
@permissions['RW+'][''] = gitolite_users[:rewind_users] unless gitolite_users[:rewind_users].empty?
27-
@permissions['RW'][''] = gitolite_users[:write_users] unless gitolite_users[:write_users].empty?
28-
@permissions['R'][''] = gitolite_users[:read_users] unless gitolite_users[:read_users].empty?
26+
@permissions['RW+'][''] = gitolite_users[:rewind_users] unless has_no_users?(:rewind_users)
27+
@permissions['RW'][''] = gitolite_users[:write_users] unless has_no_users?(:write_users)
28+
@permissions['R'][''] = gitolite_users[:read_users] unless has_no_users?(:read_users)
2929
end
3030

3131
end

0 commit comments

Comments
 (0)