diff options
-rw-r--r-- | app/helpers/projects_helper.rb | 16 | ||||
-rw-r--r-- | app/views/projects/show.html.haml | 2 | ||||
-rw-r--r-- | spec/features/projects_spec.rb | 14 | ||||
-rw-r--r-- | spec/helpers/projects_helper_spec.rb | 10 |
4 files changed, 33 insertions, 9 deletions
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 777817e24aa..77ba612548a 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -105,6 +105,14 @@ module ProjectsHelper end end + def user_max_access_in_project(user_id, project) + level = project.team.max_member_access(user_id) + + if level + Gitlab::Access.options_with_owner.key(level) + end + end + private def get_project_nav_tabs(project, current_user) @@ -277,14 +285,6 @@ module ProjectsHelper end end - def user_max_access_in_project(user, project) - level = project.team.max_member_access(user) - - if level - Gitlab::Access.options_with_owner.key(level) - end - end - def leave_project_message(project) "Are you sure you want to leave \"#{project.name}\" project?" end diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml index 9c7a5584da9..7466a098e24 100644 --- a/app/views/projects/show.html.haml +++ b/app/views/projects/show.html.haml @@ -71,7 +71,7 @@ = render default_project_view - if current_user - - access = user_max_access_in_project(current_user, @project) + - access = user_max_access_in_project(current_user.id, @project) - if access .prepend-top-20.project-footer .gray-content-block.footer-block.center diff --git a/spec/features/projects_spec.rb b/spec/features/projects_spec.rb index 09fcff2444a..74b148f5d17 100644 --- a/spec/features/projects_spec.rb +++ b/spec/features/projects_spec.rb @@ -70,6 +70,20 @@ feature 'Project', feature: true do end end + describe 'leave project link' do + let(:user) { create(:user) } + let(:project) { create(:project, namespace: user.namespace) } + + before do + login_with(user) + project.team.add_user(user, Gitlab::Access::MASTER) + visit namespace_project_path(project.namespace, project) + end + + it { expect(page).to have_content('You have Master access to this project.') } + it { expect(page).to have_link('Leave this project') } + end + def remove_with_confirm(button_text, confirm_with) click_button button_text fill_in 'confirm_name_input', with: confirm_with diff --git a/spec/helpers/projects_helper_spec.rb b/spec/helpers/projects_helper_spec.rb index f2efb528aeb..53207767581 100644 --- a/spec/helpers/projects_helper_spec.rb +++ b/spec/helpers/projects_helper_spec.rb @@ -53,6 +53,16 @@ describe ProjectsHelper do end end + describe 'user_max_access_in_project' do + let(:project) { create(:project) } + let(:user) { create(:user) } + before do + project.team.add_user(user, Gitlab::Access::MASTER) + end + + it { expect(helper.user_max_access_in_project(user.id, project)).to eq('Master') } + end + describe "readme_cache_key" do let(:project) { create(:project) } |