def transaction(self, principal_id):
if principal_id:
transaction.begin()
login_principal(get_principal(principal_id))
try:
yield
except:
transaction.abort()
raise
else:
try:
transaction.commit()
except ZODB.POSException.ConflictError:
log.warning('Conflict while publishing', exc_info=True)
transaction.abort()
raise
finally:
zope.security.management.endInteraction()
评论列表
文章目录