[Erp5-report] r13059 - /erp5/trunk/products/ERP5Type/Base.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Feb 26 23:03:21 CET 2007
Author: jp
Date: Mon Feb 26 23:03:20 2007
New Revision: 13059
URL: http://svn.erp5.org?rev=13059&view=rev
Log:
Added method getViewPermissionOwner to retrieved Owner user ID whenever Owner has View permission. Please suggest better name if you can.
Modified:
erp5/trunk/products/ERP5Type/Base.py
Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=13059&r1=13058&r2=13059&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py (original)
+++ erp5/trunk/products/ERP5Type/Base.py Mon Feb 26 23:03:20 2007
@@ -33,6 +33,7 @@
from Globals import InitializeClass, DTMLFile, PersistentMapping
from AccessControl import ClassSecurityInfo
from AccessControl.Permission import pname, Permission
+from AccessControl.PermissionRole import rolesForPermissionOn
from Acquisition import aq_base, aq_inner, aq_acquire, aq_chain
import OFS.History
@@ -357,11 +358,14 @@
method_id)
else:
# Wrap method into WorkflowMethod is needed
- if getattr(klass,method_id,None) is not None:
+ if getattr(klass, method_id, None) is not None:
method = getattr(klass, method_id)
if callable(method):
if not isinstance(method, WorkflowMethod):
method = WorkflowMethod(method, method_id)
+ # We must set the method on the klass
+ # because klass has priority in lookup over
+ # _ac_dynamic
setattr(klass, method_id, method)
else:
method = getattr(prop_holder, method_id)
@@ -1419,6 +1423,18 @@
return tuple(permission_list)
+ security.declareProtected( Permissions.AccessContentsInformation, 'getViewPermissionOwner' )
+ def getViewPermissionOwner(self):
+ """
+ Returns the user ID of the owner if Owner role
+ has View permission. Returns None else.
+ """
+ path, user_id = self.getOwnerTuple()
+ if 'Owner' in rolesForPermissionOn(Permissions.View, self):
+ path, user_id = self.getOwnerTuple()
+ return user_id
+ return None
+
# Private accessors for the implementation of relations based on
# categories
security.declareProtected( Permissions.ModifyPortalContent, '_setValue' )
More information about the Erp5-report
mailing list