[Erp5-report] r13451 - in /erp5/trunk/products: ERP5/bootstrap/erp5_core/WorkflowTemplateIt...

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Mar 16 11:29:54 CET 2007


Author: jerome
Date: Fri Mar 16 11:29:49 2007
New Revision: 13451

URL: http://svn.erp5.org?rev=13451&view=rev
Log:
handle the case of 'Site' preference, they must have different security
definition, eg. they should be enabled for anonymous.
This is done by adding a new state 'global' and a global_enable automatic
method for preferences with priority = 1.


Added:
    erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/global.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/transitions/global_enable.xml
Modified:
    erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/disabled.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/enabled.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision
    erp5/trunk/products/ERP5Form/tests/testPreferences.py

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/disabled.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/disabled.xml?rev=13451&r1=13450&r2=13451&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/disabled.xml (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/disabled.xml Fri Mar 16 11:29:49 2007
@@ -43,6 +43,12 @@
                 <string>enable</string>
                 <string>enable_action</string>
               </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>type_list</string> </key>
+            <value>
+              <tuple/>
             </value>
         </item>
       </dictionary>

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/enabled.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/enabled.xml?rev=13451&r1=13450&r2=13451&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/enabled.xml (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/enabled.xml Fri Mar 16 11:29:49 2007
@@ -42,7 +42,14 @@
               <tuple>
                 <string>disable</string>
                 <string>disable_action</string>
+                <string>global_enable</string>
               </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>type_list</string> </key>
+            <value>
+              <tuple/>
             </value>
         </item>
       </dictionary>

Added: erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/global.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/global.xml?rev=13451&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/global.xml (added)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/states/global.xml Fri Mar 16 11:29:49 2007
@@ -1,0 +1,130 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.DCWorkflow.States</string>
+          <string>StateDefinition</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_owner</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>global</string> </value>
+        </item>
+        <item>
+            <key> <string>permission_roles</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Globally Enabled</string> </value>
+        </item>
+        <item>
+            <key> <string>transitions</string> </key>
+            <value>
+              <tuple>
+                <string>disable</string>
+                <string>disable_action</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>type_list</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Persistence</string>
+          <string>PersistentMapping</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_container</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>Access contents information</string> </key>
+                    <value>
+                      <tuple>
+                        <string>Anonymous</string>
+                        <string>Assignee</string>
+                        <string>Assignor</string>
+                        <string>Associate</string>
+                        <string>Auditor</string>
+                        <string>Authenticated</string>
+                        <string>Author</string>
+                        <string>Manager</string>
+                        <string>Member</string>
+                        <string>Owner</string>
+                        <string>Reviewer</string>
+                      </tuple>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>Modify portal content</string> </key>
+                    <value>
+                      <tuple>
+                        <string>Manager</string>
+                        <string>Owner</string>
+                      </tuple>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>View</string> </key>
+                    <value>
+                      <tuple>
+                        <string>Anonymous</string>
+                        <string>Assignee</string>
+                        <string>Assignor</string>
+                        <string>Associate</string>
+                        <string>Auditor</string>
+                        <string>Authenticated</string>
+                        <string>Author</string>
+                        <string>Manager</string>
+                        <string>Member</string>
+                        <string>Owner</string>
+                        <string>Reviewer</string>
+                      </tuple>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>

Added: erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/transitions/global_enable.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/transitions/global_enable.xml?rev=13451&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/transitions/global_enable.xml (added)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/preference_workflow/transitions/global_enable.xml Fri Mar 16 11:29:49 2007
@@ -1,0 +1,116 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.DCWorkflow.Transitions</string>
+          <string>TransitionDefinition</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_owner</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>actbox_category</string> </key>
+            <value> <string>workflow</string> </value>
+        </item>
+        <item>
+            <key> <string>actbox_name</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>actbox_url</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>after_script_name</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string>Enable a "global" preference</string> </value>
+        </item>
+        <item>
+            <key> <string>guard</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>global_enable</string> </value>
+        </item>
+        <item>
+            <key> <string>new_state_id</string> </key>
+            <value> <string>global</string> </value>
+        </item>
+        <item>
+            <key> <string>script_name</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>trigger_type</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.DCWorkflow.Guard</string>
+          <string>Guard</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>expr</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.CMFCore.Expression</string>
+          <string>Expression</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>text</string> </key>
+            <value> <string>python: object.getPriority() == 1</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision?rev=13451&r1=13450&r2=13451&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision Fri Mar 16 11:29:49 2007
@@ -1,1 +1,1 @@
-271
+272

Modified: erp5/trunk/products/ERP5Form/tests/testPreferences.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/tests/testPreferences.py?rev=13451&r1=13450&r2=13451&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/tests/testPreferences.py (original)
+++ erp5/trunk/products/ERP5Form/tests/testPreferences.py Fri Mar 16 11:29:49 2007
@@ -26,19 +26,15 @@
 #
 ##############################################################################
 
-import os, sys
-if __name__ == '__main__':
-  execfile(os.path.join(sys.path[0], 'framework.py'))
-
-# Needed in order to have a log file inside the current folder
-os.environ['EVENT_LOG_FILE'] = os.path.join(os.getcwd(), 'zLOG.log')
-os.environ['EVENT_LOG_SEVERITY'] = '-300'
-
-from AccessControl.SecurityManagement import newSecurityManager,\
-                                             getSecurityManager
+import unittest
+
+from AccessControl.SecurityManagement import newSecurityManager
+from AccessControl.SecurityManagement import noSecurityManager
+from AccessControl.SecurityManagement import getSecurityManager
 from zLOG import LOG
 from DateTime import DateTime
 from Testing import ZopeTestCase
+
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
 from Products.ERP5Form.Document.Preference import Priority
 
@@ -52,15 +48,16 @@
 
   def afterSetUp(self):
     uf = self.getPortal().acl_users
-    uf._doAddUser('manager', '', ['Manager', 'Assignor'], [])
+    uf._doAddUser('manager', '', ['Manager', 'Assignor', ], [])
     user = uf.getUserById('manager').__of__(uf)
     newSecurityManager(None, user)
     self.createPreferences()
-  
+
   def beforeTearDown(self):
     portal_preferences = self.getPreferenceTool()
     portal_preferences.manage_delObjects(list(portal_preferences.objectIds()))
     get_transaction().commit()
+    self.tic()
 
   def createPreferences(self) :
     """ create some preferences objects  """
@@ -126,13 +123,13 @@
     portal_workflow.doActionFor(
        site, 'enable_action', wf_id='preference_workflow')
     self.assertEquals(person1.getPreferenceState(), 'enabled')
-    self.assertEquals(site.getPreferenceState(),    'enabled')
+    self.assertEquals(site.getPreferenceState(),    'global')
 
     portal_workflow.doActionFor(
        group, 'enable_action', wf_id='preference_workflow')
     self.assertEquals(person1.getPreferenceState(), 'enabled')
     self.assertEquals(group.getPreferenceState(),   'enabled')
-    self.assertEquals(site.getPreferenceState(),    'enabled')
+    self.assertEquals(site.getPreferenceState(),    'global')
       
     portal_workflow.doActionFor(
        person2, 'enable_action', wf_id='preference_workflow')
@@ -140,7 +137,7 @@
     # enabling a preference disable all other of the same level
     self.assertEquals(person1.getPreferenceState(), 'disabled')
     self.assertEquals(group.getPreferenceState(),   'enabled')
-    self.assertEquals(site.getPreferenceState(),    'enabled')
+    self.assertEquals(site.getPreferenceState(),    'global')
 
   def test_GetPreference(self, quiet=quiet, run=run_all_tests):
     """ checks that getPreference returns the good preferred value"""
@@ -162,7 +159,7 @@
        site, 'enable_action', wf_id='preference_workflow')
     self.assertEquals(person1.getPreferenceState(), 'enabled')
     self.assertEquals(group.getPreferenceState(),   'enabled')
-    self.assertEquals(site.getPreferenceState(),    'enabled')
+    self.assertEquals(site.getPreferenceState(),    'global')
     person1.setPreferredAccountingTransactionSimulationState([])
     self.assertEquals(
       person1.getPreferredAccountingTransactionSimulationState(), None)
@@ -227,7 +224,7 @@
     self.assertEquals(group.getPreferenceState(),    'enabled')
     portal_workflow.doActionFor(
        site, 'enable_action', wf_id='preference_workflow')
-    self.assertEquals(site.getPreferenceState(),     'enabled')
+    self.assertEquals(site.getPreferenceState(),     'global')
     group.setPreferredAccountingTransactionSimulationStateList(['cancelled'])
     
     self.assertNotEquals( None,
@@ -347,11 +344,22 @@
     self.assertEquals(user_b_1.getPreferenceState(), 'enabled')
     self.assertEquals(user_a_2.getPreferenceState(), 'disabled')
 
-if __name__ == '__main__':
-  framework()
-else:
-  import unittest
-  def test_suite():
-    suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(TestPreferences))
-    return suite
+  def test_GlobalPreference(self):
+    # globally enabled preference are preference for anonymous users.
+    ptool = self.getPreferenceTool()
+    ptool.site.setPreferredAccountingTransactionSimulationStateList(
+                          ['this_is_visible_by_anonymous'])
+    self.getPortal().portal_workflow.doActionFor(
+                  ptool.site, 'enable_action', wf_id='preference_workflow')
+    self.assertEquals('global', ptool.site.getPreferenceState())
+    get_transaction().commit()
+    self.tic()
+    noSecurityManager()
+    self.assertEquals(['this_is_visible_by_anonymous'],
+        ptool.getPreferredAccountingTransactionSimulationStateList())
+ 
+    
+def test_suite():
+  suite = unittest.TestSuite()
+  suite.addTest(unittest.makeSuite(TestPreferences))
+  return suite




More information about the Erp5-report mailing list