58        $this->repository_object = $repository_obj;
 
   60        $this->lng = 
$GLOBALS[
'DIC']->language();
 
   61        $this->lng->loadLanguageModule(
'crs');
 
   63        $this->lng->loadLanguageModule(
'trac');
 
   64        $this->tpl = 
$GLOBALS[
'DIC']->ui()->mainTemplate();
 
   65        $this->ctrl = 
$GLOBALS[
'DIC']->ctrl();
 
   66        $this->logger = 
$DIC->logger()->mmbr();
 
   67        $this->access = 
$GLOBALS[
'DIC']->access();
 
  120            return $this->participants;
 
  145        return $this->access->checkAccess($a_permission, $a_cmd, $a_ref_id);
 
  159        return $this->access->checkRbacOrPositionPermissionAccess($a_rbac_perm, $a_pos_perm, $a_ref_id);
 
  216    public function executeCommand()
 
  225        $ilAccess = 
$DIC[
'ilAccess'];
 
  226        $rbacsystem = 
$DIC[
'rbacsystem'];
 
  227        $ilTabs = 
$DIC[
'ilTabs'];
 
  229        $cmd = $this->ctrl->getCmd(
'participants');
 
  230        $next_class = $this->ctrl->getNextClass();
 
  232        switch ($next_class) {
 
  233            case 'ilrepositorysearchgui':
 
  237                include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
 
  238                include_once 
'./Services/Membership/classes/class.ilParticipants.php';
 
  240                $rep_search->addUserAccessFilterCallable([$this,
'filterUserIdsByRbacOrPositionOfCurrentUser']);
 
  244                    $participants->isAdmin(
$GLOBALS[
'DIC'][
'ilUser']->getId()) ||
 
  245                    $ilAccess->checkAccess(
'manage_members', 
'', $this->getParentObject()->getRefId())
 
  247                    $rep_search->setCallback(
 
  255                    $rep_search->setCallback(
 
  264                $this->ctrl->setReturn($this, 
'participants');
 
  265                $ret = $this->ctrl->forwardCommand($rep_search);
 
  269            case 'ilmailmembersearchgui':
 
  270                $ilTabs->clearTargets();
 
  271                $ilTabs->setBackTarget(
 
  272                    $this->lng->txt(
'btn_back'),
 
  273                    $this->ctrl->getLinkTarget($this, $this->getDefaultCommand())
 
  279                    $ilAccess->checkAccess(
'manage_members', 
"", $this->getParentObject()->getRefId())
 
  281                    !$rbacsystem->checkAccess(
 
  283                        $mail->getMailObjectReferenceId()
 
  285                    $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"), 
$ilErr->MESSAGE);
 
  293                $mail_search->setObjParticipants(
 
  296                $this->ctrl->forwardCommand($mail_search);
 
  299            case 'ilusersgallerygui':
 
  302                $tabs = 
$GLOBALS[
'DIC']->tabs()->setSubTabActive(
 
  315                    $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'), 
$ilErr->MESSAGE);
 
  321                require_once 
'Services/User/Gallery/classes/class.ilUsersGalleryGUI.php';
 
  322                require_once 
'Services/User/Gallery/classes/class.ilUsersGalleryParticipants.php';
 
  327                $this->ctrl->forwardCommand($gallery_gui);
 
  330            case 'ilcourseparticipantsgroupsgui':
 
  336                include_once 
'./Modules/Course/classes/class.ilCourseParticipantsGroupsGUI.php';
 
  338                if ($cmd == 
"show" || $cmd = 
"") {
 
  341                $this->ctrl->forwardCommand($cmg_gui);
 
  344            case 'ilsessionoverviewgui':
 
  349                include_once 
'./Services/Membership/classes/class.ilParticipants.php';
 
  352                include_once(
'./Modules/Session/classes/class.ilSessionOverviewGUI.php');
 
  354                $this->ctrl->forwardCommand($overview);
 
  357            case 'ilmemberexportgui':
 
  362                include_once(
'./Services/Membership/classes/Export/class.ilMemberExportGUI.php');
 
  364                $this->ctrl->forwardCommand($export);
 
  367            case 'ilobjectcustomuserfieldsgui':
 
  371                $this->activateSubTab($this->
getParentObject()->getType() . 
"_member_administration");
 
  372                $this->ctrl->setReturn($this, 
'participants');
 
  374                include_once 
'./Services/Membership/classes/class.ilObjectCustomUserFieldsGUI.php';
 
  376                $this->ctrl->forwardCommand($cdf_gui);
 
  385                    $cmd == 
"mailMembersBtn" ||
 
  386                    $cmd == 
'membersMap' ||
 
  387                    $cmd == 
'printForMembersOutput' ||
 
  388                    $cmd == 
'jump2UsersGallery' 
  405        $this->initParticipantTemplate();
 
  407        $this->activateSubTab($this->
getParentObject()->getType() . 
"_member_administration");
 
  412            $this->tpl->setVariable(
'TABLE_WAIT', $waiting->getHTML());
 
  418            $this->tpl->setVariable(
'TABLE_SUB', $subscriber->getHTML());
 
  422        $table = $this->initParticipantTableGUI();
 
  423        $table->setTitle($this->lng->txt($this->getParentObject()->getType() . 
'_mem_tbl_header'));
 
  424        $table->setFormAction($this->ctrl->getFormAction($this));
 
  428        $table->setFilterCommand(
'participantsApplyFilter');
 
  429        $table->setResetCommand(
'participantsResetFilter');
 
  431        $this->tpl->setVariable(
'MEMBERS', $table->getHTML());
 
  439        $table = $this->initParticipantTableGUI();
 
  440        $table->resetOffset();
 
  441        $table->writeFilterToSession();
 
  451        $table = $this->initParticipantTableGUI();
 
  452        $table->resetOffset();
 
  453        $table->resetFilter();
 
  464        $this->activateSubTab($this->
getParentObject()->getType() . 
"_member_administration");
 
  474        if (!$post_participants) {
 
  475            $post_participants = (array) 
$_POST[
'participants'];
 
  479        $participants = array_intersect((array) $post_participants, (array) $real_participants);
 
  481        if (!count($participants)) {
 
  483            $this->ctrl->redirect($this, 
'participants');
 
  485        $table = $this->initEditParticipantTableGUI($participants);
 
  486        $this->tpl->setContent($table->getHTML());
 
  501        $rbacsystem = 
$DIC[
'rbacsystem'];
 
  502        $rbacreview = 
$DIC[
'rbacreview'];
 
  504        $ilAccess = 
$DIC[
'ilAccess'];
 
  506        if (!array_key_exists(
'participants', 
$_POST) || !count(
$_POST[
'participants'])) {
 
  508            $this->ctrl->redirect($this, 
'participants');
 
  511        $notifications = 
$_POST[
'notification'] ? 
$_POST[
'notification'] : array();
 
  512        $passed = 
$_POST[
'passed'] ? 
$_POST[
'passed'] : array();
 
  513        $blocked = 
$_POST[
'blocked'] ? 
$_POST[
'blocked'] : array();
 
  514        $contact = 
$_POST[
'contact'] ? 
$_POST[
'contact'] : array();
 
  517        $hasEditPermissionAccess =
 
  519                $ilAccess->checkAccess(
'edit_permission', 
'', $this->
getParentObject()->getRefId()) or
 
  525        $assignableLocalRoles = array();
 
  527        foreach ($this->getLocalTypeRole(
false) as $title => $role_id) {
 
  528            $assignableLocalRoles[$role_id] = $title;
 
  532        foreach (
$_POST[
'participants'] as $usr_id) {
 
  533            $memberIsAdmin = $rbacreview->isAssigned($usr_id, $adminRoleId);
 
  538            if (!$hasEditPermissionAccess && $memberIsAdmin &&
 
  539                !in_array($adminRoleId, 
$_POST[
'roles'][$usr_id])
 
  541                $_POST[
'roles'][$usr_id][] = $adminRoleId;
 
  545            foreach ((array) 
$_POST[
'roles'][$usr_id] as $role_id) {
 
  546                if (!array_key_exists($role_id, $assignableLocalRoles)) {
 
  548                    $this->ctrl->redirect($this, 
'participants');
 
  550                if (!$hasEditPermissionAccess &&
 
  551                    $role_id == $adminRoleId &&
 
  554                    $this->ctrl->redirect($this, 
'participants');
 
  561            if (!isset(
$_POST[
'roles'][$admin_id])) {
 
  565            if (in_array($adminRoleId, 
$_POST[
'roles'][$admin_id])) {
 
  571        if (!$has_admin && is_array(
$_POST[
'roles'])) {
 
  572            foreach (
$_POST[
'roles'] as $usrId => $roleIdsToBeAssigned) {
 
  573                if (in_array($adminRoleId, $roleIdsToBeAssigned)) {
 
  581            ilUtil::sendFailure($this->lng->txt($this->getParentObject()->getType() . 
'_min_one_admin'), 
true);
 
  582            $this->ctrl->redirect($this, 
'participants');
 
  585        foreach (
$_POST[
'participants'] as $usr_id) {
 
  600                $this->
getMembersObject()->updatePassed($usr_id, in_array($usr_id, $passed), 
true);
 
  609                in_array($usr_id, $contact)
 
  616            $this->updateLPFromStatus($usr_id, in_array($usr_id, $passed));
 
  618        ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"), 
true);
 
  619        $this->ctrl->redirect($this, 
"participants");
 
  629        $ilAccess = 
$DIC[
'ilAccess'];
 
  632        $participants = (array) 
$_POST[
'participants'];
 
  634        if (!count($participants)) {
 
  636            $this->ctrl->redirect($this, 
'participants');
 
  641            ilUtil::sendFailure($this->lng->txt($this->getParentObject()->getType() . 
'_at_least_one_admin'), 
true);
 
  642            $this->ctrl->redirect($this, 
'participants');
 
  647            $this->lng->loadLanguageModule(
'rbac');
 
  654            !$ilAccess->checkAccess(
 
  657                $this->getParentObject()->getRefId()
 
  659            !$this->getMembersObject()->isAdmin(
$GLOBALS[
'DIC'][
'ilUser']->getId())
 
  661            foreach ($participants as $usr_id) {
 
  664                    $this->ctrl->redirect($this, 
'participants');
 
  670            $this->repository_object->getRefId(),
 
  673            return $this->showDeleteParticipantsConfirmationWithLinkedCourses($participants);
 
  676        include_once(
'./Services/Utilities/classes/class.ilConfirmationGUI.php');
 
  678        $confirm->setFormAction($this->ctrl->getFormAction($this, 
'confirmDeleteParticipants'));
 
  679        $confirm->setHeaderText($this->lng->txt($this->getParentObject()->getType() . 
'_header_delete_members'));
 
  680        $confirm->setConfirm($this->lng->txt(
'confirm'), 
'deleteParticipants');
 
  681        $confirm->setCancel($this->lng->txt(
'cancel'), 
'participants');
 
  683        foreach ($participants as $usr_id) {
 
  689                $name[
'lastname'] . 
', ' . 
$name[
'firstname'] . 
' [' . 
$name[
'login'] . 
']',
 
  694        $this->tpl->setContent($confirm->getHTML());
 
  701        $rbacreview = 
$DIC[
'rbacreview'];
 
  702        $rbacsystem = 
$DIC[
'rbacsystem'];
 
  703        $ilAccess = 
$DIC[
'ilAccess'];
 
  706        $participants = (array) 
$_POST[
'participants'];
 
  708        if (!is_array($participants) or !count($participants)) {
 
  710            $this->ctrl->redirect($this, 
'participants');
 
  716            !$ilAccess->checkAccess(
'edit_permission', 
'', $this->getParentObject()->getRefId()) &&
 
  717            !$this->getMembersObject()->isAdmin(
$GLOBALS[
'DIC'][
'ilUser']->getId())
 
  719            foreach ($participants as $part) {
 
  722                    $this->ctrl->redirect($this, 
'participants');
 
  729            $this->ctrl->redirect($this, 
'participants');
 
  731            foreach ((array) 
$_POST[
"participants"] as $usr_id) {
 
  739                        include_once 
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
 
  749        ilUtil::sendSuccess($this->lng->txt($this->getParentObject()->getType() . 
"_members_deleted"), 
true);
 
  750        $this->ctrl->redirect($this, 
"participants");
 
  761        if (
$_POST[
'participants']) {
 
  762            $participants = (array) 
$_POST[
'participants'];
 
  763        } elseif (
$_POST[
'subscribers']) {
 
  764            $participants = (array) 
$_POST[
'subscribers'];
 
  765        } elseif (
$_POST[
'waiting']) {
 
  766            $participants = (array) 
$_POST[
'waiting'];
 
  767        } elseif (
$_GET[
'member_id']) {
 
  768            $participants = array(
$_GET[
'member_id']);
 
  771        if (!count($participants)) {
 
  773            $this->ctrl->redirect($this, 
'participants');
 
  776        foreach ($participants as $usr_id) {
 
  815        $this->activateSubTab($this->
getParentObject()->getType() . 
"_members_map");
 
  816        include_once(
"./Services/Maps/classes/class.ilMapUtil.php");
 
  822        $map->setMapId(
"course_map")
 
  828            ->setEnableTypeControl(
true)
 
  829            ->setEnableNavigationControl(
true)
 
  830            ->setEnableCentralMarker(
true);
 
  832        include_once 
'./Services/Membership/classes/class.ilParticipants.php';
 
  834        foreach ((array) $members as $user_id) {
 
  835            $map->addUserMarker($user_id);
 
  838        $tpl->setContent($map->getHTML());
 
  839        $tpl->setLeftContent($map->getUserListHTML());
 
  850        $ilToolbar = 
$DIC[
'ilToolbar'];
 
  865        $ilToolbar = 
$DIC[
'ilToolbar'];
 
  868            include_once 
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
 
  873                    'auto_complete_name' => $this->lng->txt(
'user'),
 
  874                    'user_type' => $this->getParentGUI()->getLocalRoles(),
 
  875                    'user_type_default' => $this->getDefaultRole(),
 
  876                    'submit_name' => $this->lng->txt(
'add')
 
  881            $ilToolbar->addSeparator();
 
  884            $ilToolbar->addButton(
 
  885                $this->lng->txt($this->getParentObject()->getType() . 
"_search_users"),
 
  886                $this->ctrl->getLinkTargetByClass(
 
  887                    'ilRepositorySearchGUI',
 
  893            $ilToolbar->addSeparator();
 
  897        $ilToolbar->addButton(
 
  898            $this->lng->txt($this->getParentObject()->getType() . 
"_print_list"),
 
  899            $this->ctrl->getLinkTarget($this, 
'printMembers')
 
  921                $this->ctrl->setParameter($this, 
"back_cmd", $a_back_cmd);
 
  924                $this->lng->txt($this->getParentObject()->getType() . 
'_print_list'),
 
  925                $this->ctrl->getLinkTarget($this, 
'printForMembersOutput')
 
  942        $rbacsystem = 
$DIC[
'rbacsystem'];
 
  943        $ilAccess = 
$DIC[
'ilAccess'];
 
  944        include_once 
'Services/Mail/classes/class.ilMail.php';
 
  950                $ilAccess->checkAccess(
'manage_members', 
"", $this->getParentObject()->getRefId()) &&
 
  951                $rbacsystem->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId())
 
  959                $this->ctrl->setParameter($this, 
"back_cmd", $a_back_cmd);
 
  963                $this->lng->txt(
"mail_members"),
 
  964                $this->ctrl->getLinkTargetByClass(
'ilMailMemberSearchGUI', 
'')
 
  989        if ($has_manage_members_permission) {
 
  990            return 'participants';
 
  994            return 'jump2UsersGallery';
 
  996        return 'mailMembersBtn';
 
 1008        $ilAccess = 
$DIC[
'ilAccess'];
 
 1010        include_once 
'./Services/Mail/classes/class.ilMail.php';
 
 1021        if ($has_manage_members_permission) {
 
 1025                $this->ctrl->getLinkTarget($this, 
'')
 
 1028            (
bool) $this->
getParentObject()->getShowMembers() && $a_is_participant
 
 1033                $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilusersgallerygui'), 
'view')
 
 1037            $GLOBALS[
'DIC'][
'rbacsystem']->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId()) &&
 
 1043                $this->ctrl->getLinkTarget($this, 
"mailMembersBtn")
 
 1054        return $this->lng->txt(
'members');
 
 1064        $ilAccess = 
$DIC[
'ilAccess'];
 
 1069                $this->ctrl->getLinkTarget($this, 
'participants'),
 
 1077                    "crs_members_groups",
 
 1078                    $this->ctrl->getLinkTargetByClass(
"ilCourseParticipantsGroupsGUI", 
"show"),
 
 1080                    "ilCourseParticipantsGroupsGUI" 
 1084            $tree = 
$DIC->repositoryTree();
 
 1085            $children = (array) $tree->getSubTree($tree->getNodeData($this->getParentObject()->getRefId()), 
false, 
'sess');
 
 1086            if (count($children)) {
 
 1089                    $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilsessionoverviewgui'), 
'listSessions'),
 
 1091                    'ilsessionoverviewgui' 
 1097                $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilUsersGalleryGUI')),
 
 1105                $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilUsersGalleryGUI')),
 
 1111        include_once 
'./Services/Maps/classes/class.ilMapUtil.php';
 
 1115                $this->ctrl->getLinkTarget($this, 
'membersMap'),
 
 1121        include_once 
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
 
 1125                $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilmemberexportgui'), 
'show'),
 
 1158        if (!count($filtered_subscribers)) {
 
 1162        $subscriber->readSubscriberData(
 
 1163            $filtered_subscribers
 
 1173        $subscriber = new \ilSubscriberTableGUI($this, $this->
getParentObject(), 
true, 
true);
 
 1174        $subscriber->setTitle($this->lng->txt(
'group_new_registrations'));
 
 1184        if (!is_array(
$_POST[
"subscribers"])) {
 
 1186            $this->ctrl->redirect($this, 
'participants');
 
 1189        include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
 
 1193        $c_gui->setFormAction($this->ctrl->getFormAction($this, 
"assignSubscribers"));
 
 1194        $c_gui->setHeaderText($this->lng->txt(
"info_assign_sure"));
 
 1195        $c_gui->setCancel($this->lng->txt(
"cancel"), 
"participants");
 
 1196        $c_gui->setConfirm($this->lng->txt(
"confirm"), 
"assignSubscribers");
 
 1198        foreach (
$_POST[
"subscribers"] as $subscribers) {
 
 1204                $name[
'lastname'] . 
', ' . 
$name[
'firstname'] . 
' [' . 
$name[
'login'] . 
']',
 
 1209        $this->tpl->setContent($c_gui->getHTML());
 
 1219        if (!is_array(
$_POST[
"subscribers"])) {
 
 1221            $this->ctrl->redirect($this, 
'participants');
 
 1224        $this->lng->loadLanguageModule(
'mmbr');
 
 1226        include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
 
 1230        $c_gui->setFormAction($this->ctrl->getFormAction($this, 
"refuseSubscribers"));
 
 1231        $c_gui->setHeaderText($this->lng->txt(
"info_refuse_sure"));
 
 1232        $c_gui->setCancel($this->lng->txt(
"cancel"), 
"participants");
 
 1233        $c_gui->setConfirm($this->lng->txt(
"confirm"), 
"refuseSubscribers");
 
 1235        foreach (
$_POST[
"subscribers"] as $subscribers) {
 
 1241                $name[
'lastname'] . 
', ' . 
$name[
'firstname'] . 
' [' . 
$name[
'login'] . 
']',
 
 1246        $this->tpl->setContent($c_gui->getHTML());
 
 1259        $rbacsystem = 
$DIC[
'rbacsystem'];
 
 1261        if (!
$_POST[
'subscribers']) {
 
 1263            $this->ctrl->redirect($this, 
'participants');
 
 1268            $this->ctrl->redirect($this, 
'participants');
 
 1270            foreach (
$_POST[
'subscribers'] as $usr_id) {
 
 1275                    include_once 
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
 
 1284                    $noti->setRecipients(array($usr_id));
 
 1297        ilUtil::sendSuccess($this->lng->txt(
"crs_subscribers_deleted"), 
true);
 
 1298        $this->ctrl->redirect($this, 
'participants');
 
 1313        if (!is_array(
$_POST[
"subscribers"])) {
 
 1315            $this->ctrl->redirect($this, 
'participants');
 
 1320            $this->ctrl->redirect($this, 
'participants');
 
 1322            foreach (
$_POST[
"subscribers"] as $usr_id) {
 
 1328                    include_once 
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
 
 1336                    include_once 
'./Modules/Session/classes/class.ilSessionMembershipMailNotification.php';
 
 1339                    $noti->setRecipients(array($usr_id));
 
 1345        ilUtil::sendSuccess($this->lng->txt(
"crs_subscribers_assigned"), 
true);
 
 1346        $this->ctrl->redirect($this, 
'participants');
 
 1355        $wait = $this->initWaitingList();
 
 1358        if (!count($wait_users)) {
 
 1362        include_once 
'./Services/Membership/classes/class.ilWaitingListTableGUI.php';
 
 1364        $waiting_table->setUserIds(
 
 1367        $waiting_table->readUserData();
 
 1368        $waiting_table->setTitle($this->lng->txt(
'crs_waiting_list'));
 
 1370        return $waiting_table;
 
 1379        if (!is_array(
$_POST[
"waiting"])) {
 
 1381            $this->ctrl->redirect($this, 
'participants');
 
 1385        include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
 
 1389        $c_gui->setFormAction($this->ctrl->getFormAction($this, 
"assignFromWaitingList"));
 
 1390        $c_gui->setHeaderText($this->lng->txt(
"info_assign_sure"));
 
 1391        $c_gui->setCancel($this->lng->txt(
"cancel"), 
"participants");
 
 1392        $c_gui->setConfirm($this->lng->txt(
"confirm"), 
"assignFromWaitingList");
 
 1394        foreach (
$_POST[
"waiting"] as $waiting) {
 
 1400                $name[
'lastname'] . 
', ' . 
$name[
'firstname'] . 
' [' . 
$name[
'login'] . 
']',
 
 1405        $this->tpl->setContent($c_gui->getHTML());
 
 1416        if (!array_key_exists(
'waiting', 
$_POST) || !count(
$_POST[
"waiting"])) {
 
 1418            $this->ctrl->redirect($this, 
'participants');
 
 1421        $waiting_list = $this->initWaitingList();
 
 1424        foreach (
$_POST[
"waiting"] as $user_id) {
 
 1438                include_once 
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
 
 1450                $noti->setRecipients(array($user_id));
 
 1455            $waiting_list->removeFromList($user_id);
 
 1460            ilUtil::sendSuccess($this->lng->txt(
"crs_users_added"), 
true);
 
 1461            $this->ctrl->redirect($this, 
'participants');
 
 1464            $this->ctrl->redirect($this, 
'participants');
 
 1474        if (!is_array(
$_POST[
"waiting"])) {
 
 1476            $this->ctrl->redirect($this, 
'participants');
 
 1479        $this->lng->loadLanguageModule(
'mmbr');
 
 1481        include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
 
 1485        $c_gui->setFormAction($this->ctrl->getFormAction($this, 
"refuseFromList"));
 
 1486        $c_gui->setHeaderText($this->lng->txt(
"info_refuse_sure"));
 
 1487        $c_gui->setCancel($this->lng->txt(
"cancel"), 
"participants");
 
 1488        $c_gui->setConfirm($this->lng->txt(
"confirm"), 
"refuseFromList");
 
 1490        foreach (
$_POST[
"waiting"] as $waiting) {
 
 1496                $name[
'lastname'] . 
', ' . 
$name[
'firstname'] . 
' [' . 
$name[
'login'] . 
']',
 
 1501        $this->tpl->setContent($c_gui->getHTML());
 
 1513        if (!array_key_exists(
'waiting', 
$_POST) || !count(
$_POST[
'waiting'])) {
 
 1515            $this->ctrl->redirect($this, 
'participants');
 
 1518        $waiting_list = $this->initWaitingList();
 
 1520        foreach (
$_POST[
"waiting"] as $user_id) {
 
 1521            $waiting_list->removeFromList($user_id);
 
 1527                include_once 
'./Modules/Group/classes/class.ilGroupMembershipMailNotification.php';
 
 1535                include_once 
'./Modules/Session/classes/class.ilSessionMembershipMailNotification.php';
 
 1538                $noti->setRecipients(array($user_id));
 
 1543        ilUtil::sendSuccess($this->lng->txt(
'crs_users_removed_from_list'), 
true);
 
 1544        $this->ctrl->redirect($this, 
'participants');
 
 1554        if (isset(
$_POST[
'participants'])) {
 
 1555            $users = (array) 
$_POST[
'participants'];
 
 1556        } elseif (isset(
$_POST[
'subscribers'])) {
 
 1557            $users = (array) 
$_POST[
'subscribers'];
 
 1558        } elseif (isset(
$_POST[
'waiting'])) {
 
 1559            $users = (array) 
$_POST[
'waiting'];
 
 1562        if (!count($users)) {
 
 1564            $this->ctrl->redirect($this, 
'participants');
 
 1566        include_once 
'./Services/User/classes/class.ilUserClipboard.php';
 
 1571        $this->lng->loadLanguageModule(
'user');
 
 1572        ilUtil::sendSuccess($this->lng->txt(
'clipboard_user_added'), 
true);
 
 1573        $this->ctrl->redirect($this, 
'participants');
 
 1587    protected function activateSubTab($a_sub_tab)
 
 1593        $tabs->activateSubTab($a_sub_tab);
 
 1607        $ilTabs = 
$DIC[
'ilTabs'];
 
 1611        $ilTabs->clearTargets();
 
 1613        $ilTabs->setBackTarget(
 
 1614            $this->lng->txt(
'back'),
 
 1615            $this->ctrl->getLinkTarget($this, 
'participants')
 
 1618        $list = $this->initAttendanceList();
 
 1619        $form = $list->initForm(
'printMembersOutput');
 
 1620        $this->tpl->setContent($form->getHTML());
 
 1630        $tabs = 
$DIC->tabs();
 
 1631        $tabs->clearTargets();
 
 1632        $tabs->setBackTarget(
 
 1633            $this->lng->txt(
'back'),
 
 1634            $this->ctrl->getLinkTarget($this, 
'participants')
 
 1637        $list = $this->initAttendanceList();
 
 1638        $list->initFromForm();
 
 1639        $list->setCallback(array($this, 
'getAttendanceListUserData'));
 
 1640        $this->member_data = $this->getPrintMemberData(
 
 1646        $list->getNonMemberUserData($this->member_data);
 
 1647        $list->getFullscreenHTML();
 
 1657        $tabs = 
$DIC->tabs();
 
 1658        $tabs->clearTargets();
 
 1659        $tabs->setBackTarget(
 
 1660            $this->lng->txt(
'back'),
 
 1661            $this->ctrl->getLinkTarget($this, 
'jump2UsersGallery')
 
 1664        $list = $this->initAttendanceList();
 
 1665        $list->setTitle($this->lng->txt(
'obj_' . $this->getParentObject()->getType()) . 
': ' . $this->getParentObject()->getTitle());
 
 1667        $form = $list->initForm(
'printForMembersOutput');
 
 1668        $list->initFromForm();
 
 1669        $list->setCallback(array($this, 
'getAttendanceListUserData'));
 
 1670        $this->member_data = $this->getPrintMemberData($this->
getMembersObject()->getParticipants());
 
 1671        $list->getNonMemberUserData($this->member_data);
 
 1673        $list->getFullscreenHTML();
 
 1681        $this->ctrl->redirectByClass(
'ilUsersGalleryGUI');
 
 1690    protected function initAttendanceList($a_for_members = 
false)
 
 1697        $waiting_list = $this->initWaitingList();
 
 1700            $member_id = 
$DIC->repositoryTree()->checkForParentType(
 
 1705                $member_id = 
$DIC->repositoryTree()->checkForParentType(
 
 1711                $DIC->logger()->sess()->warning(
'Cannot find parent course or group for ref_id: ' . $this->
getParentObject()->getRefId());
 
 1723            include_once 
'Services/Membership/classes/class.ilAttendanceList.php';
 
 1734            $this->lng->txt($this->getParentObject()->getType() . 
'_members_print_title'),
 
 1735            $this->lng->txt(
'obj_' . $this->getParentObject()->getType()) . 
': ' . $this->getParentObject()->getTitle()
 
 1738        include_once 
'./Services/Tracking/classes/class.ilObjUserTracking.php';
 
 1741        if ($show_tracking) {
 
 1742            include_once(
'./Services/Object/classes/class.ilObjectLP.php');
 
 1744            $show_tracking = $olp->isActive();
 
 1746        if ($show_tracking) {
 
 1747            $list->addPreset(
'progress', $this->lng->txt(
'learning_progress'), 
true);
 
 1750        include_once(
'./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
 
 1755        if ($privacy->enabledAccessTimesByType($this->getParentObject()->getType())) {
 
 1756            $list->addPreset(
'access', $this->lng->txt(
'last_access'), 
true);
 
 1761                $list->addPreset(
'status', $this->lng->txt(
'crs_status'), 
true);
 
 1762                $list->addPreset(
'passed', $this->lng->txt(
'crs_passed'), 
true);
 
 1766                $list->addPreset(
'mark', $this->lng->txt(
'trac_mark'), 
true);
 
 1767                $list->addPreset(
'comment', $this->lng->txt(
'trac_comment'), 
true);
 
 1769                    $list->addPreset(
'registered', $this->lng->txt(
'event_tbl_registered'), 
true);
 
 1771                $list->addPreset(
'participated', $this->lng->txt(
'event_tbl_participated'), 
true);
 
 1772                $list->addBlank($this->lng->txt(
'sess_signature'));
 
 1774                $list->addUserFilter(
'registered', $this->lng->txt(
'event_list_registered_only'));
 
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
An exception for terminatinating execution or to throw for unit testing.
Base class for attendance lists.
Confirmation screen class.
Class ilCourseParticipantsGroupsGUI.
static isReferenceMemberUpdateConfirmationRequired(int $course_ref_id, array $participants)
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.
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.
addSubTabTarget( $a_text, $a_link, $a_cmd="", $a_cmdClass="", $a_frame="", $a_activate=false, $a_dir_text=false)
DEPRECATED.
addTab($a_id, $a_text, $a_link, $a_frame="")
Add a Tab.
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