Commit d086221f authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'active-users' into 'master'

Blocking user does not remove him/her from project/groups but show blocked label

For #248

See merge request !1664
parents d881a927 de629b48
...@@ -34,6 +34,7 @@ v 7.9.0 (unreleased) ...@@ -34,6 +34,7 @@ v 7.9.0 (unreleased)
- Automatically link commit ranges to compare page: sha1...sha4 or sha1..sha4 (includes sha1 in comparison) - Automatically link commit ranges to compare page: sha1...sha4 or sha1..sha4 (includes sha1 in comparison)
- Move groups page from profile to dashboard - Move groups page from profile to dashboard
- Starred projects page at dashboard - Starred projects page at dashboard
- Blocking user does not remove him/her from project/groups but show blocked label
v 7.8.2 v 7.8.2
- Fix service migration issue when upgrading from versions prior to 7.3 - Fix service migration issue when upgrading from versions prior to 7.3
......
...@@ -154,24 +154,6 @@ class User < ActiveRecord::Base ...@@ -154,24 +154,6 @@ class User < ActiveRecord::Base
delegate :path, to: :namespace, allow_nil: true, prefix: true delegate :path, to: :namespace, allow_nil: true, prefix: true
state_machine :state, initial: :active do state_machine :state, initial: :active do
after_transition any => :blocked do |user, transition|
# Remove user from all projects and
user.project_members.find_each do |membership|
# skip owned resources
next if membership.project.owner == user
return false unless membership.destroy
end
# Remove user from all groups
user.group_members.find_each do |membership|
# skip owned resources
next if membership.group.last_owner?(user)
return false unless membership.destroy
end
end
event :block do event :block do
transition active: :blocked transition active: :blocked
end end
...@@ -626,7 +608,7 @@ class User < ActiveRecord::Base ...@@ -626,7 +608,7 @@ class User < ActiveRecord::Base
def contributed_projects_ids def contributed_projects_ids
Event.where(author_id: self). Event.where(author_id: self).
where("created_at > ?", Time.now - 1.year). where("created_at > ?", Time.now - 1.year).
where("action = :pushed OR (target_type = 'MergeRequest' AND action = :created)", where("action = :pushed OR (target_type = 'MergeRequest' AND action = :created)",
pushed: Event::PUSHED, created: Event::CREATED). pushed: Event::PUSHED, created: Event::CREATED).
reorder(project_id: :desc). reorder(project_id: :desc).
select(:project_id). select(:project_id).
......
...@@ -268,6 +268,7 @@ class NotificationService ...@@ -268,6 +268,7 @@ class NotificationService
# Also remove duplications and nil recipients # Also remove duplications and nil recipients
def reject_muted_users(users, project = nil) def reject_muted_users(users, project = nil)
users = users.to_a.compact.uniq users = users.to_a.compact.uniq
users = users.reject(&:blocked?)
users.reject do |user| users.reject do |user|
next user.notification.disabled? unless project next user.notification.disabled? unless project
......
...@@ -116,7 +116,6 @@ ...@@ -116,7 +116,6 @@
%ul %ul
%li User will not be able to login %li User will not be able to login
%li User will not be able to access git repositories %li User will not be able to access git repositories
%li User will be removed from joined projects and groups
%li Personal projects will be left %li Personal projects will be left
%li Owned groups will be left %li Owned groups will be left
%br %br
......
...@@ -8,6 +8,9 @@ ...@@ -8,6 +8,9 @@
%span.cgray= user.username %span.cgray= user.username
- if user == current_user - if user == current_user
%span.label.label-success It's you %span.label.label-success It's you
- if user.blocked?
%label.label.label-danger
%strong Blocked
- if show_roles - if show_roles
%span.pull-right %span.pull-right
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
= image_tag avatar_icon(user.email, 32), class: "avatar s32" = image_tag avatar_icon(user.email, 32), class: "avatar s32"
%p %p
%strong= user.name %strong= user.name
- if user.blocked?
%label.label.label-danger
%strong Blocked
%span.cgray= user.username %span.cgray= user.username
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment