Open Journal Systems  3.3.0
UserGroupAssignmentDAO.inc.php
1 <?php
2 
20 import('lib.pkp.classes.security.UserGroupAssignment');
21 
22 class UserGroupAssignmentDAO extends DAO {
23 
28  function newDataObject() {
29  return new UserGroupAssignment();
30  }
31 
37  function _fromRow($row) {
38  $userGroupAssignment = $this->newDataObject();
39  $userGroupAssignment->setUserGroupId($row['user_group_id']);
40  $userGroupAssignment->setUserId($row['user_id']);
41 
42  return $userGroupAssignment;
43  }
44 
50  function deleteByUserId($userId, $userGroupId = null) {
51  $params = array((int) $userId);
52  if ($userGroupId) $params[] = (int) $userGroupId;
53 
54  $this->update(
55  'DELETE FROM user_user_groups
56  WHERE user_id = ?
57  ' . ($userGroupId?' AND user_group_id = ?':''),
58  $params
59  );
60  }
61 
66  function deleteAssignmentsByUserGroupId($userGroupId) {
67  return $this->update('DELETE FROM user_user_groups
68  WHERE user_group_id = ?',
69  (int) $userGroupId);
70  }
71 
77  function deleteAssignmentsByContextId($contextId, $userId = null) {
78  $params = array((int) $contextId);
79  if ($userId) $params[] = (int) $userId;
80  $result = $this->retrieve(
81  'SELECT uug.user_group_id, uug.user_id
82  FROM user_groups ug
83  JOIN user_user_groups uug ON ug.user_group_id = uug.user_group_id
84  WHERE ug.context_id = ?
85  ' . ($userId?' AND uug.user_id = ?':''),
86  $params
87  );
88 
89  $assignments = new DAOResultFactory($result, $this, '_fromRow');
90  while ($assignment = $assignments->next()) {
91  $this->deleteByUserId($assignment->getUserId(), $assignment->getUserGroupId());
92  }
93  }
94 
95 
103  function getByUserId($userId, $contextId = null, $roleId = null) {
104  $params = array((int) $userId);
105  if ($contextId) $params[] = (int) $contextId;
106  if ($roleId) $params[] = (int) $roleId;
107 
108  $result = $this->retrieve(
109  'SELECT uug.user_group_id, uug.user_id
110  FROM user_groups ug
111  JOIN user_user_groups uug ON ug.user_group_id = uug.user_group_id
112  WHERE uug.user_id = ?' .
113  ($contextId?' AND ug.context_id = ?':'') .
114  ($roleId?' AND ug.role_id = ?':''),
115  $params
116  );
117  return new DAOResultFactory($result, $this, '_fromRow');
118  }
119 
120 
126  function insertObject($userGroupAssignment) {
127  $this->replace(
128  'user_user_groups',
129  array(
130  'user_id' => (int) $userGroupAssignment->getUserId(),
131  'user_group_id' => (int) $userGroupAssignment->getUserGroupId(),
132  ),
133  array('user_id', 'user_group_id')
134  );
135  }
136 
141  function deleteAssignment(&$userGroupAssignment) {
142  $this->update(
143  'DELETE FROM user_user_groups WHERE user_id = ? AND user_group_id = ?',
144  array((int) $userGroupAssignment->getUserId(), (int) $userGroupAssignment->getUserGroupId())
145  );
146  }
147 }
148 
149 
UserGroupAssignmentDAO\deleteByUserId
deleteByUserId($userId, $userGroupId=null)
Definition: UserGroupAssignmentDAO.inc.php:50
DAOResultFactory
Wrapper around ADORecordSet providing "factory" features for generating objects from DAOs.
Definition: DAOResultFactory.inc.php:21
UserGroupAssignmentDAO\deleteAssignmentsByContextId
deleteAssignmentsByContextId($contextId, $userId=null)
Definition: UserGroupAssignmentDAO.inc.php:77
UserGroupAssignment
Definition: UserGroupAssignment.inc.php:19
UserGroupAssignmentDAO\deleteAssignmentsByUserGroupId
deleteAssignmentsByUserGroupId($userGroupId)
Definition: UserGroupAssignmentDAO.inc.php:66
DAO\retrieve
& retrieve($sql, $params=false, $callHooks=true)
Definition: DAO.inc.php:85
UserGroupAssignmentDAO\getByUserId
getByUserId($userId, $contextId=null, $roleId=null)
Definition: UserGroupAssignmentDAO.inc.php:103
DAO\update
update($sql, $params=false, $callHooks=true, $dieOnError=true)
Definition: DAO.inc.php:214
UserGroupAssignmentDAO\_fromRow
_fromRow($row)
Definition: UserGroupAssignmentDAO.inc.php:37
UserGroupAssignmentDAO\newDataObject
newDataObject()
Definition: UserGroupAssignmentDAO.inc.php:28
UserGroupAssignmentDAO\deleteAssignment
deleteAssignment(&$userGroupAssignment)
Definition: UserGroupAssignmentDAO.inc.php:141
DAO\replace
replace($table, $arrFields, $keyCols)
Definition: DAO.inc.php:243
UserGroupAssignmentDAO\insertObject
insertObject($userGroupAssignment)
Definition: UserGroupAssignmentDAO.inc.php:126
DAO
Operations for retrieving and modifying objects from a database.
Definition: DAO.inc.php:31
UserGroupAssignmentDAO
Operations for retrieving and modifying user group assignments FIXME: Some of the context-specific fe...
Definition: UserGroupAssignmentDAO.inc.php:22