[Testbot] Plone 5.0 - Python 2.7 - Build # 1926 - Improvement! - 2 failure(s)

jenkins at plone.org jenkins at plone.org
Wed Mar 12 03:29:42 UTC 2014


-------------------------------------------------------------------------------
Plone 5.0 - Python 2.7 - Build # 1926 - Still Failing!
-------------------------------------------------------------------------------

http://jenkins.plone.org/job/plone-5.0-python-2.7/1926/


-------------------------------------------------------------------------------
CHANGES
-------------------------------------------------------------------------------

Repository: Products.PlonePAS
Branch: refs/heads/master
Date: 2014-03-11T21:34:32-05:00
Author: Nathan Van Gheem (vangheem) <vangheem at gmail.com>
Commit: https://github.com/plone/Products.PlonePAS/commit/c9a3967a2b697e8786a8a24886e1490fef6f15e8

do not write on read

Files changed:
M CHANGES.txt
M Products/PlonePAS/tools/memberdata.py

diff --git a/CHANGES.txt b/CHANGES.txt
index de11cfd..553068b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -4,6 +4,9 @@ Changelog
 4.1.3 (unreleased)
 ------------------
 
+- Do not write member data on read
+  [vangheem]
+
 - Allow ``properties`` to be passed to ``PloneUser.setProperties``.
   This was previously ignored as ``setProperties`` solely utilised
   keyword arguments.
diff --git a/Products/PlonePAS/tools/memberdata.py b/Products/PlonePAS/tools/memberdata.py
index 45b3c62..812b693 100644
--- a/Products/PlonePAS/tools/memberdata.py
+++ b/Products/PlonePAS/tools/memberdata.py
@@ -170,6 +170,20 @@ def searchFulltextForMembers(self, s):
                     res.append(member)
         return res
 
+    #### check to see if we can add users. Need to be careful here
+    #### so we do not write on read
+    def canAddMemberData(self):
+        try:
+            if self.REQUEST.REQUEST_METHOD != 'POST':
+                return False
+            if getattr(self, '_p_jar', None) and \
+                    len(self._p_jar._registered_objects) > 0:
+                # XXX do not write on read
+                return True
+        except AttributeError:
+            pass
+        return False
+
     #### an exact copy from the base, so that we pick up the new MemberData.
     #### wrapUser should have a MemberData factory method to over-ride (or even
     #### set at run-time!) so that we don't have to do this.
@@ -183,10 +197,15 @@ def wrapUser(self, u):
         members = self._members
         if not id in members:
             base = aq_base(self)
-            members[id] = MemberData(base, id)
-        # Return a wrapper with self as containment and
-        # the user as context.
-        return members[id].__of__(self).__of__(u)
+            md = MemberData(base, id)
+            if self.canAddMemberData():
+                # XXX do not write on read
+                members[id] = md
+            return md.__of__(self).__of__(u)
+        else:
+            # Return a wrapper with self as containment and
+            # the user as context.
+            return members[id].__of__(self).__of__(u)
 
     @postonly
     def deleteMemberData(self, member_id, REQUEST=None):




-------------------------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CHANGES.log
Type: application/octet-stream
Size: 2551 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140312/b65c5c28/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: build.log
Type: application/octet-stream
Size: 123314 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140312/b65c5c28/attachment-0003.obj>


More information about the Testbot mailing list