Esempio n. 1
0
 public static function get_instance($user_name, $course_group_id)
 {
     $course_group = steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $course_group_id);
     $course_group_name = $course_group->get_groupname();
     $elearning_course_id = elearning_mediathek::get_elearning_unit_id($course_group_id);
     $id = $user_name . "." . $elearning_course_id . "@" . $course_group_name;
     if (!isset(self::$instances[$id])) {
         $instance = new self($user_name, $course_group_id);
         self::$instances[$id] = $instance;
     }
     return self::$instances[$id];
 }
Esempio n. 2
0
 public function execute(Request $request, Response $response)
 {
     $this->commandHelper = new CommandHelper();
     // Check values
     $firstname = $request->getParameter("firstname");
     $lastname = $request->getParameter("lastname");
     $email = $request->getParameter("email");
     $branchID = $request->getParameter("branchID");
     $customerID = $request->getParameter("customerID");
     $courseID = $request->getParameter("courseID");
     if ($courseID != 0) {
         $elearning_course_id = elearning_mediathek::get_elearning_unit_id($courseID);
         $customer_name = $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->getObjectName($customerID);
         $numberOfLicenses = licensemanager::get_instance()->get_registered_license_seats(array(new elearning_context($elearning_course_id), new unternehmens_context($customer_name)));
         $remainingLicenses = licensemanager::get_instance()->get_available_license_seats(array(new elearning_context($elearning_course_id), new unternehmens_context($customer_name)));
     }
     if ($firstname == "") {
         throw new UsermanagementException("Keinen Vornamen angegeben", "Bitte gebe einen Vornamen ein.");
     } else {
         if ($lastname == "") {
             throw new UsermanagementException("Keinen Nachnamen angegeben", "Bitte gebe einen Nachnamen ein.");
         } else {
             if ($courseID != 0 && $remainingLicenses == 0) {
                 throw new UsermanagementException("Keine Lizenz für diesen Kurs verfügbar.", "Bitte installieren sie weiter Lizenzen oder wählen sie einen anderen Kurs aus.");
             } else {
                 //			// A list with all user
                 //			$userlist = $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->getUserList();
                 //
                 //			// The initial password for employee
                 //			$password = $this->commandHelper->createRandomPassword(8);
                 //
                 //			// A login candidate
                 //			$loginCandidate = strtolower($firstname[0] . str_replace(" ", "", $lastname));
                 //
                 //			// Add a suffix, if login already exists
                 //			if (array_search($loginCandidate, $userlist) != false) {
                 //				for ($i=1; $i<=count($userlist)+1; $i++) {
                 //					if (array_search($loginCandidate . $i, $userlist) == false) {
                 //						$loginCandidate .= $i;
                 //						break;
                 //					}
                 //				}
                 //			}
                 // create new user
                 $loginCandidate = $this->commandHelper->createValidLogin($firstname, $lastname);
                 $password = $this->commandHelper->createRandomPassword(8);
                 $activationCode = $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->createEmployee($loginCandidate, $password, $email, $firstname, $lastname, $branchID, $customerID);
                 $xmlContent = "<users>\n";
                 $xmlContent .= "\t<user firstname=\"" . $firstname . "\" lastname=\"" . $lastname . "\" login=\"" . $loginCandidate . "\" password=\"" . $password . "\" state=\"ok\" />\n";
                 $xmlContent .= "</users>";
                 $xmlFileName = time() . ".xml";
                 $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->saveCustomerCreationLogFile($_SESSION["CURRENT_CUSTOMER_ID"], $xmlFileName, $xmlContent);
                 $text = "";
                 if ($courseID != 0 && $remainingLicenses > 0) {
                     $elearning_course_id = elearning_mediathek::get_elearning_unit_id($courseID);
                     $customer_name = $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->getObjectName($customerID);
                     $userID = $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->login2ID($loginCandidate);
                     licensemanager::get_instance()->register_user($userID, array(new elearning_context($elearning_course_id), new unternehmens_context($customer_name)));
                     $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->addParticipant($userID, $courseID);
                     $text = " und zum Kurs hinzugefügt";
                 }
                 return "Neuer Benutzer wurde erfolgreich angelegt{$text}.<br>Login: "******" und Passwort: " . $password;
             }
         }
     }
 }
Esempio n. 3
0
 public function getCourseRowOverview($courseID)
 {
     $elearning_course_id = elearning_mediathek::get_elearning_unit_id($courseID);
     $customer_id = $this->dataAccess->getObjectName($_SESSION["CURRENT_CUSTOMER_ID"]);
     $courseData = $this->dataAccess->getCourseData($courseID);
     //$numberOfLicenses 	= (int) $this->dataAccess->getCountCourseLicenses($courseID);
     $numberOfLicenses = licensemanager::get_instance()->get_registered_license_seats(array(new elearning_context($elearning_course_id), new unternehmens_context($customer_id)));
     $participants = $this->dataAccess->getCourseParticipants($courseID);
     //$remainingLicenses  = $numberOfLicenses - count($participants);
     $remainingLicenses = licensemanager::get_instance()->get_available_license_seats(array(new elearning_context($elearning_course_id), new unternehmens_context($customer_id)));
     //$html = "<tr style=\"cursor:pointer;\" onclick=\"submitForm(this)\" courseID=\"" . $courseID . "\">\n";
     $html = "<tr courseID=\"" . $courseID . "\">\n";
     // The "name/info" column
     $html .= "\t<td><b>»" . $courseData["name"] . "« (" . $courseData["course_id"] . ")</b><br>" . $courseData["shortDesc"] . "</td>\n";
     // The "remaining licenses" column
     $html .= "\t<td align=\"center\">" . $remainingLicenses . " / " . $numberOfLicenses . "</td>\n";
     $html .= "</tr>\n";
     return $html;
 }
