/**
  * Init filter
  */
 function initFilter()
 {
     global $lng, $rbacreview, $ilUser;
     include_once "./Services/User/classes/class.ilAccountCode.php";
     // code
     include_once "./Services/Form/classes/class.ilTextInputGUI.php";
     $ti = new ilTextInputGUI($lng->txt("user_account_code"), "query");
     $ti->setMaxLength(ilAccountCode::CODE_LENGTH);
     $ti->setSize(20);
     $ti->setSubmitFormOnEnter(true);
     $this->addFilterItem($ti);
     $ti->readFromSession();
     $this->filter["code"] = $ti->getValue();
     // generated
     include_once "./Services/Form/classes/class.ilSelectInputGUI.php";
     $options = array("" => $lng->txt("user_account_code_generated_all"));
     foreach ((array) ilAccountCode::getGenerationDates() as $date) {
         $options[$date] = ilDatePresentation::formatDate(new ilDateTime($date, IL_CAL_UNIX));
     }
     $si = new ilSelectInputGUI($lng->txt("user_account_code_generated"), "generated");
     $si->setOptions($options);
     $this->addFilterItem($si);
     $si->readFromSession();
     $this->filter["generated"] = $si->getValue();
 }
示例#2
0
 protected function processCode()
 {
     global $lng, $ilAuth, $ilCtrl;
     $uname = $_POST["uname"];
     $form = $this->initCodeForm($uname);
     if ($uname && $form->checkInput()) {
         $code = $form->getInput("code");
         include_once "Services/User/classes/class.ilAccountCode.php";
         if (ilAccountCode::isUnusedCode($code)) {
             $valid_until = ilAccountCode::getCodeValidUntil($code);
             if (!($user_id = ilObjUser::_lookupId($uname))) {
                 $this->showLogin();
                 return false;
             }
             $invalid_code = false;
             $user = new ilObjUser($user_id);
             if ($valid_until === "0") {
                 $user->setTimeLimitUnlimited(true);
             } else {
                 if (is_numeric($valid_until)) {
                     $valid_until = strtotime("+" . $valid_until . "days");
                 } else {
                     $valid_until = explode("-", $valid_until);
                     $valid_until = mktime(23, 59, 59, $valid_until[1], $valid_until[2], $valid_until[0]);
                     if ($valid_until < time()) {
                         $invalid_code = true;
                     }
                 }
                 if (!$invalid_code) {
                     $user->setTimeLimitUnlimited(false);
                     $user->setTimeLimitUntil($valid_until);
                 }
             }
             if (!$invalid_code) {
                 $user->setActive(true);
                 ilAccountCode::useCode($code);
                 // apply registration code role assignments
                 ilAccountCode::applyRoleAssignments($user, $code);
                 // apply registration code time limits
                 ilAccountCode::applyAccessLimits($user, $code);
                 $user->update();
                 $ilCtrl->setParameter($this, "cu", 1);
                 $ilCtrl->redirect($this, "showLogin");
             }
         }
         $lng->loadLanguageModule("user");
         $field = $form->getItemByPostVar("code");
         $field->setAlert($lng->txt("user_account_code_not_valid"));
     }
     $form->setValuesByPost();
     $this->showCodeForm($uname, $form);
 }
 function exportCodes()
 {
     global $ilAccess, $ilErr, $lng;
     if (!$ilAccess->checkAccess('read', '', $this->ref_id)) {
         $ilErr->raiseError($lng->txt("msg_no_perm_read"), $ilErr->MESSAGE);
     }
     include_once "./Services/User/classes/class.ilAccountCodesTableGUI.php";
     $utab = new ilAccountCodesTableGUI($this, "listCodes");
     include_once './Services/User/classes/class.ilAccountCode.php';
     $codes = ilAccountCode::getCodesForExport($utab->filter["code"], $utab->filter["valid_until"], $utab->filter["generated"]);
     if (sizeof($codes)) {
         // #13497
         ilUtil::deliverData(implode("\r\n", $codes), "ilias_account_codes_" . date("d-m-Y") . ".txt", "text/plain");
     } else {
         ilUtil::sendFailure($lng->txt("account_export_codes_no_data"));
         $this->listCodes();
     }
 }