58        $this->repository_object = $repository_obj;
 
   60        $this->lng = 
$GLOBALS[
'DIC']->language();
 
   61        $this->lng->loadLanguageModule(
'crs');
 
   63        $this->tpl = 
$GLOBALS[
'DIC']->ui()->mainTemplate();
 
   64        $this->ctrl = 
$GLOBALS[
'DIC']->ctrl();
 
   65        $this->logger = 
$DIC->logger()->mmbr();
 
   66        $this->access = 
$GLOBALS[
'DIC']->access();
 
  119            return $this->participants;
 
  144        return $this->access->checkAccess($a_permission, $a_cmd, $a_ref_id);
 
  158        return $this->access->checkRbacOrPositionPermissionAccess($a_rbac_perm, $a_pos_perm, $a_ref_id);
 
  215    public function executeCommand()
 
  224        $ilAccess = 
$DIC[
'ilAccess'];
 
  225        $rbacsystem = 
$DIC[
'rbacsystem'];
 
  226        $ilTabs = 
$DIC[
'ilTabs'];
 
  228        $cmd = $this->ctrl->getCmd(
'participants');
 
  229        $next_class = $this->ctrl->getNextClass();
 
  231        switch ($next_class) {
 
  232            case 'ilrepositorysearchgui':
 
  236                include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
 
  237                include_once 
'./Services/Membership/classes/class.ilParticipants.php';
 
  239                $rep_search->addUserAccessFilterCallable([$this,
'filterUserIdsByRbacOrPositionOfCurrentUser']);
 
  243                    $participants->isAdmin(
$GLOBALS[
'DIC'][
'ilUser']->getId()) ||
 
  244                    $ilAccess->checkAccess(
'manage_members', 
'', $this->getParentObject()->getRefId())
 
  246                    $rep_search->setCallback(
 
  253                    $rep_search->setCallback(
 
  261                $this->ctrl->setReturn($this, 
'participants');
 
  262                $ret = $this->ctrl->forwardCommand($rep_search);
 
  266            case 'ilmailmembersearchgui':
 
  267                $ilTabs->clearTargets();
 
  268                $ilTabs->setBackTarget(
 
  269                    $this->lng->txt(
'btn_back'),
 
  270                    $this->ctrl->getLinkTarget($this, $this->getDefaultCommand())
 
  276                    $ilAccess->checkAccess(
'manage_members', 
"", $this->getParentObject()->getRefId())
 
  278                    !$rbacsystem->checkAccess(
 
  280                        $mail->getMailObjectReferenceId()
 
  282                    $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"), 
$ilErr->MESSAGE);
 
  290                $mail_search->setObjParticipants(
 
  293                $this->ctrl->forwardCommand($mail_search);
 
  296            case 'ilusersgallerygui':
 
  312                    $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'), 
$ilErr->MESSAGE);
 
  318                require_once 
'Services/User/Gallery/classes/class.ilUsersGalleryGUI.php';
 
  319                require_once 
'Services/User/Gallery/classes/class.ilUsersGalleryParticipants.php';
 
  324                $this->ctrl->forwardCommand($gallery_gui);
 
  327            case 'ilcourseparticipantsgroupsgui':
 
  333                include_once 
'./Modules/Course/classes/class.ilCourseParticipantsGroupsGUI.php';
 
  335                if ($cmd == 
"show" || $cmd = 
"") {
 
  338                $this->ctrl->forwardCommand($cmg_gui);
 
  341            case 'ilsessionoverviewgui':
 
  346                include_once 
'./Services/Membership/classes/class.ilParticipants.php';
 
  349                include_once(
'./Modules/Session/classes/class.ilSessionOverviewGUI.php');
 
  351                $this->ctrl->forwardCommand($overview);
 
  354            case 'ilmemberexportgui':
 
  359                include_once(
'./Services/Membership/classes/Export/class.ilMemberExportGUI.php');
 
  361                $this->ctrl->forwardCommand($export);
 
  364            case 'ilobjectcustomuserfieldsgui':
 
  368                $this->activateSubTab($this->
getParentObject()->getType() . 
"_member_administration");
 
  369                $this->ctrl->setReturn($this, 
'participants');
 
  371                include_once 
'./Services/Membership/classes/class.ilObjectCustomUserFieldsGUI.php';
 
  373                $this->ctrl->forwardCommand($cdf_gui);
 
  382                    $cmd == 
"mailMembersBtn" ||
 
  383                    $cmd == 
'membersMap' ||
 
  384                    $cmd == 
'printForMembersOutput' ||
 
  385                    $cmd == 
'jump2UsersGallery' 
  402        $this->initParticipantTemplate();
 
  404        $this->activateSubTab($this->
getParentObject()->getType() . 
"_member_administration");
 
  409            $this->tpl->setVariable(
'TABLE_WAIT', $waiting->getHTML());
 
  415            $this->tpl->setVariable(
'TABLE_SUB', $subscriber->getHTML());
 
  419        $table = $this->initParticipantTableGUI();
 
  420        $table->setTitle($this->lng->txt($this->getParentObject()->getType() . 
'_mem_tbl_header'));
 
  421        $table->setFormAction($this->ctrl->getFormAction($this));
 
  425        $table->setFilterCommand(
'participantsApplyFilter');
 
  426        $table->setResetCommand(
'participantsResetFilter');
 
  428        $this->tpl->setVariable(
'MEMBERS', 
$table->getHTML());
 
  436        $table = $this->initParticipantTableGUI();
 
  438        $table->writeFilterToSession();
 
  448        $table = $this->initParticipantTableGUI();
 
  461        $this->activateSubTab($this->
getParentObject()->getType() . 
"_member_administration");
 
  471        if (!$post_participants) {
 
  472            $post_participants = (array) 
$_POST[
'participants'];
 
  476        $participants = array_intersect((array) $post_participants, (array) $real_participants);
 
  478        if (!count($participants)) {
 
  480            $this->ctrl->redirect($this, 
'participants');
 
  482        $table = $this->initEditParticipantTableGUI($participants);
 
  483        $this->tpl->setContent(
$table->getHTML());
 
  498        $rbacsystem = 
$DIC[
'rbacsystem'];
 
  499        $rbacreview = 
$DIC[
'rbacreview'];
 
  501        $ilAccess = 
$DIC[
'ilAccess'];
 
  503        if (!array_key_exists(
'participants', 
$_POST) || !count(
$_POST[
'participants'])) {
 
  505            $this->ctrl->redirect($this, 
'participants');
 
  508        $notifications = 
$_POST[
'notification'] ? 
$_POST[
'notification'] : array();
 
  509        $passed = 
$_POST[
'passed'] ? 
$_POST[
'passed'] : array();
 
  510        $blocked = 
$_POST[
'blocked'] ? 
$_POST[
'blocked'] : array();
 
  511        $contact = 
$_POST[
'contact'] ? 
$_POST[
'contact'] : array();
 
  514        $hasEditPermissionAccess =
 
  516                $ilAccess->checkAccess(
'edit_permission', 
'', $this->
getParentObject()->getRefId()) or
 
  522        $assignableLocalRoles = array();
 
  524        foreach ($this->getLocalTypeRole(
false) as 
$title => $role_id) {
 
  525            $assignableLocalRoles[$role_id] = 
$title;
 
  529        foreach (
$_POST[
'participants'] as $usr_id) {
 
  530            $memberIsAdmin = $rbacreview->isAssigned($usr_id, $adminRoleId);
 
  535            if (!$hasEditPermissionAccess && $memberIsAdmin &&
 
  536                !in_array($adminRoleId, 
$_POST[
'roles'][$usr_id])
 
  538                $_POST[
'roles'][$usr_id][] = $adminRoleId;
 
  542            foreach ((array) 
$_POST[
'roles'][$usr_id] as $role_id) {
 
  543                if (!array_key_exists($role_id, $assignableLocalRoles)) {
 
  545                    $this->ctrl->redirect($this, 
'participants');
 
  547                if (!$hasEditPermissionAccess &&
 
  548                    $role_id == $adminRoleId &&
 
  551                    $this->ctrl->redirect($this, 
'participants');
 
  558            if (!isset(
$_POST[
'roles'][$admin_id])) {
 
  562            if (in_array($adminRoleId, 
$_POST[
'roles'][$admin_id])) {
 
  568        if (!$has_admin && is_array(
$_POST[
'roles'])) {
 
  569            foreach (
$_POST[
'roles'] as $usrId => $roleIdsToBeAssigned) {
 
  570                if (in_array($adminRoleId, $roleIdsToBeAssigned)) {
 
  578            ilUtil::sendFailure($this->lng->txt($this->getParentObject()->getType() . 
'_min_one_admin'), 
true);
 
  579            $this->ctrl->redirect($this, 
'participants');
 
  582        foreach (
$_POST[
'participants'] as $usr_id) {
 
  597                $this->
getMembersObject()->updatePassed($usr_id, in_array($usr_id, $passed), 
true);
 
  607                in_array($usr_id, $contact)
 
  614            $this->updateLPFromStatus($usr_id, in_array($usr_id, $passed));
 
  616        ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"), 
true);
 
  617        $this->ctrl->redirect($this, 
"participants");
 
  627        $ilAccess = 
$DIC[
'ilAccess'];
 
  630        $participants = (array) 
$_POST[
'participants'];
 
  632        if (!count($participants)) {
 
  634            $this->ctrl->redirect($this, 
'participants');
 
  639            ilUtil::sendFailure($this->lng->txt($this->getParentObject()->getType() . 
'_at_least_one_admin'), 
true);
 
  640            $this->ctrl->redirect($this, 
'participants');
 
  645            $this->lng->loadLanguageModule(
'rbac');
 
  652            !$ilAccess->checkAccess(
 
  655                $this->getParentObject()->getRefId()
 
  657            !$this->getMembersObject()->isAdmin(
$GLOBALS[
'DIC'][
'ilUser']->getId())
 
  659            foreach ($participants as $usr_id) {
 
  662                    $this->ctrl->redirect($this, 
'participants');
 
  668        include_once(
'./Services/Utilities/classes/class.ilConfirmationGUI.php');
 
  670        $confirm->setFormAction($this->ctrl->getFormAction($this, 
'confirmDeleteParticipants'));
 
  671        $confirm->setHeaderText($this->lng->txt($this->getParentObject()->getType() . 
'_header_delete_members'));
 
  672        $confirm->setConfirm($this->lng->txt(
'confirm'), 
'deleteParticipants');
 
  673        $confirm->setCancel($this->lng->txt(
'cancel'), 
'participants');
 
  675        foreach ($participants as $usr_id) {
 
  681                $name[
'lastname'] . 
', ' . 
$name[
'firstname'] . 
' [' . 
$name[
'login'] . 
']',
 
  686        $this->tpl->setContent($confirm->getHTML());
 
  693        $rbacreview = 
$DIC[
'rbacreview'];
 
  694        $rbacsystem = 
$DIC[
'rbacsystem'];
 
  695        $ilAccess = 
$DIC[
'ilAccess'];
 
  698        $participants = (array) 
$_POST[
'participants'];
 
  700        if (!is_array($participants) or !count($participants)) {
 
  702            $this->ctrl->redirect($this, 
'participants');
 
  708            !$ilAccess->checkAccess(
'edit_permission', 
'', $this->getParentObject()->getRefId()) &&
 
  709            !$this->getMembersObject()->isAdmin(
$GLOBALS[
'DIC'][
'ilUser']->getId())
 
  711            foreach ($participants as $part) {
 
  714                    $this->ctrl->redirect($this, 
'participants');
 
  721            $this->ctrl->redirect($this, 
'participants');
 
  723            foreach ((array) 
$_POST[
"participants"] as $usr_id) {
 
  731                        include_once 
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
 
  741        ilUtil::sendSuccess($this->lng->txt($this->getParentObject()->getType() . 
"_members_deleted"), 
true);
 
  742        $this->ctrl->redirect($this, 
"participants");
 
  753        if (
$_POST[
'participants']) {
 
  754            $participants = (array) 
$_POST[
'participants'];
 
  755        } elseif (
$_GET[
'member_id']) {
 
  756            $participants = array(
$_GET[
'member_id']);
 
  757        } elseif (
$_POST[
'subscribers']) {
 
  758            $participants = (array) 
$_POST[
'subscribers'];
 
  759        } elseif (
$_POST[
'waiting']) {
 
  760            $participants = (array) 
$_POST[
'waiting'];
 
  763        if (!count($participants)) {
 
  765            $this->ctrl->redirect($this, 
'participants');
 
  768        foreach ($participants as $usr_id) {
 
  796        $context_options = [];
 
  797        return $context_options;
 
  809        $this->activateSubTab($this->
getParentObject()->getType() . 
"_members_map");
 
  810        include_once(
"./Services/Maps/classes/class.ilMapUtil.php");
 
  816        $map->setMapId(
"course_map")
 
  822            ->setEnableTypeControl(
true)
 
  823            ->setEnableNavigationControl(
true)
 
  824            ->setEnableCentralMarker(
true);
 
  826        include_once 
'./Services/Membership/classes/class.ilParticipants.php';
 
  828        foreach ((array) $members as $user_id) {
 
  829            $map->addUserMarker($user_id);
 
  833        $tpl->setLeftContent(
$map->getUserListHTML());
 
  844        $ilToolbar = 
$DIC[
'ilToolbar'];
 
  859        $ilToolbar = 
$DIC[
'ilToolbar'];
 
  862            include_once 
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
 
  867                    'auto_complete_name' => $this->lng->txt(
'user'),
 
  868                    'user_type' => $this->getParentGUI()->getLocalRoles(),
 
  869                    'user_type_default' => $this->getDefaultRole(),
 
  870                    'submit_name' => $this->lng->txt(
'add')
 
  875            $ilToolbar->addSeparator();
 
  878            $ilToolbar->addButton(
 
  879                $this->lng->txt($this->getParentObject()->getType() . 
"_search_users"),
 
  880                $this->ctrl->getLinkTargetByClass(
 
  881                    'ilRepositorySearchGUI',
 
  887            $ilToolbar->addSeparator();
 
  891        $ilToolbar->addButton(
 
  892            $this->lng->txt($this->getParentObject()->getType() . 
"_print_list"),
 
  893            $this->ctrl->getLinkTarget($this, 
'printMembers')
 
  915                $this->ctrl->setParameter($this, 
"back_cmd", $a_back_cmd);
 
  918                $this->lng->txt($this->getParentObject()->getType() . 
'_print_list'),
 
  919                $this->ctrl->getLinkTarget($this, 
'printForMembersOutput')
 
  936        $rbacsystem = 
$DIC[
'rbacsystem'];
 
  937        $ilAccess = 
$DIC[
'ilAccess'];
 
  938        include_once 
'Services/Mail/classes/class.ilMail.php';
 
  944                $ilAccess->checkAccess(
'manage_members', 
"", $this->getParentObject()->getRefId()) &&
 
  945                $rbacsystem->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId())
 
  953                $this->ctrl->setParameter($this, 
"back_cmd", $a_back_cmd);
 
  957                $this->lng->txt(
"mail_members"),
 
  958                $this->ctrl->getLinkTargetByClass(
'ilMailMemberSearchGUI', 
'')
 
  983        if ($has_manage_members_permission) {
 
  984            return 'participants';
 
  988            return 'jump2UsersGallery';
 
  990        return 'mailMembersBtn';
 
 1002        $ilAccess = 
$DIC[
'ilAccess'];
 
 1004        include_once 
'./Services/Mail/classes/class.ilMail.php';
 
 1015        if ($has_manage_members_permission) {
 
 1019                $this->ctrl->getLinkTarget($this, 
'')
 
 1022            (
bool) $this->
getParentObject()->getShowMembers() && $a_is_participant
 
 1027                $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilusersgallerygui'), 
'view')
 
 1031            $GLOBALS[
'DIC'][
'rbacsystem']->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId()) &&
 
 1037                $this->ctrl->getLinkTarget($this, 
"mailMembersBtn")
 
 1048        return $this->lng->txt(
'members');
 
 1058        $ilAccess = 
$DIC[
'ilAccess'];
 
 1061            $tabs->addSubTabTarget(
 
 1063                $this->ctrl->getLinkTarget($this, 
'participants'),
 
 1070                $tabs->addSubTabTarget(
 
 1071                    "crs_members_groups",
 
 1072                    $this->ctrl->getLinkTargetByClass(
"ilCourseParticipantsGroupsGUI", 
"show"),
 
 1074                    "ilCourseParticipantsGroupsGUI" 
 1079            $children = (array) 
$tree->getSubTree(
$tree->getNodeData($this->getParentObject()->getRefId()), 
false, 
'sess');
 
 1080            if (count($children)) {
 
 1081                $tabs->addSubTabTarget(
 
 1083                    $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilsessionoverviewgui'), 
'listSessions'),
 
 1085                    'ilsessionoverviewgui' 
 1089            $tabs->addSubTabTarget(
 
 1091                $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilUsersGalleryGUI')),
 
 1097            $tabs->addSubTabTarget(
 
 1099                $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilUsersGalleryGUI')),
 
 1105        include_once 
'./Services/Maps/classes/class.ilMapUtil.php';
 
 1107            $tabs->addSubTabTarget(
 
 1109                $this->ctrl->getLinkTarget($this, 
'membersMap'),
 
 1115        include_once 
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
 
 1117            $tabs->addSubTabTarget(
 
 1119                $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilmemberexportgui'), 
'show'),
 
 1152        if (!count($filtered_subscribers)) {
 
 1156        $subscriber->readSubscriberData(
 
 1157            $filtered_subscribers
 
 1167        $subscriber = new \ilSubscriberTableGUI($this, $this->
getParentObject(), 
true, 
true);
 
 1168        $subscriber->setTitle($this->lng->txt(
'group_new_registrations'));
 
 1178        if (!is_array(
$_POST[
"subscribers"])) {
 
 1180            $this->ctrl->redirect($this, 
'participants');
 
 1183        include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
 
 1187        $c_gui->setFormAction($this->ctrl->getFormAction($this, 
"assignSubscribers"));
 
 1188        $c_gui->setHeaderText($this->lng->txt(
"info_assign_sure"));
 
 1189        $c_gui->setCancel($this->lng->txt(
"cancel"), 
"participants");
 
 1190        $c_gui->setConfirm($this->lng->txt(
"confirm"), 
"assignSubscribers");
 
 1192        foreach (
$_POST[
"subscribers"] as $subscribers) {
 
 1198                $name[
'lastname'] . 
', ' . 
$name[
'firstname'] . 
' [' . 
$name[
'login'] . 
']',
 
 1203        $this->tpl->setContent($c_gui->getHTML());
 
 1213        if (!is_array(
$_POST[
"subscribers"])) {
 
 1215            $this->ctrl->redirect($this, 
'participants');
 
 1218        $this->lng->loadLanguageModule(
'mmbr');
 
 1220        include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
 
 1224        $c_gui->setFormAction($this->ctrl->getFormAction($this, 
"refuseSubscribers"));
 
 1225        $c_gui->setHeaderText($this->lng->txt(
"info_refuse_sure"));
 
 1226        $c_gui->setCancel($this->lng->txt(
"cancel"), 
"participants");
 
 1227        $c_gui->setConfirm($this->lng->txt(
"confirm"), 
"refuseSubscribers");
 
 1229        foreach (
$_POST[
"subscribers"] as $subscribers) {
 
 1235                $name[
'lastname'] . 
', ' . 
$name[
'firstname'] . 
' [' . 
$name[
'login'] . 
']',
 
 1240        $this->tpl->setContent($c_gui->getHTML());
 
 1253        $rbacsystem = 
$DIC[
'rbacsystem'];
 
 1255        if (!
$_POST[
'subscribers']) {
 
 1257            $this->ctrl->redirect($this, 
'participants');
 
 1262            $this->ctrl->redirect($this, 
'participants');
 
 1264            foreach (
$_POST[
'subscribers'] as $usr_id) {
 
 1269                    include_once 
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
 
 1278                    $noti->setRecipients(array($usr_id));
 
 1291        ilUtil::sendSuccess($this->lng->txt(
"crs_subscribers_deleted"), 
true);
 
 1292        $this->ctrl->redirect($this, 
'participants');
 
 1307        if (!is_array(
$_POST[
"subscribers"])) {
 
 1309            $this->ctrl->redirect($this, 
'participants');
 
 1314            $this->ctrl->redirect($this, 
'participants');
 
 1316            foreach (
$_POST[
"subscribers"] as $usr_id) {
 
 1322                    include_once 
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
 
 1330                    include_once 
'./Modules/Session/classes/class.ilSessionMembershipMailNotification.php';
 
 1333                    $noti->setRecipients(array($usr_id));
 
 1339        ilUtil::sendSuccess($this->lng->txt(
"crs_subscribers_assigned"), 
true);
 
 1340        $this->ctrl->redirect($this, 
'participants');
 
 1349        $wait = $this->initWaitingList();
 
 1352        if (!count($wait_users)) {
 
 1356        include_once 
'./Services/Membership/classes/class.ilWaitingListTableGUI.php';
 
 1358        $waiting_table->setUserIds(
 
 1361        $waiting_table->readUserData();
 
 1362        $waiting_table->setTitle($this->lng->txt(
'crs_waiting_list'));
 
 1364        return $waiting_table;
 
 1373        if (!is_array(
$_POST[
"waiting"])) {
 
 1375            $this->ctrl->redirect($this, 
'participants');
 
 1379        include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
 
 1383        $c_gui->setFormAction($this->ctrl->getFormAction($this, 
"assignFromWaitingList"));
 
 1384        $c_gui->setHeaderText($this->lng->txt(
"info_assign_sure"));
 
 1385        $c_gui->setCancel($this->lng->txt(
"cancel"), 
"participants");
 
 1386        $c_gui->setConfirm($this->lng->txt(
"confirm"), 
"assignFromWaitingList");
 
 1388        foreach (
$_POST[
"waiting"] as $waiting) {
 
 1394                $name[
'lastname'] . 
', ' . 
$name[
'firstname'] . 
' [' . 
$name[
'login'] . 
']',
 
 1399        $this->tpl->setContent($c_gui->getHTML());
 
 1410        if (!array_key_exists(
'waiting', 
$_POST) || !count(
$_POST[
"waiting"])) {
 
 1412            $this->ctrl->redirect($this, 
'participants');
 
 1415        $waiting_list = $this->initWaitingList();
 
 1418        foreach (
$_POST[
"waiting"] as $user_id) {
 
 1432                include_once 
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
 
 1444                $noti->setRecipients(array($user_id));
 
 1449            $waiting_list->removeFromList($user_id);
 
 1454            ilUtil::sendSuccess($this->lng->txt(
"crs_users_added"), 
true);
 
 1455            $this->ctrl->redirect($this, 
'participants');
 
 1458            $this->ctrl->redirect($this, 
'participants');
 
 1468        if (!is_array(
$_POST[
"waiting"])) {
 
 1470            $this->ctrl->redirect($this, 
'participants');
 
 1473        $this->lng->loadLanguageModule(
'mmbr');
 
 1475        include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
 
 1479        $c_gui->setFormAction($this->ctrl->getFormAction($this, 
"refuseFromList"));
 
 1480        $c_gui->setHeaderText($this->lng->txt(
"info_refuse_sure"));
 
 1481        $c_gui->setCancel($this->lng->txt(
"cancel"), 
"participants");
 
 1482        $c_gui->setConfirm($this->lng->txt(
"confirm"), 
"refuseFromList");
 
 1484        foreach (
$_POST[
"waiting"] as $waiting) {
 
 1490                $name[
'lastname'] . 
', ' . 
$name[
'firstname'] . 
' [' . 
$name[
'login'] . 
']',
 
 1495        $this->tpl->setContent($c_gui->getHTML());
 
 1507        if (!array_key_exists(
'waiting', 
$_POST) || !count(
$_POST[
'waiting'])) {
 
 1509            $this->ctrl->redirect($this, 
'participants');
 
 1512        $waiting_list = $this->initWaitingList();
 
 1514        foreach (
$_POST[
"waiting"] as $user_id) {
 
 1515            $waiting_list->removeFromList($user_id);
 
 1521                include_once 
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
 
 1529                include_once 
'./Modules/Session/classes/class.ilSessionMembershipMailNotification.php';
 
 1532                $noti->setRecipients(array($user_id));
 
 1537        ilUtil::sendSuccess($this->lng->txt(
'crs_users_removed_from_list'), 
true);
 
 1538        $this->ctrl->redirect($this, 
'participants');
 
 1549            $this->ctrl->redirect($this, 
'participants');
 
 1551        include_once 
'./Services/User/classes/class.ilUserClipboard.php';
 
 1556        $this->lng->loadLanguageModule(
'user');
 
 1557        ilUtil::sendSuccess($this->lng->txt(
'clipboard_user_added'), 
true);
 
 1558        $this->ctrl->redirect($this, 
'participants');
 
 1572    protected function activateSubTab($a_sub_tab)
 
 1578        $tabs->activateSubTab($a_sub_tab);
 
 1592        $ilTabs = 
$DIC[
'ilTabs'];
 
 1596        $ilTabs->clearTargets();
 
 1598        $ilTabs->setBackTarget(
 
 1599            $this->lng->txt(
'back'),
 
 1600            $this->ctrl->getLinkTarget($this, 
'participants')
 
 1603        $list = $this->initAttendanceList();
 
 1604        $form = 
$list->initForm(
'printMembersOutput');
 
 1605        $this->tpl->setContent(
$form->getHTML());
 
 1613        $list = $this->initAttendanceList();
 
 1614        $list->initFromForm();
 
 1615        $list->setCallback(array($this, 
'getAttendanceListUserData'));
 
 1616        $this->member_data = $this->getPrintMemberData(
 
 1622        $list->getNonMemberUserData($this->member_data);
 
 1624        $list->getFullscreenHTML();
 
 1633        $list = $this->initAttendanceList();
 
 1634        $list->setTitle($this->lng->txt(
'obj_' . $this->getParentObject()->getType()) . 
': ' . $this->getParentObject()->getTitle());
 
 1636        $form = 
$list->initForm(
'printForMembersOutput');
 
 1637        $list->initFromForm();
 
 1638        $list->setCallback(array($this, 
'getAttendanceListUserData'));
 
 1639        $this->member_data = $this->getPrintMemberData($this->
getMembersObject()->getParticipants());
 
 1640        $list->getNonMemberUserData($this->member_data);
 
 1642        $list->getFullscreenHTML();
 
 1651        $this->ctrl->redirectByClass(
'ilUsersGalleryGUI');
 
 1660    protected function initAttendanceList($a_for_members = 
false)
 
 1667        $waiting_list = $this->initWaitingList();
 
 1670            $member_id = 
$DIC->repositoryTree()->checkForParentType(
 
 1675                $member_id = 
$DIC->repositoryTree()->checkForParentType(
 
 1681                $DIC->logger()->sess()->warning(
'Cannot find parent course or group for ref_id: ' . $this->
getParentObject()->getRefId());
 
 1693            include_once 
'Services/Membership/classes/class.ilAttendanceList.php';
 
 1704            $this->lng->txt($this->getParentObject()->getType() . 
'_members_print_title'),
 
 1705            $this->lng->txt(
'obj_' . $this->getParentObject()->getType()) . 
': ' . $this->getParentObject()->getTitle()
 
 1708        include_once 
'./Services/Tracking/classes/class.ilObjUserTracking.php';
 
 1711        if ($show_tracking) {
 
 1712            include_once(
'./Services/Object/classes/class.ilObjectLP.php');
 
 1714            $show_tracking = $olp->isActive();
 
 1716        if ($show_tracking) {
 
 1717            $list->addPreset(
'progress', $this->lng->txt(
'learning_progress'), 
true);
 
 1720        include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
 1725        if ($privacy->enabledAccessTimesByType($this->getParentObject()->getType())) {
 
 1726            $list->addPreset(
'access', $this->lng->txt(
'last_access'), 
true);
 
 1731                $list->addPreset(
'status', $this->lng->txt(
'crs_status'), 
true);
 
 1732                $list->addPreset(
'passed', $this->lng->txt(
'crs_passed'), 
true);
 
 1736                $list->addPreset(
'mark', $this->lng->txt(
'trac_mark'), 
true);
 
 1737                $list->addPreset(
'comment', $this->lng->txt(
'trac_comment'), 
true);
 
 1739                    $list->addPreset(
'registered', $this->lng->txt(
'event_tbl_registered'), 
true);
 
 1741                $list->addPreset(
'participated', $this->lng->txt(
'event_tbl_participated'), 
true);
 
 1742                $list->addBlank($this->lng->txt(
'sess_signature'));
 
 1744                $list->addUserFilter(
'registered', $this->lng->txt(
'event_list_registered_only'));
 
An exception for terminatinating execution or to throw for unit testing.
Base class for attendance lists.
Confirmation screen class.
Class ilCourseParticipantsGroupsGUI.
GUI class for membership features.
const TYPE_ACCEPTED_SUBSCRIPTION_MEMBER
const TYPE_REFUSED_SUBSCRIPTION_MEMBER
const TYPE_DISMISS_MEMBER
GUI class for learning sequence membership features.
const TYPE_DISMISS_MEMBER
const TYPE_REFUSED_SUBSCRIPTION_MEMBER
Class ilMailMemberSearchGUI.
static isActivated()
Checks whether Map feature is activated.
static getMapGUI()
Get an instance of the GUI class.
Base class for member tab content.
getParentGUI()
Get parent gui.
assignFromWaitingList()
Assign from waiting list @global type $rbacsystem.
printMembersOutput()
print members output
participantsApplyFilter()
Apply filter for participant table.
checkPermissionBool($a_permission, $a_cmd='', $a_type='', $a_ref_id=0)
Check permission.
checkPermission($a_permission, $a_cmd="")
Check permission If not granted redirect to parent gui.
parseWaitingListTable()
Parse table of subscription request.
getDefaultCommand()
Get default command.
assignSubscribers()
Do assignment of subscription request @global type $rbacsystem @global type $ilErr.
filterUserIdsByRbacOrPositionOfCurrentUser($a_user_ids)
Filter user ids by access.
printForMembersOutput()
print members output
participantsResetFilter()
reset participants filter
sendMailToSelectedUsers()
Send mail to selected users.
confirmAssignFromWaitingList()
Assign from waiting list (confirmatoin)
updateParticipants()
update members
showParticipantsToolbar()
Show participants toolbar.
getMemberTabName()
Get member tab name.
participants()
Show participant table, subscriber table, wating list table;.
parseSubscriberTable()
Parse table of subscription request.
showMemberExportToolbarButton(ilToolbarGUI $toolbar, $a_back_cmd=null, $a_separator=false)
Show member export button.
getMailContextOptions()
Get mail context options.
editMember()
Edit one participant.
refuseSubscribers()
Refuse subscribers @global type $rbacsystem.
__construct(ilObjectGUI $repository_gui, ilObject $repository_obj)
Constructor.
editParticipants($post_participants=array())
Edit participants.
getLocalRoles()
Get parent roles.
confirmRefuseSubscribers()
Refuse subscriber confirmation.
addMemberTab(ilTabsGUI $tabs, $a_is_participant=false)
add member tab
checkRbacOrPositionAccessBool($a_rbac_perm, $a_pos_perm, $a_ref_id=0)
Check if rbac or position access is granted.
mailMembersBtn()
Mail to members view @global type $ilToolbar.
confirmDeleteParticipants()
Show confirmation screen for participants deletion.
showMailToMemberToolbarButton(ilToolbarGUI $toolbar, $a_back_cmd=null, $a_separator=false)
Show mail to member toolbar button.
confirmAssignSubscribers()
Show subscription confirmation.
getParentObject()
Get parent object.
getMembersObject()
Get member object.
printMembers()
Print members.
checkRbacOrPermissionAccess($a_rbac_perm, $a_pos_perm)
check rbac or position access
addToClipboard()
Add selected users to user clipboard.
readMemberData(array $usr_ids, array $columns)
Required for member table guis.
setSubTabs(ilTabsGUI $tabs)
Set sub tabs.
refuseFromList()
refuse from waiting list
confirmRefuseFromList()
Refuse from waiting list (confirmation)
canAddOrSearchUsers()
Check if current user is allowed to add / search users.
static _enabledLearningProgress()
check wether learing progress is enabled or not
static _lookupLogin($a_user_id)
lookup login
static _lookupName($a_user_id)
lookup user name
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
Class ilObjectGUI Basic methods of all Output classes.
static getInstance($a_obj_id)
Class ilObject Basic functions for all objects.
static getInstanceByObjId($a_obj_id)
Get instance by obj type.
static _isParticipant($a_ref_id, $a_usr_id)
Static function to check if a user is a participant of the container object.
static getInstance($a_ref_id)
Get instance by ref_id.
static _getInstance()
Get instance of ilPrivacySettings.
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
GUI class for membership features.
const TYPE_REFUSED_SUBSCRIPTION_MEMBER
const TYPE_ACCEPTED_SUBSCRIPTION_MEMBER
GUI class for course/group subscriptions.
static getInstance($a_usr_id)
Get singelton instance.
@ilCtrl_Calls ilUsersGalleryGUI: ilPublicUserProfileGUI @ilCtrl_isCalledBy ilUsersGalleryGUI: ilCours...
Class ilUsersGalleryParticipants.
static redirect($a_script)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
GUI class for course/group waiting list.
if(!file_exists(getcwd() . '/ilias.ini.php'))
registration confirmation script for ilias
if(!empty($this->data['faventry'])) $tabs
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
if(empty($password)) $table
if(isset($_POST['submit'])) $form
if(isset($_REQUEST['delete'])) $list