Esempio n. 4
0
 public function execute(Request $request, Response $response)
 {
     $this->commandHelper = new CommandHelper();
     $customerID = $request->getParameter("customerID");
     // The id of the course, the new created user will be added to
     $courseID = $request->getParameter("courseID");
     if ($request->getParameter("courseID") != "0") {
         $elearning_course_id = elearning_mediathek::get_elearning_unit_id($courseID);
         $customer_name = $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->getObjectName($customerID);
         $numberOfLicenses = licensemanager::get_instance()->get_registered_license_seats(array(new elearning_context($elearning_course_id), new unternehmens_context($customer_name)));
         $remainingLicenses = licensemanager::get_instance()->get_available_license_seats(array(new elearning_context($elearning_course_id), new unternehmens_context($customer_name)));
         $remainingLicensesBak = $remainingLicenses;
     }
     $xlsFilePath = PATH_TEMP . $_FILES["csvFile"]["name"];
     move_uploaded_file($_FILES["csvFile"]["tmp_name"], $xlsFilePath);
     // Get wrapper object for xls file
     $PHPExcelWrapper = PHPExcel_IOFactory::load($xlsFilePath);
     // Get the first spreadsheet of xls file
     $spreadsheet = $PHPExcelWrapper->getSheet();
     // Iterates over rows
     $rowIterator = $spreadsheet->getRowIterator();
     // Counts the number of created users
     $newUserCounter = 0;
     $xmlContent = "<users>\n";
     while ($rowIterator->valid()) {
         // Get current row
         $row = $rowIterator->current();
         // Iterates over cells
         $cellIterator = $row->getCellIterator();
         // Data for new user
         $firstname = "";
         $lastname = "";
         $email = "";
         $branchID = "";
         $password = $this->commandHelper->createRandomPassword(8);
         while ($cellIterator->valid()) {
             // Get current cell
             $cell = $cellIterator->current();
             $colIndex = $cell->getColumn();
             $rowIndex = $cell->getRow();
             $value = $cell->getValue();
             switch ($colIndex) {
                 case "A":
                     $firstname = $this->fixEncoding($value);
                     break;
                 case "B":
                     $lastname = $this->fixEncoding($value);
                     break;
                 case "C":
                     $email = $this->fixEncoding($value);
                     break;
                 case "D":
                     $branchID = $this->fixEncoding($value);
                     break;
             }
             $cellIterator->next();
         }
         if ($firstname != "" || $lastname != "") {
             // create new user
             $login = $this->commandHelper->createValidLogin($firstname, $lastname);
             try {
                 $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->createEmployee($login, $password, $email, $firstname, $lastname, "", $customerID);
                 $creationState = "ok";
                 $newUserCounter++;
             } catch (Exception $exception) {
                 $creationState = "fail";
             }
             $xmlContent .= "\t<user firstname=\"" . $firstname . "\" lastname=\"" . $lastname . "\" login=\"" . $login . "\" password=\"" . $password . "\" state=\"" . $creationState . "\" />\n";
             // Add new user to course, if a course was selected
             if ($creationState == "ok" && $request->getParameter("courseID") != "0") {
                 if ($remainingLicenses > 0) {
                     $elearning_course_id = elearning_mediathek::get_elearning_unit_id($courseID);
                     $customer_name = $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->getObjectName($customerID);
                     $userID = $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->login2ID($login);
                     licensemanager::get_instance()->register_user($userID, array(new elearning_context($elearning_course_id), new unternehmens_context($customer_name)));
                     $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->addParticipant($userID, $courseID);
                     $remainingLicenses--;
                 }
             }
         }
         $rowIterator->next();
     }
     $xmlContent .= "</users>";
     $xmlFileName = time() . ".xml";
     $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->saveCustomerCreationLogFile($_SESSION["CURRENT_CUSTOMER_ID"], $xmlFileName, $xmlContent);
     // Throw exception, if to less licenses were available
     if ($request->getParameter("courseID") != "0" && $remainingLicensesBak < $newUserCounter) {
         throw new UsermanagementException("Aufgrund zu weniger freier Lizenzen konnten nicht alle angelegten Benutzer dem Kurs hinzugef&uuml;gt werden.", "Erweitern sie ihr Lizenz-Kontingent.");
     }
     return "Excel-Liste wurde importiert. Siehe unter 'Verlauf' f&uuml;r Einzelheiten der angelegten Benutzer.";
 }