Vote #74896
完了Issue#css_classes corrupts user.groups association cache
0%
説明
https://github.com/redmine/redmine/pull/27
diff --git a/app/models/issue.rb b/app/models/issue.rb
index debb931..b9a2b20 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -1091,7 +1091,7 @@ def css_classes(user=User.current)
if user.logged?
s << ' created-by-me' if author_id == user.id
s << ' assigned-to-me' if assigned_to_id == user.id
- s << ' assigned-to-my-group' if user.groups.any? {|g| g.id = assigned_to_id}
+ s << ' assigned-to-my-group' if user.groups.any? {|g| g.id == assigned_to_id}
end
s
end
If user belongs any groups, 'assigned-to-my-group' is set.
It is wrong.
journals
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
It has serious side effect.
<pre>
1.9.3p484 :002 > user = Group.find(10).users.first
1.9.3p484 :004 > user.groups.collect(&:id)
Group Load (1.0ms) SELECT "users".* FROM "users" INNER JOIN "groups_users" ON "users"."id" = "groups_users"."group_id" WHERE "users"."type" IN ('Group') AND "groups_users"."user_id" = 8
=> [10, 11]
1.9.3p484 :005 > assigned_to_id = 1
=> 1
1.9.3p484 :006 > user.groups.any? {|g| g.id == assigned_to_id}
=> false
1.9.3p484 :007 > user.groups.any? {|g| g.id = assigned_to_id}
=> true
1.9.3p484 :008 > user.groups.collect(&:id)
=> [1, 11]
</pre>
--------------------------------------------------------------------------------
But, it seems no effect on database.
<pre>
1.9.3p484 :011 > user.save!
(0.3ms) begin transaction
(0.2ms) commit transaction
=> true
1.9.3p484 :012 > user.groups.collect(&:id)
=> [1, 11]
1.9.3p484 :013 > user.reload
User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."type" IN ('User', 'AnonymousUser') AND "users"."id" = ? LIMIT 1 [["id", 8]]
=> #<User id: 8, login: "miscuser8", hashed_password: "8f659c8d7c072f189374edacfa90d6abbc26d8ed", firstname: "User", lastname: "Misc", mail: "miscuser8@foo.bar", admin: false, status: 1, last_login_on: nil, language: "it", auth_source_id: nil, created_on: "2006-07-19 17:33:19", updated_on: "2006-07-19 17:33:19", type: "User", identity_url: nil, mail_notification: "only_my_events", salt: "7599f9963ec07b5a3b55b354407120c0", must_change_passwd: false>
1.9.3p484 :014 > user.groups.collect(&:id)
Group Load (0.5ms) SELECT "users".* FROM "users" INNER JOIN "groups_users" ON "users"."id" = "groups_users"."group_id" WHERE "users"."type" IN ('Group') AND "groups_users"."user_id" = 8
=> [10, 11]
</pre>
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
related_issues
relates,Closed,12681,Treat group assignments as assigned to me
relates,Closed,16166,Incorrect data on Issues assigned to me on MyPage
duplicates,Closed,16002,Assigned-to-my-group css corrupts user.groups association cache
Admin Redmine さんが3年以上前に更新
- カテゴリ を Code cleanup/refactoring_30 にセット
- 対象バージョン を 2.4.3_78 にセット