summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
Diffstat (limited to 'app/models')
-rw-r--r--app/models/event.rb20
-rw-r--r--app/models/merge_request.rb2
-rw-r--r--app/models/users_project.rb2
3 files changed, 21 insertions, 3 deletions
diff --git a/app/models/event.rb b/app/models/event.rb
index e20b79e2a82..308ffd63961 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -10,6 +10,8 @@ class Event < ActiveRecord::Base
Pushed = 5
Commented = 6
Merged = 7
+ Joined = 8 # User joined project
+ Left = 9 # User left project
belongs_to :project
belongs_to :target, polymorphic: true
@@ -37,7 +39,7 @@ class Event < ActiveRecord::Base
# - new issue
# - merge request
def allowed?
- push? || issue? || merge_request?
+ push? || issue? || merge_request? || membership_changed?
end
def push?
@@ -84,6 +86,18 @@ class Event < ActiveRecord::Base
[Closed, Reopened].include?(action)
end
+ def joined?
+ action == Joined
+ end
+
+ def left?
+ action == Left
+ end
+
+ def membership_changed?
+ joined? || left?
+ end
+
def issue
target if target_type == "Issue"
end
@@ -101,6 +115,10 @@ class Event < ActiveRecord::Base
"closed"
elsif merged?
"merged"
+ elsif joined?
+ 'joined'
+ elsif left?
+ 'left'
else
"opened"
end
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 542817b0eea..2e457f72286 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -162,7 +162,7 @@ class MergeRequest < ActiveRecord::Base
end
def automerge!(current_user)
- if Gitlab::Merge.new(self, current_user).merge
+ if Gitlab::Merge.new(self, current_user).merge && self.unmerged_commits.empty?
self.merge!(current_user.id)
true
end
diff --git a/app/models/users_project.rb b/app/models/users_project.rb
index 3b951f0dae9..ce64a10f3f0 100644
--- a/app/models/users_project.rb
+++ b/app/models/users_project.rb
@@ -23,7 +23,7 @@ class UsersProject < ActiveRecord::Base
def self.bulk_delete(project, user_ids)
UsersProject.transaction do
UsersProject.where(:user_id => user_ids, :project_id => project.id).each do |users_project|
- users_project.delete
+ users_project.destroy
end
end
end