def test_after_checkout(self): working_copy = self.do_checkout() self.assertTrue(working_copy) self.assertTrue(IIterateAware.providedBy(working_copy)) self.assertFalse(IBaseline.providedBy(working_copy)) self.assertTrue(IWorkingCopy.providedBy(working_copy)) self.assertTrue(IIterateAware.providedBy(self.obj)) self.assertTrue(IBaseline.providedBy(self.obj)) self.assertFalse(IWorkingCopy.providedBy(self.obj))
def checkout_allowed(self): """ Overrided to check for the checkout permission, as it is normal """ context = aq_inner(self.context) if not IIterateAware.providedBy(context): return False archiver = IObjectArchiver(context) if not archiver.isVersionable(): return False policy = ICheckinCheckoutPolicy(context, None) if policy is None: return False if policy.getWorkingCopy() is not None: return False # check if its is a checkout if policy.getBaseline() is not None: return False checkPermission = getSecurityManager().checkPermission if not checkPermission(CheckoutPermission, context): return False return True
def checkin_allowed(self): """ Overrided to check for the checkin permission, as it should be normal """ context = aq_inner(self.context) checkPermission = getSecurityManager().checkPermission if not IIterateAware.providedBy(context): return False archiver = IObjectArchiver(context) if not archiver.isVersionable(): return False if not IWorkingCopy.providedBy(context): return False policy = ICheckinCheckoutPolicy(context, None) if policy is None: return False try: original = policy.getBaseline() except: return False if original is None: return False checkPermission = getSecurityManager().checkPermission if not checkPermission(CheckinPermission, original): return False return True
def is_checkout(self): """ Is this object a checkout? Used by WISE for workflow guards """ context = aq_inner(self.context) if not IIterateAware.providedBy(context): return False archiver = IObjectArchiver(context) if not archiver.isVersionable(): return False if IWorkingCopy.providedBy(context): return True return False
def __init__( self, context, request ): self.context = context self.request = request if HAS_STAGINGBEHAVIOR and IIterateAware.providedBy(context): if IBaseline.providedBy( self.context ): self.baseline = get_baseline(context) self.working_copy = get_working_copy(context) elif IWorkingCopy.providedBy( self.context ): self.working_copy = get_working_copy(context) self.baseline = get_baseline(context) else: raise AttributeError("Invalid Context") else: if IBaseline.providedBy( self.context ): self.baseline = context self.working_copy = context.getBackReferences( WorkingCopyRelation.relationship )[0] elif IWorkingCopy.providedBy( self.context ): self.working_copy = context self.baseline = context.getReferences( WorkingCopyRelation.relationship )[0] else: raise AttributeError("Invalid Context")
def test_before_checkout(self): self.assertTrue(self.obj) self.assertTrue(IIterateAware.providedBy(self.obj)) self.assertFalse(IBaseline.providedBy(self.obj)) self.assertFalse(IWorkingCopy.providedBy(self.obj))