Commit 7a26a4b69ddf42c60aa406d10589a976ced0f6f3

Authored by Dmitriy Zaporozhets
1 parent a442ad2b

Refactor access roles methods

app/models/project.rb
@@ -133,10 +133,6 @@ class Project < ActiveRecord::Base @@ -133,10 +133,6 @@ class Project < ActiveRecord::Base
133 where(path: id, namespace_id: nil).last 133 where(path: id, namespace_id: nil).last
134 end 134 end
135 end 135 end
136 -  
137 - def access_options  
138 - UsersProject.access_roles  
139 - end  
140 end 136 end
141 137
142 def team 138 def team
@@ -399,11 +395,6 @@ class Project < ActiveRecord::Base @@ -399,11 +395,6 @@ class Project < ActiveRecord::Base
399 http_url = [Gitlab.config.gitlab.url, "/", path_with_namespace, ".git"].join('') 395 http_url = [Gitlab.config.gitlab.url, "/", path_with_namespace, ".git"].join('')
400 end 396 end
401 397
402 - def project_access_human(member)  
403 - project_user_relation = self.users_projects.find_by_user_id(member.id)  
404 - self.class.access_options.key(project_user_relation.project_access)  
405 - end  
406 -  
407 # Check if current branch name is marked as protected in the system 398 # Check if current branch name is marked as protected in the system
408 def protected_branch? branch_name 399 def protected_branch? branch_name
409 protected_branches_names.include?(branch_name) 400 protected_branches_names.include?(branch_name)
app/models/users_group.rb
@@ -12,21 +12,10 @@ @@ -12,21 +12,10 @@
12 12
13 class UsersGroup < ActiveRecord::Base 13 class UsersGroup < ActiveRecord::Base
14 include Notifiable 14 include Notifiable
15 -  
16 - GUEST = 10  
17 - REPORTER = 20  
18 - DEVELOPER = 30  
19 - MASTER = 40  
20 - OWNER = 50 15 + include Gitlab::Access
21 16
22 def self.group_access_roles 17 def self.group_access_roles
23 - {  
24 - "Guest" => GUEST,  
25 - "Reporter" => REPORTER,  
26 - "Developer" => DEVELOPER,  
27 - "Master" => MASTER,  
28 - "Owner" => OWNER  
29 - } 18 + Gitlab::Access.options_with_owner
30 end 19 end
31 20
32 attr_accessible :group_access, :user_id 21 attr_accessible :group_access, :user_id
@@ -50,7 +39,7 @@ class UsersGroup &lt; ActiveRecord::Base @@ -50,7 +39,7 @@ class UsersGroup &lt; ActiveRecord::Base
50 39
51 delegate :name, :username, :email, to: :user, prefix: true 40 delegate :name, :username, :email, to: :user, prefix: true
52 41
53 - def human_access  
54 - UsersGroup.group_access_roles.key(self.group_access) 42 + def access_field
  43 + group_access
55 end 44 end
56 end 45 end
app/models/users_project.rb
@@ -14,11 +14,7 @@ @@ -14,11 +14,7 @@
14 class UsersProject < ActiveRecord::Base 14 class UsersProject < ActiveRecord::Base
15 include Gitlab::ShellAdapter 15 include Gitlab::ShellAdapter
16 include Notifiable 16 include Notifiable
17 -  
18 - GUEST = 10  
19 - REPORTER = 20  
20 - DEVELOPER = 30  
21 - MASTER = 40 17 + include Gitlab::Access
22 18
23 attr_accessible :user, :user_id, :project_access 19 attr_accessible :user, :user_id, :project_access
24 20
@@ -27,7 +23,7 @@ class UsersProject &lt; ActiveRecord::Base @@ -27,7 +23,7 @@ class UsersProject &lt; ActiveRecord::Base
27 23
28 validates :user, presence: true 24 validates :user, presence: true
29 validates :user_id, uniqueness: { scope: [:project_id], message: "already exists in project" } 25 validates :user_id, uniqueness: { scope: [:project_id], message: "already exists in project" }
30 - validates :project_access, inclusion: { in: [GUEST, REPORTER, DEVELOPER, MASTER] }, presence: true 26 + validates :project_access, inclusion: { in: Gitlab::Access.values }, presence: true
31 validates :project, presence: true 27 validates :project, presence: true
32 28
33 delegate :name, :username, :email, to: :user, prefix: true 29 delegate :name, :username, :email, to: :user, prefix: true
@@ -103,27 +99,15 @@ class UsersProject &lt; ActiveRecord::Base @@ -103,27 +99,15 @@ class UsersProject &lt; ActiveRecord::Base
103 end 99 end
104 100
105 def roles_hash 101 def roles_hash
106 - {  
107 - guest: GUEST,  
108 - reporter: REPORTER,  
109 - developer: DEVELOPER,  
110 - master: MASTER  
111 - } 102 + Gitlab::Access.sym_options
112 end 103 end
113 104
114 def access_roles 105 def access_roles
115 - {  
116 - "Guest" => GUEST,  
117 - "Reporter" => REPORTER,  
118 - "Developer" => DEVELOPER,  
119 - "Master" => MASTER  
120 - } 106 + Gitlab::Access.options
121 end 107 end
122 end 108 end
123 109
124 - def project_access_human  
125 - Project.access_options.key(self.project_access) 110 + def access_field
  111 + project_access
