From: Marius Balteanu Date: Mon, 28 Feb 2022 21:16:08 +0000 (+0000) Subject: Add habtm relation between roles and queries_roles (#36416). X-Git-Tag: 5.0.0~53 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=4cb518049f1e15919bab916a0f101808ec549ea9;p=redmine.git Add habtm relation between roles and queries_roles (#36416). git-svn-id: http://svn.redmine.org/redmine/trunk@21444 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/role.rb b/app/models/role.rb index 8a984bbba..790d09f27 100644 --- a/app/models/role.rb +++ b/app/models/role.rb @@ -68,6 +68,8 @@ class Role < ActiveRecord::Base :join_table => "#{table_name_prefix}roles_managed_roles#{table_name_suffix}", :association_foreign_key => "managed_role_id" + has_and_belongs_to_many :queries, :join_table => "#{table_name_prefix}queries_roles#{table_name_suffix}", :foreign_key => "role_id" + has_many :member_roles, :dependent => :destroy has_many :members, :through => :member_roles acts_as_positioned :scope => :builtin diff --git a/test/unit/role_test.rb b/test/unit/role_test.rb index 78d957821..8a1eb76d3 100644 --- a/test/unit/role_test.rb +++ b/test/unit/role_test.rb @@ -152,4 +152,17 @@ class RoleTest < ActiveSupport::TestCase assert_equal Role::BUILTIN_NON_MEMBER, role.builtin end end + + def test_destroy + role = Role.generate! + + # generate some dependent objects + query = IssueQuery.generate!(:project => @ecookbook, :visibility => Query::VISIBILITY_ROLES, :roles => Role.where(:id => [1, 3, role.id]).to_a) + + role.destroy + + # make sure some related data was removed + assert_nil ActiveRecord::Base.connection.select_value("SELECT 1 FROM queries_roles WHERE role_id = #{role.id}") + assert [1, 3], query.roles + end end