[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ Join as view added including upgrade step but not configured as check for profile still required.

Charlie Clark charlie at begeistert.org
Sat Sep 18 04:04:02 EDT 2010


Log message for revision 116548:
  Join as view added including upgrade step but not configured as check for profile still required.

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/configure.zcml
  U   Products.CMFDefault/trunk/Products/CMFDefault/profiles/views_support/actions.xml
  U   Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/configure.zcml	2010-09-18 00:49:30 UTC (rev 116547)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/configure.zcml	2010-09-18 08:04:00 UTC (rev 116548)
@@ -72,4 +72,11 @@
       permission="cmf.SetOwnPassword"
       />
 
+  <browser:page
+      for="*"
+      class=".user.Snoop"
+      name="userjs.html"
+      permission="zope.Public"
+  />
+  
 </configure>

Modified: Products.CMFDefault/trunk/Products/CMFDefault/profiles/views_support/actions.xml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/profiles/views_support/actions.xml	2010-09-18 00:49:30 UTC (rev 116547)
+++ Products.CMFDefault/trunk/Products/CMFDefault/profiles/views_support/actions.xml	2010-09-18 08:04:00 UTC (rev 116548)
@@ -19,6 +19,49 @@
    </property>
    <property name="visible">True</property>
   </object>
+  <object name="join" meta_type="CMF Action" i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">Join</property>
+   <property name="description"
+      i18n:translate="">Click here to Join</property>
+   <property name="url_expr">string:${portal_url}/@@join.html</property>
+   <property name="link_target"></property>
+   <property name="icon_expr">string:${portal_url}/join_icon.png</property>
+   <property name="available_expr">not: member</property>
+   <property name="permissions">
+    <element value="Add portal member"/>
+   </property>
+   <property name="visible">True</property>
+  </object>
+  <object name="change_password" meta_type="CMF Action"
+     i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">Change password</property>
+   <property name="description"
+      i18n:translate="">Change your password</property>
+   <property name="url_expr">string:${portal_url}/password_form</property>
+   <property name="link_target"></property>
+   <property
+      name="icon_expr">string:${portal_url}/preferences_icon.png</property>
+   <property name="available_expr">member</property>
+   <property name="permissions">
+    <element value="Set own password"/>
+   </property>
+   <property name="visible">True</property>
+  </object>
+  <object name="preferences" meta_type="CMF Action" i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">Preferences</property>
+   <property name="description"
+      i18n:translate="">Change your user preferences</property>
+   <property
+      name="url_expr">string:${portal_url}/@@preferences.html</property>
+   <property name="link_target"></property>
+   <property
+      name="icon_expr">string:${portal_url}/preferences_icon.png</property>
+   <property name="available_expr">member</property>
+   <property name="permissions">
+    <element value="View"/>
+   </property>
+   <property name="visible">True</property>
+  </object>
   <object name="logout" meta_type="CMF Action" i18n:domain="cmf_default">
    <property name="title" i18n:translate="">Log out</property>
    <property name="description"
@@ -32,6 +75,52 @@
    </property>
    <property name="visible">True</property>
   </object>
+  <object name="addFavorite" meta_type="CMF Action" i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">Add to favorites</property>
+   <property name="description"
+      i18n:translate="">Add this item to your favorites</property>
+   <property name="url_expr">string:${object_url}/addtoFavorites</property>
+   <property name="link_target"></property>
+   <property
+      name="icon_expr">string:${portal_url}/addfavorite_icon.png</property>
+   <property
+      name="available_expr">portal/portal_membership/getHomeFolder</property>
+   <property name="permissions">
+    <element value="View"/>
+   </property>
+   <property name="visible">True</property>
+  </object>
+  <object name="mystuff" meta_type="CMF Action" i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">My stuff</property>
+   <property name="description"
+      i18n:translate="">Goto your home folder</property>
+   <property
+      name="url_expr">string:${portal/portal_membership/getHomeUrl}/folder_contents</property>
+   <property name="link_target"></property>
+   <property name="icon_expr">string:${portal_url}/user_icon.png</property>
+   <property
+      name="available_expr">python: member and portal.portal_membership.getHomeFolder()</property>
+   <property name="permissions">
+    <element value="View"/>
+   </property>
+   <property name="visible">True</property>
+  </object>
+  <object name="favorites" meta_type="CMF Action" i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">My favorites</property>
+   <property name="description"
+      i18n:translate="">Browse your favorites</property>
+   <property
+      name="url_expr">string:${portal/portal_membership/getHomeUrl}/Favorites/folder_contents</property>
+   <property name="link_target"></property>
+   <property
+      name="icon_expr">string:${portal_url}/favorite_icon.png</property>
+   <property
+      name="available_expr">python: member and hasattr(portal.portal_membership.getHomeFolder(), "Favorites")</property>
+   <property name="permissions">
+    <element value="View"/>
+   </property>
+   <property name="visible">True</property>
+  </object>
   <object name="logged_in" meta_type="CMF Action" i18n:domain="cmf_default">
    <property name="title" i18n:translate="">Logged in</property>
    <property name="description" i18n:translate="">Used by scripts</property>
@@ -45,4 +134,123 @@
    <property name="visible">False</property>
   </object>
  </object>
+ <object name="object" meta_type="CMF Action Category">
+  <property name="title"></property>
+  <object name="reply" meta_type="CMF Action" i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">Reply</property>
+   <property name="description" i18n:translate=""></property>
+   <property
+      name="url_expr">string:${object_url}/discussion_reply_form</property>
+   <property name="link_target"></property>
+   <property name="icon_expr">string:${portal_url}/reply_icon.png</property>
+   <property
+      name="available_expr">python: object is not None and portal.portal_discussion.isDiscussionAllowedFor(object)</property>
+   <property name="permissions">
+    <element value="Reply to item"/>
+   </property>
+   <property name="visible">True</property>
+  </object>
+  <object name="syndication" meta_type="CMF Action" i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">Syndication</property>
+   <property name="description" i18n:translate=""></property>
+   <property name="url_expr">string:${folder_url}/synPropertiesForm</property>
+   <property name="link_target"></property>
+   <property
+      name="icon_expr">string:${portal_url}/syndication_icon.png</property>
+   <property name="available_expr">python: folder is object</property>
+   <property name="permissions">
+    <element value="Manage properties"/>
+   </property>
+   <property name="visible">True</property>
+  </object>
+  <object name="interfaces" meta_type="CMF Action" i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">Interfaces</property>
+   <property name="description"
+      i18n:translate="">Assign marker interfaces</property>
+   <property name="url_expr">string:${object_url}/edit-markers.html</property>
+   <property name="link_target"></property>
+   <property
+      name="icon_expr">string:${portal_url}/interfaces_icon.png</property>
+   <property name="available_expr"></property>
+   <property name="permissions">
+    <element value="Manage portal"/>
+   </property>
+   <property name="visible">True</property>
+  </object>
+ </object>
+ <object name="folder" meta_type="CMF Action Category">
+  <property name="title"></property>
+  <object name="folderContents" meta_type="CMF Action"
+     i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">Folder contents</property>
+   <property name="description" i18n:translate=""></property>
+   <property name="url_expr">string:${folder_url}/folder_contents</property>
+   <property name="link_target"></property>
+   <property name="icon_expr">string:${portal_url}/folder_icon.png</property>
+   <property name="available_expr">python: folder is not object</property>
+   <property name="permissions">
+    <element value="List folder contents"/>
+   </property>
+   <property name="visible">True</property>
+  </object>
+ </object>
+ <object name="global" meta_type="CMF Action Category">
+  <property name="title"></property>
+  <object name="manage_members" meta_type="CMF Action"
+     i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">Manage members</property>
+   <property name="description"
+      i18n:translate="">Manage portal members</property>
+   <property
+      name="url_expr">string:${portal_url}/members_manage_form</property>
+   <property name="link_target"></property>
+   <property name="icon_expr">string:${portal_url}/members_icon.png</property>
+   <property name="available_expr"></property>
+   <property name="permissions">
+    <element value="Manage users"/>
+   </property>
+   <property name="visible">True</property>
+  </object>
+  <object name="members_delete" meta_type="CMF Action"
+     i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">Delete members</property>
+   <property name="description"
+      i18n:translate="">Delete portal members</property>
+   <property
+      name="url_expr">string:${portal_url}/members_delete_form</property>
+   <property name="link_target"></property>
+   <property name="icon_expr"></property>
+   <property name="available_expr"></property>
+   <property name="permissions">
+    <element value="Manage users"/>
+   </property>
+   <property name="visible">False</property>
+  </object>
+  <object name="undo" meta_type="CMF Action" i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">Undo</property>
+   <property name="description" i18n:translate=""></property>
+   <property name="url_expr">string:${portal_url}/undo_form</property>
+   <property name="link_target"></property>
+   <property name="icon_expr">string:${portal_url}/undo_icon.png</property>
+   <property name="available_expr">member</property>
+   <property name="permissions">
+    <element value="List undoable changes"/>
+   </property>
+   <property name="visible">True</property>
+  </object>
+  <object name="configPortal" meta_type="CMF Action"
+     i18n:domain="cmf_default">
+   <property name="title" i18n:translate="">Reconfigure Portal</property>
+   <property name="description"
+      i18n:translate="">Reconfigure the portal</property>
+   <property name="url_expr">string:${portal_url}/reconfig_form</property>
+   <property name="link_target"></property>
+   <property name="icon_expr">string:${portal_url}/tool_icon.png</property>
+   <property name="available_expr"></property>
+   <property name="permissions">
+    <element value="Manage portal"/>
+   </property>
+   <property name="visible">True</property>
+  </object>
+ </object>
 </object>

Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py	2010-09-18 00:49:30 UTC (rev 116547)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py	2010-09-18 08:04:00 UTC (rev 116548)
@@ -15,14 +15,40 @@
 
 import logging
 
+from zope.component import getMultiAdapter
+
 from Acquisition import aq_base
 from Acquisition import aq_inner
 from Acquisition import aq_parent
 from OFS.userfolder import UserFolder
 from Products.CMFCore.utils import getToolByName
+from Products.GenericSetup.context import SetupEnviron
+from Products.GenericSetup.interfaces import IBody
 
 _MARKER = object()
 
+_ACTIONS_XML = """\
+<?xml version="1.0"?>
+<object name="portal_actions" meta_type="CMF Actions Tool"
+   xmlns:i18n="http://xml.zope.org/namespaces/i18n">
+   <object insert-after="join" name="change_password" meta_type="CMF Action"
+      i18n:domain="cmf_default">
+    <property name="title" i18n:translate="">Change password</property>
+    <property name="description"
+       i18n:translate="">Change your password</property>
+    <property name="url_expr">string:${portal_url}/password_form</property>
+    <property name="link_target"></property>
+    <property
+       name="icon_expr">string:${portal_url}/preferences_icon.png</property>
+    <property name="available_expr">member</property>
+    <property name="permissions">
+     <element value="Set own password"/>
+    </property>
+    <property name="visible">True</property>
+   </object>
+</object>
+"""
+
 def check_cookie_crumbler(tool):
     """2.2.x to 2.3.0 upgrade step checker
     """
@@ -100,3 +126,23 @@
             users._ofs_migrated = True
             users._p_changed = True
             logger.info("Updated UserFolder class.")
+
+def check_actions_tool(tool):
+    """2.2.x to 2.3.0 upgrade step checker
+    """
+    atool = getToolByName(tool, 'portal_actions')
+    try:
+        atool.user.change_password
+    except AttributeError:
+        return True
+    return False
+
+def upgrade_actions_tool(tool):
+    """2.2.x to 2.3.0 upgrade step handler
+    """
+    logger = logging.getLogger('GenericSetup.upgrade')
+    atool = getToolByName(tool, 'portal_actions')
+    environ = SetupEnviron()
+    environ._should_purge = False
+    getMultiAdapter((atool, environ), IBody).body = _ACTIONS_XML
+    logger.info("'change_password' action added.")
\ No newline at end of file



More information about the checkins mailing list