Open Monograph Press  3.3.0
AccessKeyDAO.inc.php
1 <?php
2 
18 import('lib.pkp.classes.security.AccessKey');
19 
20 class AccessKeyDAO extends DAO {
21 
27  function &getAccessKey($accessKeyId) {
28  $result = $this->retrieve(
29  sprintf(
30  'SELECT * FROM access_keys WHERE access_key_id = ? AND expiry_date > %s',
32  ),
33  array((int) $accessKeyId)
34  );
35 
36  $accessKey = null;
37  if ($result->RecordCount() != 0) {
38  $accessKey =& $this->_returnAccessKeyFromRow($result->GetRowAssoc(false));
39  }
40  $result->Close();
41  return $accessKey;
42  }
43 
50  function &getAccessKeyByUserId($context, $userId) {
51  $result = $this->retrieve(
52  sprintf(
53  'SELECT * FROM access_keys WHERE context = ? AND user_id = ? AND expiry_date > %s',
55  ),
56  array($context, $userId)
57  );
58 
59  $returner = null;
60  if ($result->RecordCount() != 0) {
61  $returner =& $this->_returnAccessKeyFromRow($result->GetRowAssoc(false));
62  }
63  $result->Close();
64  return $returner;
65  }
66 
75  function &getAccessKeyByKeyHash($context, $userId, $keyHash, $assocId = null) {
76  $paramArray = array($context, $keyHash, (int) $userId);
77  if (isset($assocId)) $paramArray[] = (int) $assocId;
78  $result = $this->retrieve(
79  sprintf(
80  'SELECT * FROM access_keys WHERE context = ? AND key_hash = ? AND user_id = ? AND expiry_date > %s' . (isset($assocId)?' AND assoc_id = ?':''),
82  ),
83  $paramArray
84  );
85 
86  $returner = null;
87  if ($result->RecordCount() != 0) {
88  $returner =& $this->_returnAccessKeyFromRow($result->GetRowAssoc(false));
89  }
90  $result->Close();
91  return $returner;
92  }
93 
98  function newDataObject() {
99  return new AccessKey();
100  }
101 
107  function &_returnAccessKeyFromRow($row) {
108  $accessKey = $this->newDataObject();
109  $accessKey->setId($row['access_key_id']);
110  $accessKey->setKeyHash($row['key_hash']);
111  $accessKey->setExpiryDate($this->datetimeFromDB($row['expiry_date']));
112  $accessKey->setContext($row['context']);
113  $accessKey->setAssocId($row['assoc_id']);
114  $accessKey->setUserId($row['user_id']);
115 
116  HookRegistry::call('AccessKeyDAO::_returnAccessKeyFromRow', array(&$accessKey, &$row));
117 
118  return $accessKey;
119  }
120 
125  function insertObject($accessKey) {
126  $this->update(
127  sprintf('INSERT INTO access_keys
128  (key_hash, expiry_date, context, assoc_id, user_id)
129  VALUES
130  (?, %s, ?, ?, ?)',
131  $this->datetimeToDB($accessKey->getExpiryDate())),
132  array(
133  $accessKey->getKeyHash(),
134  $accessKey->getContext(),
135  $accessKey->getAssocId()==''?null:(int) $accessKey->getAssocId(),
136  (int) $accessKey->getUserId()
137  )
138  );
139 
140  $accessKey->setId($this->getInsertId());
141  return $accessKey->getId();
142  }
143 
148  function updateObject(&$accessKey) {
149  return $this->update(
150  sprintf('UPDATE access_keys
151  SET
152  key_hash = ?,
153  expiry_date = %s,
154  context = ?,
155  assoc_id = ?,
156  user_id = ?
157  WHERE access_key_id = ?',
158  $this->datetimeToDB($accessKey->getExpiryDate())),
159  array(
160  $accessKey->getKeyHash(),
161  $accessKey->getContext(),
162  $accessKey->getAssocId()==''?null:(int) $accessKey->getAssocId(),
163  (int) $accessKey->getUserId(),
164  (int) $accessKey->getId()
165  )
166  );
167  }
168 
173  function deleteObject(&$accessKey) {
174  return $this->deleteAccessKeyById($accessKey->getId());
175  }
176 
181  function deleteAccessKeyById($accessKeyId) {
182  return $this->update(
183  'DELETE FROM access_keys WHERE access_key_id = ?',
184  array((int) $accessKeyId)
185  );
186  }
187 
193  function transferAccessKeys($oldUserId, $newUserId) {
194  return $this->update(
195  'UPDATE access_keys SET user_id = ? WHERE user_id = ?',
196  array((int) $newUserId, (int) $oldUserId)
197  );
198  }
199 
203  function deleteExpiredKeys() {
204  return $this->update(
205  sprintf(
206  'DELETE FROM access_keys WHERE expiry_date <= %s',
208  )
209  );
210  }
211 
216  function getInsertId() {
217  return $this->_getInsertId('access_keys', 'access_key_id');
218  }
219 }
220 
221 
AccessKeyDAO\_returnAccessKeyFromRow
& _returnAccessKeyFromRow($row)
Definition: AccessKeyDAO.inc.php:107
AccessKeyDAO\transferAccessKeys
transferAccessKeys($oldUserId, $newUserId)
Definition: AccessKeyDAO.inc.php:193
AccessKeyDAO\deleteExpiredKeys
deleteExpiredKeys()
Definition: AccessKeyDAO.inc.php:203
DAO\retrieve
& retrieve($sql, $params=false, $callHooks=true)
Definition: DAO.inc.php:85
AccessKeyDAO\deleteObject
deleteObject(&$accessKey)
Definition: AccessKeyDAO.inc.php:173
AccessKeyDAO\getAccessKey
& getAccessKey($accessKeyId)
Definition: AccessKeyDAO.inc.php:27
AccessKeyDAO\getInsertId
getInsertId()
Definition: AccessKeyDAO.inc.php:216
DAO\datetimeFromDB
datetimeFromDB($dt)
Definition: DAO.inc.php:319
AccessKeyDAO\deleteAccessKeyById
deleteAccessKeyById($accessKeyId)
Definition: AccessKeyDAO.inc.php:181
AccessKeyDAO\getAccessKeyByKeyHash
& getAccessKeyByKeyHash($context, $userId, $keyHash, $assocId=null)
Definition: AccessKeyDAO.inc.php:75
AccessKeyDAO\getAccessKeyByUserId
& getAccessKeyByUserId($context, $userId)
Definition: AccessKeyDAO.inc.php:50
DAO\update
update($sql, $params=false, $callHooks=true, $dieOnError=true)
Definition: DAO.inc.php:214
DAO\datetimeToDB
datetimeToDB($dt)
Definition: DAO.inc.php:299
DAO\_getInsertId
_getInsertId($table='', $id='')
Definition: DAO.inc.php:255
AccessKeyDAO\newDataObject
newDataObject()
Definition: AccessKeyDAO.inc.php:98
AccessKeyDAO\insertObject
insertObject($accessKey)
Definition: AccessKeyDAO.inc.php:125
Core\getCurrentDate
static getCurrentDate($ts=null)
Definition: Core.inc.php:63
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
AccessKeyDAO\updateObject
updateObject(&$accessKey)
Definition: AccessKeyDAO.inc.php:148
DAO
Operations for retrieving and modifying objects from a database.
Definition: DAO.inc.php:31
AccessKey
AccessKey class.
Definition: AccessKey.inc.php:22
AccessKeyDAO
Operations for retrieving and modifying AccessKey objects.
Definition: AccessKeyDAO.inc.php:20