myexperiment-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myexperiment-hackers] [3027] trunk/app/controllers/users_controller.rb:


From: noreply
Subject: [myexperiment-hackers] [3027] trunk/app/controllers/users_controller.rb: fixed performance problem with large ranges in manage users page
Date: Wed, 13 Jun 2012 10:20:30 +0000 (UTC)

Revision
3027
Author
dgc
Date
2012-06-13 10:20:30 +0000 (Wed, 13 Jun 2012)

Log Message

fixed performance problem with large ranges in manage users page

Modified Paths

Diff

Modified: trunk/app/controllers/users_controller.rb (3026 => 3027)


--- trunk/app/controllers/users_controller.rb	2012-06-13 09:31:09 UTC (rev 3026)
+++ trunk/app/controllers/users_controller.rb	2012-06-13 10:20:30 UTC (rev 3027)
@@ -666,30 +666,36 @@
     from = params[:from].to_i
     to   = params[:to].to_i
 
-    (from..to).each do |user_id|
-      if user = User.find_by_id(user_id)
-        case params["user-#{user_id}"]
-        when "whitelist"
-          user.update_attributes(:account_status => "whitelist")
-        when "sleep"
-          user.update_attributes(:account_status => "sleep")
-        when "delete"
+    params.keys.each do |key|
 
-          # build an "all elements" user.xml record
+      match_data = key.match(/user-([0-9]*)/)
 
-          elements = {}
+      if match_data
+        if user = User.find_by_id(match_data[1])
+          puts "Processing user #{user.id}"
+          case params[key]
+          when "whitelist"
+            user.update_attributes(:account_status => "whitelist")
+          when "sleep"
+            user.update_attributes(:account_status => "sleep")
+          when "delete"
 
-          TABLES['Model'][:data]['user']['REST Attribute'].each do |attr|
-            add_to_element_hash(attr, elements)
-          end
+            # build an "all elements" user.xml record
 
-          doc  = LibXML::XML::Document.new()
-          root = rest_get_request_aux(user, nil, {}, elements) 
-          doc.root = root
+            elements = {}
 
-          File.open("#{Conf.deleted_data_directory}#{user.id}.xml", "wb+") { |f| f.write(doc.to_s) }
+            TABLES['Model'][:data]['user']['REST Attribute'].each do |attr|
+              add_to_element_hash(attr, elements)
+            end
 
-          user.destroy
+            doc  = LibXML::XML::Document.new()
+            root = rest_get_request_aux(user, nil, {}, elements) 
+            doc.root = root
+
+            File.open("#{Conf.deleted_data_directory}#{user.id}.xml", "wb+") { |f| f.write(doc.to_s) }
+
+            user.destroy
+          end
         end
       end
     end

reply via email to

[Prev in Thread] Current Thread [Next in Thread]