[zopeorg-checkins] CVS: Products/ZopeOrg-NV - ZopeOrgWorkflow.py:1.13
Jens Vagelpohl
jens at zope.com
Tue Jun 11 13:09:40 EDT 2002
Update of /cvs-zopeorg/Products/ZopeOrg-NV
In directory cvs.zope.org:/tmp/cvs-serv10843
Modified Files:
ZopeOrgWorkflow.py
Log Message:
- excise "sharing" of content
=== Products/ZopeOrg-NV/ZopeOrgWorkflow.py 1.12 => 1.13 ===
allow_request = _checkPermission('Request review', content)
allow_change = _checkPermission('Manage properties', content)
- owns_shareTarget = current_user == getattr(content, 'share_owner', '')
is_owner = current_user == content_creator
is_sitemanager = _checkPermission('Manage portal', content)
- no_share_target = getattr( content
- , 'share_target'
- , 'no_target') == 'no_target'
-
append_action = (lambda name, p, url=content_url, a=actions.append:
a({'name': name,
'url': url + '/' + p,
@@ -88,21 +83,9 @@
if is_owner and allow_request:
show_retract = 1
show_obsolete = 1
- append_action('Submit Share', 'content_submitshare_form')
if allow_review and not is_owner:
show_reject = 1
- elif review_state == 'share pending':
- if is_owner and allow_request:
- show_obsolete = 1
- if not is_owner and owns_shareTarget:
- append_action('Reject Share', 'content_reject_form')
- append_action('Divert Share', 'content_divertshare_form')
- append_action('Approve Share', 'content_share_form')
- elif is_sitemanager and no_share_target:
- append_action('Divert Share', 'content_divertshare_form')
- append_action('Reject Share', 'content_reject_form')
-
elif review_state == 'obsolete':
if allow_request or allow_review:
append_action('Restore', 'content_refresh_form')
@@ -137,32 +120,6 @@
return None
actions = []
- catalog = getToolByName(self, 'portal_catalog', None)
- if catalog is not None:
- pending = 0
- s_args = None
- if _checkPermission('Manage portal', info.portal):
- pending = pending + len(catalog.searchResults(
- review_state='share pending', share_target='no_target'))
- s_args = ''
-
- pm = getToolByName(self, 'portal_membership')
- current_user = pm.getAuthenticatedMember().getUserName()
- pending = pending + len(catalog.searchResults(
- review_state='share pending', share_owner=current_user))
-
- if pending > 0:
- s_url = '/search?review_state=share+pending'
-
- if s_args is None:
- s_args = '&share_owner=' + replace(current_user, ' ', '+')
-
- actions.append(
- {'name': 'Pending shares (%d)' % pending,
- 'url': info.portal_url + s_url + s_args,
- 'permissions': (),
- 'category': 'global'}
- )
return actions
@@ -175,9 +132,6 @@
, 'publish'
, 'reject'
, 'obsolete'
- , 'submit_share'
- , 'share'
- , 'divert_share'
, 'refresh'
))
@@ -223,12 +177,8 @@
elif action == 'reject':
if not allow_review or is_owner:
raise 'Unauthorized', 'Not authorized'
- if review_state == 'share pending':
- setattr(ob, 'share_target', '')
- setattr(ob, 'share_owner', '')
- self.setReviewStateOf(ob, 'published', action, comment)
- else:
- self.setReviewStateOf(ob, 'private', action, comment)
+
+ self.setReviewStateOf(ob, 'private', action, comment)
elif action == 'obsolete':
if not allow_change:
@@ -236,88 +186,6 @@
self.setReviewStateOf(ob, 'obsolete', action, comment)
self.unindexObject()
raise ObjectDeleted
-
- elif action == 'submit_share':
- if review_state != 'published':
- raise 'Unauthorized', 'Only "published" content can be shared'
- elif not allow_request:
- raise 'Unauthorized', 'Not authorized'
- share_target = kw.get('share_target')
- if share_target and share_target != 'no_target':
- share_obj = self.restrictedTraverse(share_target)
- share_owner = share_obj.getOwner().getUserName()
- setattr(ob, 'share_target', share_target)
- setattr(ob, 'share_owner', share_owner)
- else:
- setattr(ob, 'share_target', 'no_target')
-
- self.setReviewStateOf(ob, 'share pending', action, comment)
-
- elif action == 'divert_share':
- if review_state != 'share pending':
- raise 'Unauthorized', 'Only pending shares can be deflected'
- share_target = kw.get('share_target')
- share_obj = self.restrictedTraverse(share_target)
- share_owner = share_obj.getOwner().getUserName()
- setattr(ob, 'share_target', share_target)
- setattr(ob, 'share_owner', share_owner)
- self.setReviewStateOf(ob, 'share pending', action, comment)
-
- elif action == 'share':
- if review_state != 'share pending':
- raise 'Unauthorized', 'Only pending shares can be shared'
- if is_owner:
- raise 'Unauthorized', 'Owners cannot approve sharing'
-
- mem_tool = getToolByName(self, 'portal_membership')
- url_tool = getToolByName(self, 'portal_url')
- obj_id = ob.getId()
- obj_creatorName = ob.Creator()
- obj_creatorObj = mem_tool.getMemberById(obj_creatorName).getUser()
- container = aq_parent(aq_inner(ob))
- target = self.unrestrictedTraverse(getattr(ob, 'share_target'))
-
- subObs = ob.objectValues()
- for sub_Ob in subObs:
- try: subOb.unindexObject()
- except: pass
-
- container._delObject(obj_id)
-
- counter = 1
- new_obj_id = obj_id
- while 1:
- if hasattr(target, new_obj_id):
- new_obj_id = '%s_%d' % (obj_id, counter)
- counter = counter +1
- else:
- ob.id = new_obj_id
- target._setObject(new_obj_id, aq_base(aq_inner(ob)))
- break
-
- moved_obj = getattr(target, new_obj_id)
- moved_obj.manage_setLocalRoles( obj_creatorName, ['Owner', 'Manager'] )
- moved_obj.changeOwnership(obj_creatorObj)
-
- moved_subObs = moved_obj.objectValues()
- for subOb in moved_subObs:
- try: subOb.indexObject()
- except: pass
-
- self.setReviewStateOf(moved_obj, 'shared', action, comment)
-
- fav_obj = Favorite( id=new_obj_id
- , title=moved_obj.Title()
- , remote_url=url_tool.getRelativeUrl(moved_obj)
- , description=moved_obj.Description()
- )
- container._setObject(new_obj_id, fav_obj)
- fav_obj.changeOwnership(obj_creatorObj)
- fav_obj.manage_delLocalRoles((current_user),)
- fav_obj.manage_setLocalRoles(obj_creatorName, ['Owner'])
-
- # This will prevent further reindexing
- raise ObjectMoved( moved_obj )
elif action == 'refresh':
if (review_state != 'stale') and (review_state != 'obsolete'):
@@ -362,15 +230,6 @@
anon_view = 1
owner_modify = 1
reviewer_view = 1
- elif review_state == 'share pending':
- anon_view = 1
- owner_modify = 0 # Require a retraction for editing.
- reviewer_view = 1
- elif review_state == 'shared':
- anon_view = 1
- owner_modify = 1
- reviewer_view = 1
-
# Modify role to permission mappings directly.
More information about the zopeorg-checkins
mailing list