diff --git a/application/controllers/admin/participantsaction.php b/application/controllers/admin/participantsaction.php index 873fd442bbb..60873cac1de 100644 --- a/application/controllers/admin/participantsaction.php +++ b/application/controllers/admin/participantsaction.php @@ -315,10 +315,17 @@ function getShareInfo_json() foreach ($records as $row) { - $oShared = User::model()->getName($row['share_uid']); //for conversion of uid to human readable names + //for conversion of uid to human readable names + $iShareUserId = $row['share_uid']; + if ($iShareUserId != 0) { + $oShared = User::model()->getName($iShareUserId); + $sSharename = $oShared[0]['full_name']; + } else { + $sSharename = 'All users'; + } $owner = User::model()->getName($row['owner_uid']); $aData->rows[$i]['id'] = $row['participant_id']."--".$row['share_uid']; //This is the unique combination per record - $aData->rows[$i]['cell'] = array($row['firstname'], $row['lastname'], $row['email'], $oShared[0]['full_name'], $row['share_uid'], $owner[0]['full_name'], $row['date_added'], $row['can_edit']); + $aData->rows[$i]['cell'] = array($row['firstname'], $row['lastname'], $row['email'], $sSharename, $row['share_uid'], $owner[0]['full_name'], $row['date_added'], $row['can_edit']); $i++; } @@ -334,9 +341,15 @@ function getShareInfo_json() foreach ($records as $row) { - $sharename = User::model()->getName($row['share_uid']); //for conversion of uid to human readable names + $iShareUserId = $row['share_uid'];//for conversion of uid to human readable names + if ($iShareUserId != 0) { + $oShared = User::model()->getName($iShareUserId); + $sSharename = $oShared[0]['full_name']; + } else { + $sSharename = 'All users'; + } $aData->rows[$i]['id'] = $row['participant_id']; - $aData['rows'][$i]['cell'] = array($row['firstname'], $row['lastname'], $row['email'], $sharename['full_name'], $row['share_uid'], $row['date_added'], $row['can_edit']); + $aData['rows'][$i]['cell'] = array($row['firstname'], $row['lastname'], $row['email'], $sSharename, $row['share_uid'], $row['date_added'], $row['can_edit']); $i++; } @@ -1458,6 +1471,12 @@ function shareParticipants() $iParticipantId = Yii::app()->request->getPost('participantid'); $iShareUserId = Yii::app()->request->getPost('shareuser'); $bCanEdit = Yii::app()->request->getPost('can_edit'); + + // Some input validation needed + if ($iShareUserId == '') { + printf($clang->gT("Please select a user")); + return; + } $i = 0; if (Permission::model()->hasGlobalPermission('participantpanel','update') && $iShareUserId>0) diff --git a/application/models/Participant.php b/application/models/Participant.php index 9159d3ec7be..ea761f311fe 100644 --- a/application/models/Participant.php +++ b/application/models/Participant.php @@ -322,7 +322,7 @@ private function getParticipantsSelectCommand($count = false, $attid, $search = // We are not superadmin so we need to limit to our own or shared with us $selectValue[] = '{{participant_shares}}.can_edit'; $joinValue[] = 'LEFT JOIN {{participant_shares}} ON p.participant_id={{participant_shares}}.participant_id'; - $aConditions[] = 'p.owner_uid = :userid1 OR {{participant_shares}}.share_uid = :userid2'; + $aConditions[] = 'p.owner_uid = :userid1 OR {{participant_shares}}.share_uid = :userid2 OR {{participant_shares}}.share_uid = 0'; } if ($count) { @@ -914,7 +914,7 @@ function is_owner($participant_id) ->db ->createCommand() ->select('count(*)') - ->where('participant_id = :participant_id AND share_uid = :userid') + ->where('participant_id = :participant_id AND ( share_uid = :userid oOR share_uid = 0)') ->from('{{participant_shares}}') ->bindParam(":participant_id", $participant_id, PDO::PARAM_STR) ->bindParam(":userid", $userid, PDO::PARAM_INT) diff --git a/application/views/admin/participants/displayParticipants_view.php b/application/views/admin/participants/displayParticipants_view.php index d699060cb1e..d1111028d0f 100644 --- a/application/views/admin/participants/displayParticipants_view.php +++ b/application/views/admin/participants/displayParticipants_view.php @@ -254,7 +254,10 @@

session['loginID'] == $row['uid']))