Skip to content
Snippets Groups Projects
Commit 80fd4ffe authored by Douglas Barbosa Alexandre's avatar Douglas Barbosa Alexandre Committed by GitLab Release Tools Bot
Browse files

Merge branch 'sh-fix-board-user-assigns' into 'master'

Fix 403 errors when adding an assignee list in project boards

Closes gitlab-ee#9727

See merge request gitlab-org/gitlab-ce!25263

(cherry picked from commit a092b5ae)

b2da8042 Fix 403 errors when adding an assignee list in project boards
parent 09f88f21
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -21,6 +21,10 @@ class Board < ActiveRecord::Base
group_id.present?
end
 
def project_board?
project_id.present?
end
def backlog_list
lists.merge(List.backlog).take
end
Loading
Loading
Loading
Loading
@@ -4,10 +4,12 @@ class BoardPolicy < BasePolicy
delegate { @subject.parent }
 
condition(:is_group_board) { @subject.group_board? }
condition(:is_project_board) { @subject.project_board? }
 
rule { is_group_board ? can?(:read_group) : can?(:read_project) }.enable :read_parent
rule { is_project_board & can?(:read_project) }.enable :read_parent
 
rule { is_group_board & can?(:read_group) }.policy do
enable :read_parent
enable :read_milestone
enable :read_issue
end
Loading
Loading
---
title: Fix 403 errors when adding an assignee list in project boards
merge_request: 25263
author:
type: fixed
# frozen_string_literal: true
require 'spec_helper'
describe BoardPolicy do
let(:user) { create(:user) }
let(:project) { create(:project, :private) }
let(:group) { create(:group, :private) }
let(:group_board) { create(:board, group: group) }
let(:project_board) { create(:board, project: project) }
let(:board_permissions) do
[
:read_parent,
:read_milestone,
:read_issue
]
end
def expect_allowed(*permissions)
permissions.each { |p| is_expected.to be_allowed(p) }
end
def expect_disallowed(*permissions)
permissions.each { |p| is_expected.not_to be_allowed(p) }
end
context 'group board' do
subject { described_class.new(user, group_board) }
context 'user has access' do
before do
group.add_developer(user)
end
it do
expect_allowed(*board_permissions)
end
end
context 'user does not have access' do
it do
expect_disallowed(*board_permissions)
end
end
end
context 'project board' do
subject { described_class.new(user, project_board) }
context 'user has access' do
before do
project.add_developer(user)
end
it do
expect_allowed(*board_permissions)
end
end
context 'user does not have access' do
it do
expect_disallowed(*board_permissions)
end
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment