diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-10-06 15:58:28 -0300 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-10-11 11:39:04 -0300 |
commit | 95a5cc9285a8583988ece697ebdb948730b5db55 (patch) | |
tree | e27fd2d1c13d5643d01852932160b6c4550bd9e1 /app/models/project.rb | |
parent | fb5a4202062d07d2dbca544f4cfb475a65411716 (diff) | |
download | gitlab-ce-95a5cc9285a8583988ece697ebdb948730b5db55.tar.gz |
Restrict the number of permitted boards per project to one
Diffstat (limited to 'app/models/project.rb')
-rw-r--r-- | app/models/project.rb | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 795a456b094..30db7ed50b3 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -16,6 +16,7 @@ class Project < ActiveRecord::Base extend Gitlab::ConfigHelper + NUMBER_OF_PERMITTED_BOARDS = 1 UNKNOWN_IMPORT_URL = 'http://unknown.git' cache_markdown_field :description, pipeline: :description @@ -65,7 +66,7 @@ class Project < ActiveRecord::Base 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 @@ class Project < ActiveRecord::Base 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 |