function getByUserId($userId, $contextId = null)
{
$params = array_merge($this->_getFetchParameters(), array((int) ROLE_ID_AUTHOR, (int) $userId));
if ($contextId) {
$params[] = (int) $contextId;
}
$result = $this->retrieve('SELECT s.*, ps.date_published,
' . $this->getFetchColumns() . '
FROM submissions s
LEFT JOIN published_submissions ps ON (s.submission_id = ps.submission_id)
' . $this->getFetchJoins() . '
WHERE s.submission_id IN (SELECT asa.submission_id FROM stage_assignments asa, user_groups aug WHERE asa.user_group_id = aug.user_group_id AND aug.role_id = ? AND asa.user_id = ?)' . ($contextId ? ' AND s.context_id = ?' : ''), $params);
return new DAOResultFactory($result, $this, '_fromRow');
}