]> source.dussan.org Git - redmine.git/commitdiff
Prevent roles loading on each call to User#managed_roles for admins.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 17 Jun 2015 18:36:38 +0000 (18:36 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 17 Jun 2015 18:36:38 +0000 (18:36 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@14328 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/user.rb

index 9ff70617805292e2d1b75364f850f063559600c5..b36447cadd7ca744467a1287c3fd67578d081997 100644 (file)
@@ -157,6 +157,7 @@ class User < Principal
     @notified_projects_ids_changed = false
     @builtin_role = nil
     @visible_project_ids = nil
+    @managed_roles = nil
     base_reload(*args)
   end
 
@@ -569,7 +570,7 @@ class User < Principal
   # Returns the roles that the user is allowed to manage for the given project
   def managed_roles(project)
     if admin?
-      Role.givable.to_a
+      @managed_roles ||= Role.givable.to_a
     else
       membership(project).try(:managed_roles) || []
     end