X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=Lock.php;h=b0e7ea9a2c05f14b13dd6e4ca26feb2eb1ed77be;hp=4858a9464aa704d90f99409a4b21ccdcc257e988;hb=HEAD;hpb=eae02fdbf627049bc24f3529402d0e7fd1bca811 diff --git a/Lock.php b/Lock.php index 4858a946..661381fa 100644 --- a/Lock.php +++ b/Lock.php @@ -40,7 +40,7 @@ class Pman_Core_Lock extends Pman { $au = $this->getAuthUser(); if (!$au) { - $this->jerr("Not authenticated", array('authFailure' => true)); + $this->jerror("LOGIN-NOAUTH", "Not authenticated", array('authFailure' => true)); } $this->authUser = $au; // check that it's a supplier!!!! @@ -48,7 +48,7 @@ class Pman_Core_Lock extends Pman return true; } - function get($action) + function get($action, $opts=array()) { // should we allow url links to lock things??? // only for debugging?? @@ -72,12 +72,12 @@ class Pman_Core_Lock extends Pman 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"); } @@ -100,12 +100,26 @@ class Pman_Core_Lock extends Pman } // 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; @@ -118,7 +132,7 @@ class Pman_Core_Lock extends Pman if ($nlocks && empty($_REQUEST['force'])) { // DB_DataObjecT::debugLevel(1); $ar = $curlock_ex->fetchAll('person_id', 'created'); - $p = DB_DataObject::factory('Person'); + $p = DB_DataObject::factory('core_person'); $p->selectAdd(); $p->selectAdd('id,name,email'); @@ -136,12 +150,13 @@ class Pman_Core_Lock extends Pman $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); @@ -160,7 +175,7 @@ class Pman_Core_Lock extends Pman // 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']),