diff options
| author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-04-02 21:51:53 +0300 |
|---|---|---|
| committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-04-02 21:51:53 +0300 |
| commit | 9ee697dd6847de0bd1a38714df7d8bb509534d20 (patch) | |
| tree | daa0a7fd126368f7d1c94f1500ec13a649c19612 /app/models/merge_request.rb | |
| parent | 3c867dfa8efec28155158e3b2b7dbb21ba3ce0a1 (diff) | |
| download | gitlab-ce-9ee697dd6847de0bd1a38714df7d8bb509534d20.tar.gz | |
Use MergeRequest services in API and controllers
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/models/merge_request.rb')
| -rw-r--r-- | app/models/merge_request.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 5c2b0656d40..ffed03307ec 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -97,6 +97,7 @@ class MergeRequest < ActiveRecord::Base validates :target_project, presence: true validates :target_branch, presence: true validate :validate_branches + validate :validate_fork scope :of_group, ->(group) { where("source_project_id in (:group_project_ids) OR target_project_id in (:group_project_ids)", group_project_ids: group.project_ids) } scope :of_user_team, ->(team) { where("(source_project_id in (:team_project_ids) OR target_project_id in (:team_project_ids) AND assignee_id in (:team_member_ids))", team_project_ids: team.project_ids, team_member_ids: team.member_ids) } @@ -125,6 +126,20 @@ class MergeRequest < ActiveRecord::Base end end + def validate_fork + if target_projet == source_project + true + else + # If source and target projects are different + # we should check if source project is actually a fork of target project + if source_project.forked_from?(target_project) + true + else + errors.add :base, "Source project is not a fork of target project" + end + end + end + def update_merge_request_diff if source_branch_changed? || target_branch_changed? reload_code |
