public function readMemberData($ids, $role = 'admin', $selected_columns = null)
 {
     if ($this->show_tracking) {
         include_once 'Services/Tracking/classes/class.ilLPStatusWrapper.php';
         $completed = ilLPStatusWrapper::_lookupCompletedForObject($this->object->getId());
         $in_progress = ilLPStatusWrapper::_lookupInProgressForObject($this->object->getId());
         $failed = ilLPStatusWrapper::_lookupFailedForObject($this->object->getId());
     }
     include_once './Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
     $privacy = ilPrivacySettings::_getInstance();
     if ($privacy->enabledCourseAccessTimes()) {
         include_once './Services/Tracking/classes/class.ilLearningProgress.php';
         $progress = ilLearningProgress::_lookupProgressByObjId($this->object->getId());
     }
     $do_prtf = is_array($selected_columns) && in_array('prtf', $selected_columns) && is_array($ids);
     if ($do_prtf) {
         include_once "Modules/Portfolio/classes/class.ilObjPortfolio.php";
         $all_prtf = ilObjPortfolio::getAvailablePortfolioLinksForUserIds($ids, $this->ctrl->getLinkTarget($this, "members"));
     }
     foreach ((array) $ids as $usr_id) {
         $name = ilObjUser::_lookupName($usr_id);
         $tmp_data['firstname'] = $name['firstname'];
         $tmp_data['lastname'] = $name['lastname'];
         $tmp_data['login'] = ilObjUser::_lookupLogin($usr_id);
         $tmp_data['passed'] = $this->object->getMembersObject()->hasPassed($usr_id) ? 1 : 0;
         if ($this->object->getStatusDetermination() == ilObjCourse::STATUS_DETERMINATION_LP) {
             $tmp_data['passed_info'] = $this->object->getMembersObject()->getPassedInfo($usr_id);
         }
         $tmp_data['notification'] = $this->object->getMembersObject()->isNotificationEnabled($usr_id) ? 1 : 0;
         $tmp_data['blocked'] = $this->object->getMembersObject()->isBlocked($usr_id) ? 1 : 0;
         $tmp_data['usr_id'] = $usr_id;
         if ($this->show_tracking) {
             if (in_array($usr_id, $completed)) {
                 $tmp_data['progress'] = ilLPStatus::LP_STATUS_COMPLETED;
             } elseif (in_array($usr_id, $in_progress)) {
                 $tmp_data['progress'] = ilLPStatus::LP_STATUS_IN_PROGRESS;
             } elseif (in_array($usr_id, $failed)) {
                 $tmp_data['progress'] = ilLPStatus::LP_STATUS_FAILED;
             } else {
                 $tmp_data['progress'] = ilLPStatus::LP_STATUS_NOT_ATTEMPTED;
             }
         }
         if ($privacy->enabledCourseAccessTimes()) {
             if (isset($progress[$usr_id]['ts']) and $progress[$usr_id]['ts']) {
                 $tmp_data['access_ut'] = $progress[$usr_id]['ts'];
                 $tmp_data['access_time'] = ilDatePresentation::formatDate(new ilDateTime($progress[$usr_id]['ts'], IL_CAL_UNIX));
             } else {
                 $tmp_data['access_ut'] = 0;
                 $tmp_data['access_time'] = $this->lng->txt('no_date');
             }
         }
         if ($do_prtf) {
             $tmp_data['prtf'] = $all_prtf[$usr_id];
         }
         $members[$usr_id] = $tmp_data;
     }
     return $members ? $members : array();
 }