def unlock(self, filter, user, etag):
     item_model = ItemModel(self.data_layer)
     filter[LOCK_USER] = user
     # filter[ETAG] = etag
     item = item_model.find_one(filter)
     if item:
         updates = {LOCK_USER: None, 'lock_time': None}
         item_model.update(filter, updates)
 def lock(self, filter, user, etag):
     item_model = ItemModel(self.data_layer)
     item = item_model.find_one(filter)
     if item and self._can_lock(item, user):
         # filter[ETAG] = etag
         updates = {LOCK_USER: user, 'lock_time': utcnow()}
         item_model.update(filter, updates)
         item[LOCK_USER] = user
     else:
         raise SuperdeskError('Item locked by another user')
     return item