Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
heptapod
heptapod
Commits
11b0d6dd263c
Commit
11b0d6dd
authored
Oct 06, 2016
by
Douglas Barbosa Alexandre
Browse files
Restrict the number of permitted boards per project to one
parent
c2e9acb8a4d2
Changes
2
Hide whitespace changes
Inline
Side-by-side
app/models/project.rb
View file @
11b0d6dd
...
...
@@ -16,6 +16,7 @@
extend
Gitlab
::
ConfigHelper
NUMBER_OF_PERMITTED_BOARDS
=
1
UNKNOWN_IMPORT_URL
=
'http://unknown.git'
cache_markdown_field
:description
,
pipeline: :description
...
...
@@ -65,7 +66,7 @@
belongs_to
:namespace
has_one
:last_event
,
->
{
order
'events.created_at DESC'
},
class_name:
'Event'
,
foreign_key:
'project_id'
has_many
:boards
,
dependent: :destroy
has_many
:boards
,
before_add: :validate_board_limit
,
dependent: :destroy
# Project services
has_many
:services
...
...
@@ -1338,4 +1339,8 @@
shared_projects
.
any?
end
def
validate_board_limit
(
board
)
raise
StandardError
,
'Number of permitted boards exceeded'
if
boards
.
size
>=
NUMBER_OF_PERMITTED_BOARDS
end
end
spec/models/project_spec.rb
View file @
11b0d6dd
...
...
@@ -94,6 +94,15 @@
end
end
end
describe
'#boards'
do
it
'raises an error when attempting to add more than one board to the project'
do
subject
.
boards
.
build
expect
{
subject
.
boards
.
build
}.
to
raise_error
(
StandardError
,
'Number of permitted boards exceeded'
)
expect
(
subject
.
boards
.
size
).
to
eq
1
end
end
end
describe
'modules'
do
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment