Back to index

plone3  3.1.7
lock.py
Go to the documentation of this file.
00001 ##################################################################
00002 #
00003 # (C) Copyright 2006 ObjectRealms, LLC
00004 # All Rights Reserved
00005 #
00006 # This file is part of iterate.
00007 #
00008 # iterate is free software; you can redistribute it and/or modify
00009 # it under the terms of the GNU General Public License as published by
00010 # the Free Software Foundation; either version 2 of the License, or
00011 # (at your option) any later version.
00012 #
00013 # iterate is distributed in the hope that it will be useful,
00014 # but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016 # GNU General Public License for more details.
00017 #
00018 # You should have received a copy of the GNU General Public License
00019 # along with iterate; if not, write to the Free Software
00020 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00021 ##################################################################
00022 """
00023 Checkin / Checkout Specific DAV Lock Manipulation and Introspection
00024 
00025 $Id: lock.py 1392 2006-06-20 01:02:17Z hazmat $
00026 """
00027 
00028 from plone.locking.interfaces import ILockable
00029 
00030 from interfaces import ITERATE_LOCK
00031 
00032 __all__ = ['lockContext', 'unlockContext', 'isLocked']
00033 
00034 def lockContext( context ):
00035     lockable = ILockable(context)
00036     # Be quite forceful - we assume that we won't have gotten here unless
00037     # we had rights to do this.
00038     lockable.clear_locks()
00039     lockable.lock(ITERATE_LOCK, children=True)
00040 
00041 def unlockContext( context ):
00042     lockable = ILockable(context)
00043     lockable.unlock(ITERATE_LOCK)
00044 
00045 def isLocked( context ):
00046     lockable = ILockable(context)
00047     lockable.locked()