/** * Delete user * * This function is used to delete a user from the system. * The user cannot be deleted if he is the last system administrator. * <br/>Example: * <code> * $user = EfrontUserFactory :: factory('jdoe'); * $user -> delete(); * </code> * * @return boolean True if the user was deleted successfully * @since 3.5.0 * @access public */ public function delete() { // Added by Masoud Sadjadi on July 6, 2014 to support vLab in eFront $vLab_username = $this->user['login']; $this->logout(); ///MODULES2 - Module user delete events - Before anything else // Get all modules (NOT only the ones that have to do with the user type) $modules = eF_loadAllModules(); // Trigger all necessary events. If the function has not been re-defined in the derived module class, nothing will happen foreach ($modules as $module) { $module->onDeleteUser($this->user['login']); } try { $directory = new EfrontDirectory($this->user['directory']); $directory->delete(); } catch (EfrontFileException $e) { $message = _USERDIRECTORYCOULDNOTBEDELETED . ': ' . $e->getMessage() . ' (' . $e->getCode() . ')'; //This does nothing at the moment } foreach ($this->aspects as $aspect) { $aspect->delete(); } calendar::deleteUserCalendarEvents($this->user['login']); eF_updateTableData("f_forums", array("users_LOGIN" => ''), "users_LOGIN='******'login'] . "'"); eF_updateTableData("f_messages", array("users_LOGIN" => ''), "users_LOGIN='******'login'] . "'"); eF_updateTableData("f_topics", array("users_LOGIN" => ''), "users_LOGIN='******'login'] . "'"); eF_updateTableData("f_poll", array("users_LOGIN" => ''), "users_LOGIN='******'login'] . "'"); eF_updateTableData("news", array("users_LOGIN" => ''), "users_LOGIN='******'login'] . "'"); eF_updateTableData("files", array("users_LOGIN" => ''), "users_LOGIN='******'login'] . "'"); eF_deleteTableData("f_folders", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("f_personal_messages", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("bookmarks", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("comments", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("f_users_to_polls", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("logs", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("rules", "users_LOGIN='******'login'] . "'"); //eF_deleteTableData("users_online", "users_LOGIN='******'login']."'"); eF_deleteTableData("user_times", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("users_to_surveys", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("users_to_done_surveys", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("survey_questions_done", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("lessons_timeline_topics_data", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("events", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("profile_comments", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("users_to_content", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("users_to_lessons", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("users_to_courses", "users_LOGIN='******'login'] . "'"); if (G_VERSIONTYPE != 'community') { #cpp#ifndef COMMUNITY eF_deleteTableData("payments", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("facebook_connect", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("users_to_skillgap_tests", "users_LOGIN='******'login'] . "'"); } #cpp#endif //This line was in EfrontProfessor and EfrontStudent without an obvious reason. Admins may also be members of groups eF_deleteTableData("users_to_groups", "users_LOGIN='******'login'] . "'"); //Changing order of these lines because of #4318, where system removal notification was set (user triggering the event) eF_deleteTableData("notifications", "recipient='" . $this->user['login'] . "'"); EfrontEvent::triggerEvent(array("type" => EfrontEvent::SYSTEM_REMOVAL, "users_LOGIN" => $this->user['login'], "users_name" => $this->user['name'], "users_surname" => $this->user['surname'])); eF_deleteTableData("users", "login='******'login'] . "'"); // Added by Masoud Sadjadi on July 6, 2014 to support vLab in eFront // Beging addition // $vLab_username = $this -> user['login']; $vLab_username_urlEncoded = rawurlencode($vLab_username); $vLab_courseid = 123; // Kaseya 7.0 Fundamentals Workshop $vLab_courseid_urlEncoded = rawurlencode($vLab_courseid); // $vLab_moodleURL = "http://localhost/moodle19"; $vLab_moodleURL = "http://ita-portal.cis.fiu.edu"; // auto delete $str = $vLab_moodleURL . "/mod/deva/embedded/auto-delete.php?username={$vLab_username_urlEncoded}&courseid={$vLab_courseid_urlEncoded}"; // echo $str . '<br>'; $payload = file_get_contents($str); // echo $payload; return true; }
/** * Delete user * * This function is used to delete a user from the system. * The user cannot be deleted if he is the last system administrator. * <br/>Example: * <code> * $user = EfrontUserFactory :: factory('jdoe'); * $user -> delete(); * </code> * * @return boolean True if the user was deleted successfully * @since 3.5.0 * @access public */ public function delete() { $this->logout(); ///MODULES2 - Module user delete events - Before anything else // Get all modules (NOT only the ones that have to do with the user type) $modules = eF_loadAllModules(); // Trigger all necessary events. If the function has not been re-defined in the derived module class, nothing will happen foreach ($modules as $module) { $module->onDeleteUser($this->user['login']); } try { $directory = new EfrontDirectory($this->user['directory']); $directory->delete(); } catch (EfrontFileException $e) { $message = _USERDIRECTORYCOULDNOTBEDELETED . ': ' . $e->getMessage() . ' (' . $e->getCode() . ')'; //This does nothing at the moment } foreach ($this->aspects as $aspect) { $aspect->delete(); } calendar::deleteUserCalendarEvents($this->user['login']); eF_updateTableData("f_forums", array("users_LOGIN" => ''), "users_LOGIN='******'login'] . "'"); eF_updateTableData("f_messages", array("users_LOGIN" => ''), "users_LOGIN='******'login'] . "'"); eF_updateTableData("f_topics", array("users_LOGIN" => ''), "users_LOGIN='******'login'] . "'"); eF_updateTableData("f_poll", array("users_LOGIN" => ''), "users_LOGIN='******'login'] . "'"); eF_updateTableData("news", array("users_LOGIN" => ''), "users_LOGIN='******'login'] . "'"); eF_updateTableData("files", array("users_LOGIN" => ''), "users_LOGIN='******'login'] . "'"); eF_deleteTableData("f_folders", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("f_personal_messages", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("bookmarks", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("comments", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("f_users_to_polls", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("logs", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("rules", "users_LOGIN='******'login'] . "'"); //eF_deleteTableData("users_online", "users_LOGIN='******'login']."'"); eF_deleteTableData("user_times", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("users_to_surveys", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("users_to_done_surveys", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("survey_questions_done", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("lessons_timeline_topics_data", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("events", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("profile_comments", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("users_to_content", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("users_to_lessons", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("users_to_courses", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("scorm_data", "users_LOGIN='******'login'] . "'"); if (G_VERSIONTYPE != 'community') { #cpp#ifndef COMMUNITY eF_deleteTableData("payments", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("facebook_connect", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("users_to_skillgap_tests", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("scorm_data_2004", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("scorm_sequencing_activity_progress_information", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("scorm_sequencing_activity_state_information", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("scorm_sequencing_comments_from_learner", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("scorm_sequencing_global_state_information", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("scorm_sequencing_interactions", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("scorm_sequencing_learner_preferences", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("scorm_sequencing_maps_info", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("scorm_sequencing_objective_progress_information", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("scorm_sequencing_shared_data", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("scorm_sequencing_shared_data_not_g", "users_LOGIN='******'login'] . "'"); eF_deleteTableData("scorm_sequencing_objective_progress_information_all", "users_LOGIN='******'login'] . "'"); } #cpp#endif //This line was in EfrontProfessor and EfrontStudent without an obvious reason. Admins may also be members of groups eF_deleteTableData("users_to_groups", "users_LOGIN='******'login'] . "'"); //Changing order of these lines because of #4318, where system removal notification was set (user triggering the event) eF_deleteTableData("notifications", "recipient='" . $this->user['login'] . "'"); EfrontEvent::triggerEvent(array("type" => EfrontEvent::SYSTEM_REMOVAL, "users_LOGIN" => $this->user['login'], "users_name" => $this->user['name'], "users_surname" => $this->user['surname'])); eF_deleteTableData("users", "login='******'login'] . "'"); return true; }