3 declare(strict_types=0);
    43         return $GLOBALS[
'DIC']->access()->filterUserIdsByRbacOrPositionOfCurrentUser(
    74         $this->tpl->setOnScreenMessage(
'question', $this->
lng->txt(
'crs_ref_delete_confirmation_info'));
    79             'confirmDeleteParticipants'    82         $table->setParticipants($participants);
    85         $this->tpl->setContent($table->getHTML());
    93             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"), 
true);
    94             $this->
ctrl->redirect($this, 
'participants');
   100             !$this->
access->checkAccess(
'edit_permission', 
'', $this->getParentObject()->getRefId()) &&
   105                     $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'msg_no_perm_perm'), 
true);
   106                     $this->
ctrl->redirect($this, 
'participants');
   112             $this->tpl->setOnScreenMessage(
'failure', 
'Error deleting participants.', 
true);
   113             $this->
ctrl->redirect($this, 
'participants');
   127         if ($this->
http->wrapper()->post()->has(
'refs')) {
   128             $refs = $this->
http->wrapper()->post()->retrieve(
   130                 $this->
refinery->kindlyTo()->dictOf(
   131                     $this->
refinery->kindlyTo()->dictOf(
   139         foreach ($refs as $usr_id => $usr_info) {
   140             foreach ((array) $usr_info as $course_ref_id => $tmp) {
   142                 $part->delete($usr_id);
   145         $this->tpl->setOnScreenMessage(
   147             $this->
lng->txt($this->getParentObject()->getType() . 
"_members_deleted"),
   150         $this->
ctrl->redirect($this, 
"participants");
   158         $a_type = (
int) $a_type;
   160             $this->error->raiseError($this->
lng->txt(
"msg_no_perm_read"), $this->error->FATAL);
   162         if ($a_usr_ids === []) {
   163             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"crs_no_users_selected"), 
true);
   187                     if (in_array($a_type, $this->
getParentObject()->getLocalCourseRoles(
true))) {
   189                         $this->
getMembersObject()->updateRoleAssignments($user_id, (array) $a_type);
   192                         $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"crs_cannot_find_role"), 
true);
   204             $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"crs_users_added"), 
true);
   205             $this->
ctrl->redirect($this, 
'participants');
   207         $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"crs_users_already_assigned"), 
true);
   213         if ($this->
http->wrapper()->post()->has($item_key)) {
   214             return $this->
http->wrapper()->post()->retrieve(
   216                 $this->
refinery->kindlyTo()->listOf(
   226         $visible_members = [];
   227         if ($this->
http->wrapper()->post()->has(
'visible_member_ids')) {
   228             $visible_members = $this->
http->wrapper()->post()->retrieve(
   229                 'visible_member_ids',
   230                 $this->
refinery->kindlyTo()->listOf(
   240         foreach ($visible_members as $member_id) {
   241             if ($this->
access->checkAccess(
"grade", 
"", $this->getParentObject()->getRefId())) {
   242                 $this->
getMembersObject()->updatePassed($member_id, in_array($member_id, $passed), 
true);
   249                 $this->
getMembersObject()->updateNotification($member_id, in_array($member_id, $notification));
   250                 $this->
getMembersObject()->updateContact($member_id, in_array($member_id, $contact));
   253                 if ($this->
getMembersObject()->isBlocked($member_id) && !in_array($member_id, $blocked)) {
   260                 if (!$this->
getMembersObject()->isBlocked($member_id) && in_array($member_id, $blocked)) {
   270                 $this->
getMembersObject()->updateBlocked($member_id, in_array($member_id, $blocked));
   273         $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'), 
true);
   274         $this->
ctrl->redirect($this, 
'participants');
   281         if ($show_tracking) {
   283             $show_tracking = $olp->isActive();
   302         $table->setTitle($this->
lng->txt($this->getParentObject()->getType() . 
'_header_edit_members'));
   310         $this->tpl->addBlockFile(
'ADM_CONTENT', 
'adm_content', 
'tpl.crs_edit_members.html', 
'components/ILIAS/Course');
   321     public function readMemberData(array $usr_ids, array $columns, 
bool $skip_names = 
false): array
   323         return $this->
getParentGUI()->readMemberData($usr_ids, $columns, $skip_names);
   328         $this->
getParentGUI()->updateLPFromStatus($a_member_id, $a_passed);
   338         return $this->
getParentGUI()->getObject()->getDefaultMemberRole();
   348         $this->
lng->loadLanguageModule(
'trac');
   353         if ($privacy->enabledCourseAccessTimes()) {
   359         if ($show_tracking) {
   361             $show_tracking = $olp->isActive();
   364         if ($show_tracking) {
   376         foreach ($a_members as $member_id) {
   381                 foreach ($udf_data->getAll() as $field => $value) {
   382                     list(
$f, $field_id) = explode(
'_', $field);
   383                     $print_member[$member_id][
'udf_' . $field_id] = (string) $value;
   386                 foreach ((array) ($cdfs[$member_id] ?? []) as $cdf_field => $cdf_value) {
   387                     $print_member[$member_id][
'cdf_' . $cdf_field] = (string) $cdf_value;
   390                 foreach ((array) $profile_data[$member_id] as $field => $value) {
   391                     $print_member[$member_id][$field] = $value;
   394                 $print_member[$member_id][
'login'] = $tmp_obj->getLogin();
   395                 $print_member[$member_id][
'name'] = $tmp_obj->getLastname() . 
', ' . $tmp_obj->getFirstname();
   398                     $print_member[$member_id][
'role'] = $this->
lng->txt(
"il_crs_admin");
   400                     $print_member[$member_id][
'role'] = $this->
lng->txt(
"il_crs_tutor");
   402                     $print_member[$member_id][
'role'] = $this->
lng->txt(
"il_crs_member");
   406                         $print_member[$member_id][
'status'] = $this->
lng->txt(
"crs_notify");
   408                         $print_member[$member_id][
'status'] = $this->
lng->txt(
"crs_no_notify");
   412                         $print_member[$member_id][
'status'] = $this->
lng->txt(
"crs_blocked");
   414                         $print_member[$member_id][
'status'] = $this->
lng->txt(
"crs_unblocked");
   419                     $print_member[$member_id][
'passed'] = $this->
getMembersObject()->hasPassed($member_id) ?
   420                         $this->
lng->txt(
'crs_member_passed') :
   421                         $this->
lng->txt(
'crs_member_not_passed');
   423                 if ($privacy->enabledCourseAccessTimes()) {
   424                     if (isset($progress[$member_id][
'ts']) && $progress[$member_id][
'ts']) {
   427                             $progress[$member_id][
'ts'],
   432                         $print_member[$member_id][
'access'] = $this->
lng->txt(
'no_date');
   435                 if ($show_tracking) {
   436                     if (in_array($member_id, $completed)) {
   438                     } elseif (in_array($member_id, $in_progress)) {
   440                     } elseif (in_array($member_id, $failed)) {
   448         $print_order = (string) (
ilSession::get(
'crs_print_order') ?? 
'');
   454         if (is_array($this->member_data) && array_key_exists($user_id, $this->member_data)) {
   455             return $this->member_data[
$user_id];
 
static get(string $a_var)
 
static array static setUseRelativeDates(bool $a_status)
set use relative dates 
 
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false, ilObjUser $user=null,)
 
const TYPE_ADMISSION_MEMBER
 
Base class for member tab content. 
 
static getLogger(string $a_component_id)
Get component logger. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
const TYPE_BLOCKED_MEMBER
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
const TYPE_DISMISS_MEMBER
 
const LP_STATUS_NOT_ATTEMPTED
 
updateParticipantsStatus()
 
const PROP_CONTEXT_SUBJECT_PREFIX
 
static _lookupInProgressForObject(int $a_obj_id, ?array $a_user_ids=null)
 
static getInstance(int $a_ref_id)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
updateLPFromStatus(int $a_member_id, bool $a_passed)
 
showDeleteParticipantsConfirmationWithLinkedCourses(array $participants)
Show deletion confirmation with linked courses. 
 
static _getValuesByObjId(int $a_obj_id)
 
initParticipantStatusFromPostFor(string $item_key)
 
const TYPE_UNBLOCKED_MEMBER
 
const STATUS_DETERMINATION_LP
 
getPrintMemberData(array $a_members)
 
const LP_STATUS_IN_PROGRESS
 
static _lookupContainerSetting(int $a_id, string $a_keyword, string $a_default_value=null)
 
static _lookupCompletedForObject(int $a_obj_id, ?array $a_user_ids=null)
 
initParticipantTableGUI()
 
readMemberData(array $usr_ids, array $columns, bool $skip_names=false)
 
assignMembers(array $a_usr_ids, string $a_type)
callback from repository search gui 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
const EXTERNAL_MAIL_PREFIX
 
static _enabledUserRelatedData()
 
getLocalTypeRole(bool $a_translation=false)
 
static _enabledLearningProgress()
 
Class ilMailMemberCourseRoles. 
 
static http()
Fetches the global http state from ILIAS. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
initParticipantTemplate()
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
ilParticipants $participants
 
getAttendanceListUserData(int $user_id, array $filters=[])
 
deleteParticipantsWithLinkedCourses()
 
initEditParticipantTableGUI(array $participants)
 
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id 
 
static _readUsersProfileData(array $a_user_ids)
 
static hasTimings(int $ref_id)
Check if there is any active timing (in subtree) 
 
filterUserIdsByRbacOrPositionOfCurrentUser(array $a_user_ids)
Filter user ids by access. 
 
initParticipantsFromPost()
 
static _lookupProgressByObjId(int $a_obj_id)
lookup progress for a specific object 
 
static _lookupFailedForObject(int $a_obj_id, ?array $a_user_ids=null)
 
checkRbacOrPositionAccessBool(string $a_rbac_perm, string $a_pos_perm, int $a_ref_id=0)
 
const LP_STATUS_COMPLETED
 
static getInstance(int $obj_id)
 
Class ilAbstractMailMemberRoles. 
 
static sortArray(array $array, string $a_array_sortby_key, string $a_array_sortorder="asc", bool $a_numeric=false, bool $a_keep_keys=false)