コード例 #1
0
    def can_commit(self, item):
        if not ICheckedOut.providedBy(item):
            return False

        parent = getattr(item, 'aq_parent', None)
        while parent is not None:
            if ICheckedOut.providedBy(parent):
                return False
            parent = getattr(parent, 'aq_parent', None)

        return True
コード例 #2
0
    def can_commit(self, item):
        if not ICheckedOut.providedBy(item):
            return False

        parent = getattr(item, 'aq_parent', None)
        while parent is not None:
            if ICheckedOut.providedBy(parent):
                return False
            parent = getattr(parent, 'aq_parent', None)

        return True
コード例 #3
0
 def can_start_new_version(self, item):
     parent = item
     while parent is not None:
         if ICheckedOut.providedBy(parent):
             return False
         parent = getattr(parent, 'aq_parent', None)
     return True
コード例 #4
0
 def can_start_new_version(self, item):
     parent = item
     while parent is not None:
         if ICheckedOut.providedBy(parent):
             return False
         parent = getattr(parent, 'aq_parent', None)
     return True
コード例 #5
0
 def new(self, item):
     counter = 0
     for dontcare, child in item.ZopeFind(item, search_sub=1):
         if ICheckedOut.providedBy(child) or ICheckedIn.providedBy(child):
             raise RuntimeError, "Child is marked with ICheckedOut or ICheckedIn"
         if counter > 30:
             raise RuntimeError, "The object contains more than 30 children"
         counter += 1                
     return func(self, item)
コード例 #6
0
 def new(self, item):
     counter = 0
     for dontcare, child in item.ZopeFind(item, search_sub=1):
         if ICheckedOut.providedBy(child) or ICheckedIn.providedBy(child):
             raise RuntimeError, "Child is marked with ICheckedOut or ICheckedIn"
         if counter > 30:
             raise RuntimeError, "The object contains more than 30 children"
         counter += 1
     return func(self, item)
コード例 #7
0
 def catalog_object(self, obj, uid=None, idxs=None, update_metadata=1, pghandler=None, skip_interface_check=False):
     """If skip_interface_check then only catalog obj if it provides 
     ICheckedOut or ICheckedIn"""
     if not skip_interface_check:
         if not (ICheckedOut.providedBy(obj) or ICheckedIn.providedBy(obj)):
             return
     CatalogTool.catalog_object(
         self, IVersionMetadata(obj), uid, idxs, update_metadata, pghandler
     )
コード例 #8
0
def content_allowedRolesAndUsers(object):
    """Restrict allowedRolesAndUsers severely for a new version of an item"""
    parent = object
    while parent is not None:
        if ICheckedOut.providedBy(parent):
            pms = getToolByName(object, 'portal_membership')
            member = pms.getAuthenticatedMember()
            return ['user:%s' % member.getId()]
        parent = getattr(parent, 'aq_parent', None)

    return allowedRolesAndUsers(object)
コード例 #9
0
def content_allowedRolesAndUsers(object):
    """Restrict allowedRolesAndUsers severely for a new version of an item"""
    parent = object
    while parent is not None:    
        if ICheckedOut.providedBy(parent):
            pms = getToolByName(object, 'portal_membership')
            member = pms.getAuthenticatedMember()
            return ['user:%s' % member.getId()]
        parent = getattr(parent, 'aq_parent', None)

    return allowedRolesAndUsers(object)
コード例 #10
0
 def catalog_object(self,
                    obj,
                    uid=None,
                    idxs=None,
                    update_metadata=1,
                    pghandler=None,
                    skip_interface_check=False):
     """If skip_interface_check then only catalog obj if it provides 
     ICheckedOut or ICheckedIn"""
     if not skip_interface_check:
         if not (ICheckedOut.providedBy(obj) or ICheckedIn.providedBy(obj)):
             return
     CatalogTool.catalog_object(self, IVersionMetadata(obj), uid, idxs,
                                update_metadata, pghandler)
コード例 #11
0
 def state(self):
     if ICheckedOut.providedBy(self.context):
         return 'checked_out'
     if ICheckedIn.providedBy(self.context):
         return 'checked_in'
     return None
コード例 #12
0
 def state(self):
     if ICheckedOut.providedBy(self.context):
         return 'checked_out'
     if ICheckedIn.providedBy(self.context):
         return 'checked_in'
     return None
コード例 #13
0
 def getVersionsOf(self, obj):
     """Return all versions of object identified by token"""
     if not (ICheckedOut.providedBy(obj) or ICheckedIn.providedBy(obj)):
         return []
     return self(token=IVersionMetadata(obj).token)
コード例 #14
0
 def getVersionsOf(self, obj):
     """Return all versions of object identified by token"""
     if not (ICheckedOut.providedBy(obj) or ICheckedIn.providedBy(obj)):
         return []
     return self(token=IVersionMetadata(obj).token)