From 65455278535f9af769b6faa1ec9085737c2ff352 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Tue, 27 Aug 2013 12:01:45 +0300 Subject: [PATCH] Improve user block logic When block user - remove it from joined groups Dont remove user from own resources (groups, users) --- app/models/user.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/models/user.rb b/app/models/user.rb index 071f6f30f5a..e2c1580ffcf 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -126,6 +126,17 @@ class User < ActiveRecord::Base after_transition any => :blocked do |user, transition| # Remove user from all projects and user.users_projects.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.users_groups.find_each do |membership| + # skip owned resources + next if membership.group.owner == user + return false unless membership.destroy end end