126 end 112 end
127 -  
128 - alias_method :human_access, :project_access_human  
129 end 113 end
app/services/system_hooks_service.rb
@@ -43,7 +43,7 @@ class SystemHooksService @@ -43,7 +43,7 @@ class SystemHooksService
43 project_id: model.project_id, 43 project_id: model.project_id,
44 user_name: model.user.name, 44 user_name: model.user.name,
45 user_email: model.user.email, 45 user_email: model.user.email,
46 - project_access: model.project_access_human 46 + project_access: model.human_access
47 }) 47 })
48 end 48 end
49 end 49 end
app/views/admin/projects/show.html.haml
@@ -96,11 +96,12 @@ @@ -96,11 +96,12 @@
96 %i.icon-edit 96 %i.icon-edit
97 Manage Access 97 Manage Access
98 %ul.well-list.team_members 98 %ul.well-list.team_members
99 - - @project.users.each do |user| 99 + - @project.users_projects.each do |users_project|
  100 + - user = users_project.user
100 %li 101 %li
101 %strong 102 %strong
102 = link_to user.name, admin_user_path(user) 103 = link_to user.name, admin_user_path(user)
103 .pull-right 104 .pull-right
104 - %span.light= @project.project_access_human(user) 105 + %span.light= users_project.human_access
105 = link_to admin_project_member_path(@project, user), confirm: remove_from_project_team_message(@project, user), method: :delete, class: "btn btn-small btn-remove" do 106 = link_to admin_project_member_path(@project, user), confirm: remove_from_project_team_message(@project, user), method: :delete, class: "btn btn-small btn-remove" do
106 %i.icon-remove 107 %i.icon-remove
app/views/notify/project_access_granted_email.html.haml
1 %p 1 %p
2 - = "You have been granted #{@users_project.project_access_human} access to project" 2 + = "You have been granted #{@users_project.human_access} access to project"
3 %p 3 %p
4 = link_to project_url(@project) do 4 = link_to project_url(@project) do
5 = @project.name_with_namespace 5 = @project.name_with_namespace
app/views/notify/project_access_granted_email.text.erb
1 1
2 -You have been granted <%= @users_project.project_access_human %> access to project <%= @project.name_with_namespace %> 2 +You have been granted <%= @users_project.human_access %> access to project <%= @project.name_with_namespace %>
3 3
4 <%= url_for(project_url(@project)) %> 4 <%= url_for(project_url(@project)) %>
app/views/projects/team_members/_form.html.haml
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 %h6 2. Set access level for them 17 %h6 2. Set access level for them
18 .control-group 18 .control-group
19 = f.label :project_access, "Project Access" 19 = f.label :project_access, "Project Access"
20 - .controls= select_tag :project_access, options_for_select(Project.access_options, @user_project_relation.project_access), class: "project-access-select chosen" 20 + .controls= select_tag :project_access, options_for_select(Gitlab::Access.options, @user_project_relation.project_access), class: "project-access-select chosen"
21 21
22 .form-actions 22 .form-actions
23 = f.submit 'Add users', class: "btn btn-create" 23 = f.submit 'Add users', class: "btn btn-create"
spec/mailers/notify_spec.rb
@@ -250,7 +250,7 @@ describe Notify do @@ -250,7 +250,7 @@ describe Notify do
250 should have_body_text /#{project.name}/ 250 should have_body_text /#{project.name}/
251 end 251 end
252 it 'contains new user role' do 252 it 'contains new user role' do
253 - should have_body_text /#{users_project.project_access_human}/ 253 + should have_body_text /#{users_project.human_access}/
254 end 254 end
255 end 255 end
256 256