17 import(
'lib.pkp.classes.user.UserDAO');
31 LEFT JOIN user_user_groups uug ON (u.user_id = uug.user_id)
32 LEFT JOIN stage_assignments s ON (s.user_id = uug.user_id AND s.user_group_id = uug.user_group_id AND s.submission_id = ?)
33 JOIN user_group_stage ugs ON (uug.user_group_id = ugs.user_group_id AND ugs.stage_id = ?)
34 WHERE uug.user_group_id = ? AND
35 s.user_group_id IS NULL',
36 array((
int) $submissionId, (
int) $stageId, (
int) $userGroupId));
51 return $this->
_getUsersByIds($submissionId, $stageId, $userGroupId, $userId, $roleId);
60 return $this->
update(
'DELETE FROM stage_assignments WHERE stage_assignment_id = ?', (
int) $assignmentId);
74 $primaryLocale = $site->getPrimaryLocale();
79 IDENTITY_SETTING_GIVENNAME, $primaryLocale,
80 IDENTITY_SETTING_FAMILYNAME, $primaryLocale,
81 IDENTITY_SETTING_GIVENNAME, $locale,
82 IDENTITY_SETTING_FAMILYNAME, $locale,
86 $params = array_merge($params, array_fill(0, 6,
'%'.(
string) $name.
'%'));
91 LEFT JOIN user_user_groups uug ON (u.user_id = uug.user_id)
92 LEFT JOIN stage_assignments s ON (s.user_id = uug.user_id AND s.user_group_id = uug.user_group_id AND s.submission_id = ?)
93 JOIN user_group_stage ugs ON (uug.user_group_id = ugs.user_group_id AND ugs.stage_id = ?)
94 LEFT JOIN user_settings usgs_pl ON (usgs_pl.user_id = u.user_id AND usgs_pl.setting_name = ? AND usgs_pl.locale = ?)
95 LEFT JOIN user_settings usfs_pl ON (usfs_pl.user_id = u.user_id AND usfs_pl.setting_name = ? AND usfs_pl.locale = ?)
96 LEFT JOIN user_settings usgs_l ON (usgs_l.user_id = u.user_id AND usgs_l.setting_name = ? AND usgs_l.locale = ?)
97 LEFT JOIN user_settings usfs_l ON (usfs_l.user_id = u.user_id AND usfs_l.setting_name = ? AND usfs_l.locale = ?)
99 WHERE uug.user_group_id = ? AND
100 s.user_group_id IS NULL'
101 . ($name !==
null ?
' AND (usgs_pl.setting_value LIKE ? OR usgs_l.setting_value LIKE ? OR usfs_pl.setting_value LIKE ? OR usfs_l.setting_value LIKE ? OR u.username LIKE ? OR u.email LIKE ?)' :
'')
102 .
' ORDER BY COALESCE(usfs_l.setting_value, usfs_pl.setting_value)',
122 function _getUsersByIds($submissionId, $stageId =
null, $userGroupId =
null, $userId =
null, $roleId =
null) {
123 $params = array((
int) $submissionId);
124 if (isset($stageId)) $params[] = (int) $stageId;
125 if (isset($userGroupId)) $params[] = (
int) $userGroupId;
126 if (isset($userId)) $params[] = (
int) $userId;
127 if (isset($roleId)) $params[] = (
int) $roleId;
131 FROM stage_assignments sa
132 INNER JOIN user_group_stage ugs ON (sa.user_group_id = ugs.user_group_id)
133 INNER JOIN users u ON (u.user_id = sa.user_id) ' .
134 (isset($roleId) ?
'INNER JOIN user_groups ug ON (ug.user_group_id = sa.user_group_id) ' :
'') .
135 'WHERE submission_id = ?' .
136 (isset($stageId) ?
' AND ugs.stage_id = ?' :
'') .
137 (isset($userGroupId) ?
' AND sa.user_group_id = ?':
'') .
138 (isset($userId)?
' AND u.user_id = ? ' :
'') .
139 (isset($roleId)?
' AND ug.role_id = ?' :
''),
145 if ($result->RecordCount() == 1 && count($params) == 4) {
150 $returner =
new DAOResultFactory($result, $this,
'_returnUserFromRowWithData');