[ARVADOS] created: 39292137fab0ea9720d2abc18c001d0e2ff8ce11

Git user git at public.curoverse.com
Thu Aug 11 14:24:04 EDT 2016


        at  39292137fab0ea9720d2abc18c001d0e2ff8ce11 (commit)


commit 39292137fab0ea9720d2abc18c001d0e2ff8ce11
Author: radhika <radhika at curoverse.com>
Date:   Thu Aug 11 14:10:00 2016 -0400

    9709: do not include manifest_text in collection logs.

diff --git a/services/api/app/models/collection.rb b/services/api/app/models/collection.rb
index 4a61292..248c8b9 100644
--- a/services/api/app/models/collection.rb
+++ b/services/api/app/models/collection.rb
@@ -356,6 +356,12 @@ class Collection < ArvadosModel
     super - ["manifest_text"]
   end
 
+  def logged_attributes
+    attrs = attributes.dup
+    attrs.delete('manifest_text')
+    attrs
+  end
+
   protected
   def portable_manifest_text
     self.class.munge_manifest_locators(manifest_text) do |match|
diff --git a/services/api/test/unit/log_test.rb b/services/api/test/unit/log_test.rb
index 22808c5..6bca80c 100644
--- a/services/api/test/unit/log_test.rb
+++ b/services/api/test/unit/log_test.rb
@@ -54,12 +54,12 @@ class LogTest < ActiveSupport::TestCase
     yield props if block_given?
   end
 
-  def assert_auth_logged_with_clean_properties(auth, event_type)
-    assert_logged(auth, event_type) do |props|
+  def assert_logged_with_clean_properties(obj, event_type, excluded_attr)
+    assert_logged(obj, event_type) do |props|
       ['old_attributes', 'new_attributes'].map { |k| props[k] }.compact
         .each do |attributes|
-        refute_includes(attributes, 'api_token',
-                        "auth log properties include sensitive API token")
+        refute_includes(attributes, excluded_attr,
+                        "log properties includes #{excluded_attr}")
       end
       yield props if block_given?
     end
@@ -224,12 +224,12 @@ class LogTest < ActiveSupport::TestCase
     auth.user = users(:spectator)
     auth.api_client = api_clients(:untrusted)
     auth.save!
-    assert_auth_logged_with_clean_properties(auth, :create)
+    assert_logged_with_clean_properties(auth, :create, 'api_token')
     auth.expires_at = Time.now
     auth.save!
-    assert_auth_logged_with_clean_properties(auth, :update)
+    assert_logged_with_clean_properties(auth, :update, 'api_token')
     auth.destroy
-    assert_auth_logged_with_clean_properties(auth, :destroy)
+    assert_logged_with_clean_properties(auth, :destroy, 'api_token')
   end
 
   test "use ownership and permission links to determine which logs a user can see" do
@@ -269,4 +269,16 @@ class LogTest < ActiveSupport::TestCase
       refute_includes result_ids, logs(notwant).id
     end
   end
+
+  test "manifest_text not included in collection logs" do
+    act_as_system_user do
+      coll = Collection.create(manifest_text: ". acbd18db4cc2f85cedef654fccc4a4d8+3 0:3:foo\n")
+      assert_logged_with_clean_properties(coll, :create, 'manifest_text')
+      coll.name = "testing"
+      coll.save!
+      assert_logged_with_clean_properties(coll, :update, 'manifest_text')
+      coll.destroy
+      assert_logged_with_clean_properties(coll, :destroy, 'manifest_text')
+    end
+  end
 end

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list