return true;
}
- function get($action)
+ function get($action, $opts=array())
{
// should we allow url links to lock things???
// only for debugging??
if (empty($_REQUEST['id'])) {
$this->jerr("No lock id");
}
- $curlock = DB_DataObject::factory('Core_locking');
+ $curlock = DB_DataObject::factory('core_locking');
if (!$curlock->get($_REQUEST['id'])) {
$this->jok("No lock exists"); // been deleted before.. probably ok..
}
- if ($curlock->person_id != $this->authUser->id) {
+ if ($curlock->person_id != $this->authUser->id && empty($_REQUEST['force'])) {
// this is an error conditon..
$this->jerr("Lock id is invalid");
}
}
// is there a current lock on the item..
- $curlock = DB_DataObject::factory('Core_locking');
+ $curlock = DB_DataObject::factory('core_locking');
$curlock->setFrom(array(
'on_id' => $_REQUEST['on_id'],
'on_table' => strtolower($_REQUEST['on_table'])
));
+ // remove old locks..
+ $llc = clone($curlock);
+ $exp = date('Y-m-d', strtotime('NOW - 1 WEEK'));
+ $llc->whereAdd("created < '$exp'");
+ if ($llc->count()) {
+ $llc->find();
+ while($llc->fetch()) {
+ $llcd = clone($llc);
+ $llcd->delete();
+
+ }
+ }
+
+
$curlock_ex = clone($curlock);
$curlock->person_id = $this->authUser->id;
if ($nlocks && empty($_REQUEST['force'])) {
// DB_DataObjecT::debugLevel(1);
- $ar = $curlock->fetchAll('person_id', 'created');
- $p = DB_DataObject::factory('Person');
+ $ar = $curlock_ex->fetchAll('person_id', 'created');
+ $p = DB_DataObject::factory('core_person');
$p->selectAdd();
$p->selectAdd('id,name,email');
$ulocks = $curlock->count();
if ($ulocks) {
// trash all the locks..
- $curlock = DB_DataObject::factory('Core_locking');
+ $curlock = DB_DataObject::factory('core_locking');
$curlock->setFrom(array(
'on_id' => $_REQUEST['on_id'],
- 'on_table' => strtolower($_REQUEST['on_table'])
+ 'on_table' => strtolower($_REQUEST['on_table']),
+ 'person_id' => $this->authUser->id
));
- $curlock->person_id = $this->authUser->id;
+
$curlock->find();
while($curlock->fetch()) {
$cc =clone($curlock);
// make a lock..
- $curlock = DB_DataObject::factory('Core_locking');
+ $curlock = DB_DataObject::factory('core_locking');
$curlock->setFrom(array(
'on_id' => $_REQUEST['on_id'],
'on_table' => strtolower($_REQUEST['on_table']),