From 350e8d9087ba6a60f5c3dc0a50a1353c302f6851 Mon Sep 17 00:00:00 2001 From: RafsanNeloy Date: Fri, 13 Mar 2026 03:16:14 +0600 Subject: [PATCH 1/2] Fix `after_update` change detection for Rails 5+ and typo Signed-off-by: RafsanNeloy --- BrainPortal/app/models/site.rb | 6 +++--- BrainPortal/app/models/user.rb | 11 ++++++----- BrainPortal/lib/exception_helpers.rb | 4 ++-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/BrainPortal/app/models/site.rb b/BrainPortal/app/models/site.rb index 49623866c..a49228a22 100644 --- a/BrainPortal/app/models/site.rb +++ b/BrainPortal/app/models/site.rb @@ -219,9 +219,9 @@ def set_system_groups #:nodoc: end def system_group_rename #:nodoc: - if self.changed.include?("name") - old_name = self.changes["name"].first - SiteGroup.find_by_name(old_name).update_attributes!(:name => self.name) + if saved_change_to_attribute?("name") + old_name = saved_change_to_attribute("name").first + SiteGroup.find_by_name(old_name)&.update_attributes!(:name => self.name) end end diff --git a/BrainPortal/app/models/user.rb b/BrainPortal/app/models/user.rb index 21e61171e..4995aae2c 100644 --- a/BrainPortal/app/models/user.rb +++ b/BrainPortal/app/models/user.rb @@ -592,13 +592,14 @@ def immutable_login #:nodoc: def system_group_site_update #:nodoc: self.own_group.update_attributes(:site_id => self.site_id) - if self.changed.include?("site_id") - unless self.changes["site_id"].first.blank? - old_site = Site.find(self.changes["site_id"].first) + if saved_change_to_attribute?("site_id") + old_val, new_val = saved_change_to_attribute("site_id") + unless old_val.blank? + old_site = Site.find(old_val) old_site.own_group.users.delete(self) end - unless self.changes["site_id"].last.blank? - new_site = Site.find(self.changes["site_id"].last) + unless new_val.blank? + new_site = Site.find(new_val) new_site.own_group.user_ids |= [ self.id ] end end diff --git a/BrainPortal/lib/exception_helpers.rb b/BrainPortal/lib/exception_helpers.rb index 07a7970c8..965c4f89a 100644 --- a/BrainPortal/lib/exception_helpers.rb +++ b/BrainPortal/lib/exception_helpers.rb @@ -65,11 +65,11 @@ def record_not_deleted(exception) format.html { redirect_to default_redirect } format.js { render :partial => "shared/flash_update", :status => 403 } format.xml { render :xml => {:error => exception.message}, :status => 403 } - format.json { render :json => {:error => "The #{exception.model} with id = #{exception.id}} fails to delete", + format.json { render :json => {:error => "The #{exception.model} with id = #{exception.id} fails to delete", :message => CANNOT_DELETE_MSG, :type => "delete failed", :model => exception.model, - :id => expectation.id + :id => exception.id }, :status => 403 } end From d5c0a3bf9e1626de7fde7634d99dcac7633851bb Mon Sep 17 00:00:00 2001 From: RafsanNeloy Date: Fri, 13 Mar 2026 05:01:17 +0600 Subject: [PATCH 2/2] Reverting line Signed-off-by: RafsanNeloy --- BrainPortal/app/models/site.rb | 6 +++--- BrainPortal/app/models/user.rb | 11 +++++------ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/BrainPortal/app/models/site.rb b/BrainPortal/app/models/site.rb index a49228a22..49623866c 100644 --- a/BrainPortal/app/models/site.rb +++ b/BrainPortal/app/models/site.rb @@ -219,9 +219,9 @@ def set_system_groups #:nodoc: end def system_group_rename #:nodoc: - if saved_change_to_attribute?("name") - old_name = saved_change_to_attribute("name").first - SiteGroup.find_by_name(old_name)&.update_attributes!(:name => self.name) + if self.changed.include?("name") + old_name = self.changes["name"].first + SiteGroup.find_by_name(old_name).update_attributes!(:name => self.name) end end diff --git a/BrainPortal/app/models/user.rb b/BrainPortal/app/models/user.rb index 4995aae2c..21e61171e 100644 --- a/BrainPortal/app/models/user.rb +++ b/BrainPortal/app/models/user.rb @@ -592,14 +592,13 @@ def immutable_login #:nodoc: def system_group_site_update #:nodoc: self.own_group.update_attributes(:site_id => self.site_id) - if saved_change_to_attribute?("site_id") - old_val, new_val = saved_change_to_attribute("site_id") - unless old_val.blank? - old_site = Site.find(old_val) + if self.changed.include?("site_id") + unless self.changes["site_id"].first.blank? + old_site = Site.find(self.changes["site_id"].first) old_site.own_group.users.delete(self) end - unless new_val.blank? - new_site = Site.find(new_val) + unless self.changes["site_id"].last.blank? + new_site = Site.find(self.changes["site_id"].last) new_site.own_group.user_ids |= [ self.id ] end end