Lock.php
[Pman.Core] / Lock.php
1 <?php
2
3
4 require_once 'Pman.php';
5
6 class Pman_Core_Lock extends Pman
7 {
8     
9     function getAuth()
10     {
11          $au = $this->getAuthUser();
12         if (!$au) {
13              $this->jerr("Not authenticated", array('authFailure' => true));
14         }
15         $this->authUser = $au;
16         // check that it's a supplier!!!! 
17         
18         return true; 
19     }
20     
21     function get()
22     {
23         
24         // default action is to attempt to lock..
25         if (empty($_REQUEST['on_id']) || empty($_REQUEST['on_table'])) {
26             $this->jerr("Missing table or id");
27         }
28         $action = empty($_REQUEST['unlock']) ? 'lock' : 'unlock';
29         $tab = str_replace('/', '',$_REQUEST['on_table']); // basic protection??
30         $x = DB_DataObject::factory($tab);
31         if (!$x->get($_REQUEST['on_id'])) {
32             $this->jerr("Item does not exist");
33         }
34         $curlock = DB_DataObject::factory('Core_locking');
35         $curlock->setFrom(array(
36             'on_id' => $_REQUEST['on_id'],
37             'on_table' => $_REQUEST['on_table'],
38             //'person_id' => $this->authUser->id,
39         ));
40         $locked = false;
41         if ($curlock->find(true)) {
42             $locked = true;
43         }
44         $this->$action($curlock);
45         
46     }
47     
48     function unlock($curlock)
49     {
50         if (!$curlock->id) {
51             $this->jok("No lock");
52         }
53         
54         $curlock->delete();
55         $this->jok('locked');
56     }
57     
58     
59 }