/** * Deletes all Entries in table "item_backup" older than $days * * @param $days number of days for which entries are allowed to stay in table * @return boolean success */ public function deleteOlderThan($days) { $retour = false; $timestamp = getCurrentDateTimeMinusDaysInMySQL($days); $query = ' DELETE FROM ' . $this->addDatabasePrefix($this->_db_table) . ' WHERE backup_date < "' . $timestamp . '"'; $result = $this->_db_connector->performQuery($query); if (!isset($result) || !$result) { include_once 'functions/error_functions.php'; trigger_error('Problem deleting items.', E_USER_ERROR); } else { unset($result); $retour = true; } return $retour; }
/** set lastlogin limit * this method sets the last login limit * * @param integer days in the past user has not logged in or empty: user has logged in */ function setLastLoginLimit($value = '') { if (empty($value)) { $this->_lastlogin_limit = 'empty'; } else { $this->_lastlogin_limit = getCurrentDateTimeMinusDaysInMySQL($value); } }
// // You have received a copy of the GNU General Public License // along with CommSy. include_once('../migration.conf.php'); include_once('../db_link.dbi.php'); include_once('../update_functions.php'); // time management for this script $time_start = getmicrotime(); echo ('file: delete unlinked files'."\n"); $success = true; // only delete files where the deletion date is older than 30 days $datetime = getCurrentDateTimeMinusDaysInMySQL(30); // get file ids $count = array_shift(mysql_fetch_row(select('SELECT count( * ) as count FROM files INNER JOIN `item_link_file` ON files.files_id = item_link_file.file_id WHERE item_link_file.deletion_date < "'.$datetime.'" OR files.deletion_date < "'.$datetime.'";'))); if ($count < 1) { echo "<br />nothing to do."; } else { init_progress_bar($count); $sql = 'SELECT files.files_id, files.context_id, files.filename FROM files INNER JOIN `item_link_file` ON files.files_id = item_link_file.file_id WHERE item_link_file.deletion_date < "'.$datetime.'" OR files.deletion_date < "'.$datetime.'";'; $result = select($sql); while ($row = mysql_fetch_assoc($result)) { // get portal id if ( $row['context_id'] != 99 ) { $sql2 = 'SELECT context_id FROM items WHERE item_id="'.$row['context_id'].'";'; $result2 = select($sql2); $row2 = mysql_fetch_assoc($result2);
/** select privatrooms limited by limits * this method returns a list (cs_list) of privatrooms within the database limited by the limits. the select statement is a bit tricky, see source code for further information */ function _performQuery($mode = 'select') { if ($mode == 'count') { $query = 'SELECT count(' . $this->addDatabasePrefix($this->_db_table) . '.item_id) AS count'; } elseif ($mode == 'id_array') { $query = 'SELECT ' . $this->addDatabasePrefix($this->_db_table) . '.item_id'; } else { $query = 'SELECT ' . $this->addDatabasePrefix($this->_db_table) . '.*'; } $query .= ' FROM ' . $this->addDatabasePrefix($this->_db_table); // user id limit if (isset($this->_user_id_limit)) { $query .= ' LEFT JOIN ' . $this->addDatabasePrefix('user') . ' ON ' . $this->addDatabasePrefix('user') . '.context_id=' . $this->addDatabasePrefix($this->_db_table) . '.item_id AND ' . $this->addDatabasePrefix('user') . '.deletion_date IS NULL'; if (!$this->_all_room_limit) { $query .= ' AND ' . $this->addDatabasePrefix('user') . '.status >= "2"'; } } if ($this->_active_limit) { $query .= ' INNER JOIN ' . $this->addDatabasePrefix('user') . ' ON ' . $this->addDatabasePrefix('user') . '.context_id=' . $this->addDatabasePrefix($this->_db_table) . '.item_id'; $query .= ' AND ' . $this->addDatabasePrefix('user') . '.deletion_date IS NULL'; $query .= ' INNER JOIN ' . $this->addDatabasePrefix('user') . ' AS user2 ON ' . $this->addDatabasePrefix('user') . '.user_id=user2.user_id'; $query .= ' AND ' . $this->addDatabasePrefix('user') . '.auth_source=user2.auth_source'; $query .= ' AND user2.deletion_date IS NULL'; } $query .= ' WHERE 1'; if (isset($this->_user_id_limit)) { $query .= ' AND ' . $this->addDatabasePrefix('user') . '.user_id="' . encode(AS_DB, $this->_user_id_limit) . '"'; } if (isset($this->_auth_source_limit)) { $query .= ' AND ' . $this->addDatabasePrefix('user') . '.auth_source="' . encode(AS_DB, $this->_auth_source_limit) . '"'; } // insert limits into the select statement if ($this->_delete_limit == true) { $query .= ' AND ' . $this->addDatabasePrefix($this->_db_table) . '.deleter_id IS NULL'; } if (isset($this->_status_limit)) { $query .= ' AND ' . $this->addDatabasePrefix($this->_db_table) . '.status = "' . encode(AS_DB, $this->_status_limit) . '"'; } if (!empty($this->_room_limit)) { $query .= ' AND ' . $this->addDatabasePrefix($this->_db_table) . '.context_id = "' . encode(AS_DB, $this->_room_limit) . '"'; } if (isset($this->_room_type)) { $query .= ' AND ' . $this->addDatabasePrefix($this->_db_table) . '.type = "' . encode(AS_DB, $this->_room_type) . '"'; } if (isset($this->_template_limit)) { $query .= ' AND ' . $this->addDatabasePrefix($this->_db_table) . '.template = "1"'; } if ($this->_active_limit) { include_once 'functions/date_functions.php'; $query .= ' AND user2.context_id = ' . encode(AS_DB, $this->_room_limit); $query .= ' and user2.lastlogin >= "' . getCurrentDateTimeMinusDaysInMySQL(100) . '"'; } // archive // lastlogin_limit if (!empty($this->_lastlogin_limit)) { if ($this->_lastlogin_limit == 'NULL') { $query .= ' AND ' . $this->addDatabasePrefix($this->_db_table) . '.lastlogin IS NULL'; } else { $query .= ' AND ' . $this->addDatabasePrefix($this->_db_table) . '.lastlogin = '******'date') { $query .= ' ORDER BY ' . $this->addDatabasePrefix($this->_db_table) . '.modification_date DESC, ' . $this->addDatabasePrefix($this->_db_table) . '.title ASC'; } elseif ($this->_order == 'creation_date') { $query .= ' ORDER BY ' . $this->addDatabasePrefix($this->_db_table) . '.creation_date ASC, ' . $this->addDatabasePrefix($this->_db_table) . '.title ASC'; } elseif ($this->_order == 'creator') { $query .= ' ORDER BY ' . $this->addDatabasePrefix('user') . '.lastname, ' . $this->addDatabasePrefix($this->_db_table) . '.modification_date DESC'; } elseif ($this->_order == 'activity') { $query .= ' ORDER BY ' . $this->addDatabasePrefix($this->_db_table) . '.activity ASC, ' . $this->addDatabasePrefix($this->_db_table) . '.title ASC'; } elseif ($this->_order == 'activity_rev') { $query .= ' ORDER BY ' . $this->addDatabasePrefix($this->_db_table) . '.activity DESC, ' . $this->addDatabasePrefix($this->_db_table) . '.title ASC'; } else { $query .= ' ORDER BY ' . $this->addDatabasePrefix($this->_db_table) . '.title, ' . $this->addDatabasePrefix($this->_db_table) . '.modification_date DESC'; } } else { $query .= ' ORDER BY ' . $this->addDatabasePrefix($this->_db_table) . '.title DESC'; } if ($mode == 'select') { if (isset($this->_interval_limit) and isset($this->_from_limit)) { $query .= ' LIMIT ' . $this->_from_limit . ', ' . $this->_interval_limit; } } // perform query $result = $this->_db_connector->performQuery($query); if (!isset($result)) { include_once 'functions/error_functions.php'; trigger_error('Problems selecting ' . $this->_db_table . ' items from query: "' . $query . '"', E_USER_ERROR); } else { return $result; } }
public function isActiveDuringLast99Days() { include_once 'functions/date_functions.php'; return $this->getLastLogin() >= getCurrentDateTimeMinusDaysInMySQL(99); }
} unset($room_manager); unset($number); unset($number1); unset($number2); } if ( $room_item->isActivatedDeletingUnusedRooms() and !empty($_POST['room_deleting_days_unused']) ) { $room_manager = $environment->getZzzProjectManager(); include_once('functions/date_functions.php'); if ( !empty($_POST['room_deleting_days_unused_mail']) ) { $datetime_border = getCurrentDateTimeMinusDaysInMySQL($room_item->getDaysUnusedBeforeDeletingRooms()-$room_item->getDaysSendMailBeforeDeletingRooms()); } else { $datetime_border = getCurrentDateTimeMinusDaysInMySQL($room_item->getDaysUnusedBeforeDeletingRooms()); } $room_manager->setLastLoginOlderLimit($datetime_border); $room_manager->setContextLimit($room_item->getItemID()); $room_manager->setNotTemplateLimit(); $number1 = $room_manager->getCountAll(); $room_manager = $environment->getZzzCommunityManager(); $room_manager->setLastLoginOlderLimit($datetime_border); $room_manager->setContextLimit($room_item->getItemID()); $room_manager->setNotTemplateLimit(); $number2 = $room_manager->getCountAll(); $number = $number1 + $number2; if ( !empty($number) ) { if ( !empty($number1) and $number1 == 1 ) { $project = $translator->getMessage('COMMON_PROJECT_NUMBER_SI',$number1); } else {
function deleteReallyOlderThan($days) { $disc_manager = $this->_environment->getDiscManager(); $retour = true; $timestamp = getCurrentDateTimeMinusDaysInMySQL($days); $query = 'SELECT ' . $this->addDatabasePrefix($this->_db_table) . '.files_id, ' . $this->addDatabasePrefix($this->_db_table) . '.context_id, ' . $this->addDatabasePrefix($this->_db_table) . '.filename FROM ' . $this->addDatabasePrefix($this->_db_table) . ' WHERE deletion_date IS NOT NULL and deletion_date < "' . $timestamp . '";'; $result = $this->_db_connector->performQuery($query); if (!isset($result)) { include_once 'functions/error_functions.php'; trigger_error('Problem selecting items from query: "' . $query . '"', E_USER_ERROR); $retour = false; } else { $retour = $retour and parent::deleteReallyOlderThan($days); foreach ($result as $query_result) { $query2 = 'SELECT context_id as portal_id FROM ' . $this->addDatabasePrefix('room') . ' WHERE item_id="' . $query_result['context_id'] . '"'; $result2 = $this->_db_connector->performQuery($query2); if (!isset($result2)) { include_once 'functions/error_functions.php'; trigger_error('Problem selecting items from query: "' . $query . '"', E_USER_ERROR); $retour = false; } elseif (!empty($result2[0])) { $query_result2 = $result2[0]; if (!empty($query_result2['portal_id'])) { $filename = 'cid' . $query_result['context_id'] . '_' . $query_result['files_id'] . '_' . $query_result['filename']; $disc_manager->setPortalID($query_result2['portal_id']); $disc_manager->setContextID($query_result['context_id']); if ($disc_manager->existsFile($filename)) { $retour = $retour and $disc_manager->unlinkFile($filename); } } } } } return $retour; }
function deleteByContextArray($array) { $retour = false; $query = 'DELETE FROM ' . $this->addDatabasePrefix('log_archive') . ' WHERE 1'; if (!empty($array) and count($array) > 0) { $id_string = implode(',', $array); $query .= ' AND cid NOT IN (' . encode(AS_DB, $id_string) . ')'; } include_once 'functions/date_functions.php'; $current_context = $this->_environment->getCurrentContextItem(); //$days = 50; $days = $current_context->getLogDeleteInterval(); if (empty($days)) { $days = 50; } $datetime = getCurrentDateTimeMinusDaysInMySQL($days); $query .= ' AND timestamp < "' . $datetime . '"'; // perform query $result = $this->_db_connector->performQuery($query); if (!isset($result) or !$result) { include_once 'functions/error_functions.php'; trigger_error('Problems at logs from query:<br />"' . $query . '"', E_USER_WARNING); } else { $retour = $result; } return $retour; }
function deleteReallyOlderThan($days) { $retour = false; $timestamp = getCurrentDateTimeMinusDaysInMySQL($days); $id_array = array(); $query = 'SELECT item_id, context_id FROM ' . $this->addDatabasePrefix($this->_db_table) . ' WHERE deletion_date IS NOT NULL and deletion_date < "' . $timestamp . '"'; $result = $this->_db_connector->performQuery($query); if (!isset($result) or !$result) { #include_once('functions/error_functions.php'); #trigger_error('Problem deleting items.',E_USER_ERROR); } else { foreach ($result as $rs) { $temp_array['item_id'] = $rs['item_id']; $temp_array['portal_id'] = $rs['context_id']; $id_array[] = $temp_array; } } foreach ($id_array as $room_array) { $iid = $room_array['item_id']; $portal_id = $room_array['portal_id']; // delete files $disc_manager = $this->_environment->getDiscManager(); $disc_manager->removeRoomDir($portal_id, $iid); unset($disc_manager); // delete db content or archive content $from_backup = false; if ($this->_environment->isArchiveMode()) { $from_backup = true; } // managers need data from other tables $hash_manager = $this->_environment->getHashManager(); $hash_manager->deleteFromDb($iid, $from_backup); unset($hash_manager); $link_modifier_item_manager = $this->_environment->getLinkModifierItemManager(); $link_modifier_item_manager->deleteFromDb($iid, $from_backup); unset($link_modifier_item_manager); $link_item_file_manager = $this->_environment->getLinkItemFileManager(); $link_item_file_manager->deleteFromDb($iid, $from_backup); unset($link_item_file_manager); $noticed_manager = $this->_environment->getNoticedManager(); $noticed_manager->deleteFromDb($iid, $from_backup); unset($noticed_manager); $reader_manager = $this->_environment->getReaderManager(); $reader_manager->deleteFromDb($iid, $from_backup); unset($reader_manager); // plain deletion of the rest $annotation_manager = $this->_environment->getAnnotationManager(); $annotation_manager->deleteFromDb($iid, $from_backup); unset($annotation_manager); $announcement_manager = $this->_environment->getAnnouncementManager(); $announcement_manager->deleteFromDb($iid, $from_backup); unset($announcement_manager); $dates_manager = $this->_environment->getDatesManager(); $dates_manager->deleteFromDb($iid, $from_backup); unset($dates_manager); $discussion_manager = $this->_environment->getDiscussionManager(); $discussion_manager->deleteFromDb($iid, $from_backup); unset($discussion_manager); $discussionarticles_manager = $this->_environment->getDiscussionarticleManager(); $discussionarticles_manager->deleteFromDb($iid, $from_backup); unset($discussionarticles_manager); $file_manager = $this->_environment->getFileManager(); $file_manager->deleteFromDb($iid, $from_backup); unset($file_manager); $homepage_link_manager = $this->_environment->getHomepageLinkManager(); $homepage_link_manager->deleteFromDb($iid, $from_backup); unset($homepage_link_manager); $homepage_manager = $this->_environment->getHomepageManager(); $homepage_manager->deleteFromDb($iid, $from_backup); unset($homepage_manager); $item_manager = $this->_environment->getItemManager(); $item_manager->deleteFromDb($iid, $from_backup); unset($item_manager); $labels_manager = $this->_environment->getLabelManager(); $labels_manager->deleteFromDb($iid, $from_backup); unset($labels_manager); $links_manager = $this->_environment->getLinkManager(); $links_manager->deleteFromDb($iid, $from_backup); unset($links_manager); $link_item_manager = $this->_environment->getLinkItemManager(); $link_item_manager->deleteFromDb($iid, $from_backup); unset($link_item_manager); $material_manager = $this->_environment->getMaterialManager(); $material_manager->deleteFromDb($iid, $from_backup); unset($material_manager); $section_manager = $this->_environment->getSectionManager(); $section_manager->deleteFromDb($iid, $from_backup); unset($section_manager); $step_manager = $this->_environment->getStepManager(); $step_manager->deleteFromDb($iid, $from_backup); unset($step_manager); $tag_manager = $this->_environment->getTagManager(); $tag_manager->deleteFromDb($iid, $from_backup); unset($tag_manager); $tag2tag_manager = $this->_environment->getTag2TagManager(); $tag2tag_manager->deleteFromDb($iid, $from_backup); unset($tag2tag_manager); $task_manager = $this->_environment->getTaskManager(); $task_manager->deleteFromDb($iid, $from_backup); unset($task_manager); $todo_manager = $this->_environment->getTodoManager(); $todo_manager->deleteFromDb($iid, $from_backup); unset($todo_manager); $user_manager = $this->_environment->getUserManager(); $user_manager->deleteFromDb($iid, $from_backup); unset($user_manager); $room_manager = $this->_environment->getRoomManager(); $room_manager->deleteFromDb($iid, $from_backup); unset($room_manager); } return $retour; }
public function _cronInactiveUserDelete() { $time_start = getmicrotime(); $cron_array = array(); $cron_array['title'] = 'Temporary login as expired'; $cron_array['description'] = 'check if a temporary login is expired'; $success = false; $translator = $this->_environment->getTranslationObject(); $server_item = $this->_environment->getServerItem(); require_once 'classes/cs_mail.php'; $user_manager = $this->_environment->getUserManager(); //$current_portal = $this->_environment->getCurrentContextItem(); $portal_list = $this->getPortalList(); if ($portal_list->isNotEmpty()) { $portal_item = $portal_list->getFirst(); while ($portal_item) { if ($portal_item->getInactivityLockDays() != 0 or $portal_item->getInactivitySendMailBeforeLockDays() != 0 or $portal_item->getInactivityDeleteDays() != 0 or $portal_item->getInactivitySendMailBeforeDeleteDays() != 0) { // get inactivity configuration $inactivitySendMailDeleteDays = $portal_item->getInactivitySendMailBeforeDeleteDays(); $inactivityDeleteDays = $portal_item->getInactivityDeleteDays(); $inactivitySendMailLockDays = $portal_item->getInactivitySendMailBeforeLockDays(); $inactivityLockDays = $portal_item->getInactivityLockDays(); // get configuration date $configDate = $portal_item->getInactivityConfigDate(); // calc date to find user which last login is later as the calculated date if (isset($inactivitySendMailLockDays) and !empty($inactivitySendMailLockDays)) { // inactivity lock notification is set $date_lastlogin_do = getCurrentDateTimeMinusDaysInMySQL($inactivitySendMailLockDays); } else { // inactivity lock notification is not set $date_lastlogin_do = getCurrentDateTimeMinusDaysInMySQL($inactivitySendMailDeleteDays); } // get array of users $user_array = $user_manager->getUserLastLoginLaterAs($date_lastlogin_do, $portal_item->getItemID(), 0); if (!empty($user_array)) { foreach ($user_array as $user) { // set user mail for log $to = $user->getEmail(); // calc days from lastlogin till now $start_date = new DateTime(getCurrentDateTimeInMySQL()); $since_start = $start_date->diff(new DateTime($user->getLastLogin())); $days = $since_start->days; if ($days == 0) { $days = 1; } $auth_source_manager = $this->_environment->getAuthSourceManager(); $auth_source_item = $auth_source_manager->getItem($user->getAuthSource()); $sourceType = $auth_source_item->getSourceType(); // calculate the days till lock $lockSendMailDate = $user->getLockSendMailDate(); $daysTillLock = 0; if (!empty($lockSendMailDate)) { $start_date_lock = new DateTime($user->getLockSendMailDate()); $since_start_lock = $start_date_lock->diff(new DateTime(getCurrentDateTimeInMySQL())); $daysTillLock = $since_start_lock->days; if ($daysTillLock == 0) { $daysTillLock = 1; } } // if lock is not set if (empty($inactivityLockDays)) { $daysTillLock = $days; } // check if config date should be used if (empty($inactivityLockDays) and $inactivityDeleteDays < $days or !empty($inactivityLockDays) and $inactivityLockDays < $days) { // calc days $start_date = new DateTime(getCurrentDateTimeInMySQL()); $since_start = $start_date->diff(new DateTime($configDate)); $days = $since_start->days; } // DEBUG OUTPUT // pr('Diff: '.$days); // pr($user->getLastLogin()); // pr('SendMailBeforeDelete: '.$inactivitySendMailDeleteDays); // pr('InactivityDeleteDays: '.$inactivityDeleteDays); // pr('SendMailBeforeLock: '.$inactivitySendMailLockDays); // pr('InactivityLockDays: '.$inactivityLockDays); // pr('USERNAME: '******'DaysTillLock:' . $daysTillLock); // pr('Days:' . $days); // pr(($portal_item->getInactivityLockDays() - $days). '<=' . ($portal_item->getInactivitySendMailBeforeLockDays()-1)); // pr('-------------'); // DEBUG OUTPUT $userid = $user->getFullname(); // delete user if ($daysTillLock >= $portal_item->getInactivityDeleteDays() and $user->getMailSendBeforeDelete() and !empty($inactivityDeleteDays)) { // mail locked send or locked configuration is not set if ($user->getMailSendLocked() or empty($inactivitySendMailLockDays) and empty($inactivityLockDays)) { $auth_source_manager = $this->_environment->getAuthSourceManager(); $auth_source_item = $auth_source_manager->getItem($user->getAuthSource()); // delete user and every room which the user is member only $user->deleteAllEntriesOfUserByInactivity(); // delete content // $portalUser_item = $user->getRelatedCommSyUserItem(); $authentication = $this->_environment->getAuthenticationObject(); $authentication->delete($user->getItemID()); // $authentication = $this->_environment->getAuthenticationObject(); // $authentication->delete($user->getItemID()); // delete authentication // $user->delete(); // $user->save(); ########################## # delete mail ########################## $mail = $this->sendMailForUserInactivity("deleted", $user, $portal_item, $days); if ($mail->send()) { $user->setMailSendBeforeDelete(); $user->save(); $cron_array['success'] = true; $cron_array['success_text'] = 'send delete mail to ' . $to; } else { $cron_array['success'] = false; $cron_array['success_text'] = 'failed send mail to ' . $to; } } } // 1 Tag vor dem löschen noch eine Email verschicken if ($daysTillLock >= $portal_item->getInactivityDeleteDays() - 1 and ($user->getMailSendLocked() or empty($inactivitySendMailLockDays) and empty($inactivityLockDays)) and !empty($inactivityDeleteDays)) { if (!$user->getMailSendBeforeDelete()) { // send mail next day delete $mail = $this->sendMailForUserInactivity("deleteNext", $user, $portal_item, $days); if ($mail->send()) { $user->setMailSendBeforeDelete(); $user->save(); $cron_array['success'] = true; $cron_array['success_text'] = 'send mail to ' . $to; } else { $cron_array['success'] = false; $cron_array['success_text'] = 'failed send mail to ' . $to; } } } if ($daysTillLock >= $portal_item->getInactivitySendMailBeforeDeleteDays() and ($user->getMailSendLocked() or empty($inactivitySendMailLockDays) and empty($inactivityLockDays)) and !empty($inactivitySendMailDeleteDays)) { // send mail delete in the next y days if (!$user->getMailSendBeforeDelete()) { if ($portal_item->getInactivityDeleteDays() - $daysTillLock <= $portal_item->getInactivitySendMailBeforeDeleteDays()) { if (!$user->getMailSendNextDelete()) { $mail = $this->sendMailForUserInactivity("deleteNotify", $user, $portal_item, $daysTillLock); if ($mail->send()) { $user->setMailSendNextDelete(); $user->save(); // $user->setInactivityMailSendBeforeDelete(); // $user->save(); $cron_array['success'] = true; $cron_array['success_text'] = 'send mail to ' . $to; } else { $cron_array['success'] = false; $cron_array['success_text'] = 'failed send mail to ' . $to; } // step over continue; } } } } // step over // if ($daysTillLock > 0) { // continue; // } // lock now if ($days >= $portal_item->getInactivityLockDays() - 1 and !empty($inactivityLockDays)) { if ($user->getMailSendBeforeLock() and !$user->getMailSendLocked()) { // lock user and set lock date till deletion date $user->setLock($portal_item->getInactivityDeleteDays() + 365); // days till delete $user->reject(); $user->save(); // lock user if not locked already $mail = $this->sendMailForUserInactivity("locked", $user, $portal_item, $days); if ($mail->send()) { $user->setMailSendLocked(); $user->setLockSendMailDate(); $user->save(); $cron_array['success'] = true; $cron_array['success_text'] = 'send mail to ' . $to; } else { $cron_array['success'] = false; $cron_array['success_text'] = 'failed send mail to ' . $to; } } else { if (!$user->getMailSendBeforeLock()) { // send mail to user that the user will be locked in one day if ($portal_item->getInactivityLockDays() - $days <= $portal_item->getInactivitySendMailBeforeLockDays() - 1) { $mail = $this->sendMailForUserInactivity("lockNext", $user, $portal_item, $days); if ($mail->send()) { $user->setMailSendBeforeLock(); $user->save(); $cron_array['success'] = true; $cron_array['success_text'] = 'send mail to ' . $to; } else { $cron_array['success'] = false; $cron_array['success_text'] = 'failed send mail to ' . $to; } } // step over continue; } } } // lock in x days if ($days >= $portal_item->getInactivitySendMailBeforeLockDays() and !empty($inactivitySendMailLockDays)) { // send mail lock in x days if (!$user->getMailSendBeforeLock() && !$user->getMailSendNextLock()) { // ????? // } else { if ($portal_item->getInactivityLockDays() - $days <= $portal_item->getInactivitySendMailBeforeLockDays()) { $mail = $this->sendMailForUserInactivity("lockNotify", $user, $portal_item, $days); if ($mail->send()) { $user->setMailSendNextLock(); $user->save(); #$user->setMailSendBeforeLock(); #$user->save(); $cron_array['success'] = true; $cron_array['success_text'] = 'send mail to ' . $to; } else { $cron_array['success'] = false; $cron_array['success_text'] = 'failed send mail to ' . $to; } // step over continue; } } } } } } $portal_item = $portal_list->getNext(); } } if ($success) { $cron_array['success'] = true; $cron_array['success_text'] = 'mails send'; } else { $cron_array['success'] = true; $cron_array['success_text'] = 'nothing to do'; } $time_end = getmicrotime(); $time = round($time_end - $time_start, 0); $cron_array['time'] = $time; unset($user_manager); return $cron_array; }
$mail_before_delete = $_POST['email_before_delete']; $user_manager = $environment->getUserManager(); if (isset($lock_days) and !empty($lock_days)) { if (isset($mail_before_lock) and !empty($mail_before_lock)) { $date_lastlogin_do = getCurrentDateTimeMinusDaysInMySQL(($lock_days + $mail_before_lock)); } else { $date_lastlogin_do = getCurrentDateTimeMinusDaysInMySQL($lock_days); } } if (isset($delete_days) and !empty($delete_days)) { if (isset($mail_before_delete) and !empty($mail_before_delete)) { $date_lastlogin_do = getCurrentDateTimeMinusDaysInMySQL($delete_days + $mail_before_delete); } else { $date_lastlogin_do = getCurrentDateTimeMinusDaysInMySQL($delete_days); } } if (isset($date_lastlogin_do)) { $user_array = $user_manager->getUserLastLoginLaterAs($date_lastlogin_do, $current_context->getItemID()); } if (!empty($user_array)) { $count_delete = 0; $count_lock = 0; foreach ($user_array as $user) { $start_date = new DateTime(getCurrentDateTimeInMySQL()); $since_start = $start_date->diff(new DateTime($user->getLastLogin())); $days = $since_start->days; if ($days == 0) { $days = 1;
private function _cronDeleteUnusedRoomsSendMailBefore() { $cron_array = array(); $cron_array['title'] = 'send mail before delete unused rooms'; $cron_array['description'] = 'if rooms are unused for ' . ($this->getDaysUnusedBeforeDeletingRooms() - $this->getDaysSendMailBeforeDeletingRooms()) . ' days this cron sends a notifications about deleting the room in ' . $this->getDaysSendMailBeforeDeletingRooms() . ' days'; $cron_array['success'] = false; $cron_array['success_text'] = 'cron failed'; $days_mail_send_before = $this->getDaysSendMailBeforeDeletingRooms(); if (!empty($days_mail_send_before)) { // unused project rooms // group rooms will be archived with project room $count_project = 0; $room_manager = $this->_environment->getProjectManager(); include_once 'functions/date_functions.php'; $datetime_border = getCurrentDateTimeMinusDaysInMySQL($this->getDaysUnusedBeforeDeletingRooms() - $this->getDaysSendMailBeforeDeletingRooms()); $room_manager->setLastLoginOlderLimit($datetime_border); $room_manager->setContextLimit($this->getItemID()); #$room_manager->setNotTemplateLimit(); $room_manager->select(); $room_list = $room_manager->get(); $count_project_all = 0; if (!empty($room_list) and $room_list->isNotEmpty()) { $count_project_all = $room_list->getCount(); $datetime_border_send_mail = getCurrentDateTimeMinusDaysInMySQL($this->getDaysSendMailBeforeDeletingRooms()); $datetime_border_send_mail2 = getCurrentDateTimeMinusDaysInMySQL($this->getDaysSendMailBeforeDeletingRooms() + 21); $room_item = $room_list->getFirst(); while ($room_item) { $send_mail = true; $send_mail_datetime = $room_item->getDeleteMailSendDateTime(); if (!empty($send_mail_datetime) and !($send_mail_datetime < $datetime_border_send_mail2)) { $send_mail = false; } if ($send_mail) { // send mail $success = $room_item->sendMailDeleteInfoToModeration(); // save room include_once 'functions/date_functions.php'; $room_item->setDeleteMailSendDateTime(getCurrentDateTimeInMySQL()); $room_item->saveWithoutChangingModificationInformation(); $count_project++; } unset($room_item); $room_item = $room_list->getNext(); } } unset($room_list); unset($room_manager); // unused community rooms $count_community = 0; $room_manager = $this->_environment->getCommunityManager(); include_once 'functions/date_functions.php'; $datetime_border = getCurrentDateTimeMinusDaysInMySQL($this->getDaysUnusedBeforeDeletingRooms() - $this->getDaysSendMailBeforeDeletingRooms()); $room_manager->setLastLoginOlderLimit($datetime_border); $room_manager->setContextLimit($this->getItemID()); #$room_manager->setNotTemplateLimit(); $room_manager->select(); $room_list = $room_manager->get(); $count_community_all = 0; if (!empty($room_list) and $room_list->isNotEmpty()) { $count_community_all = $room_list->getCount(); $datetime_border_send_mail = getCurrentDateTimeMinusDaysInMySQL($this->getDaysSendMailBeforeDeletingRooms()); $datetime_border_send_mail2 = getCurrentDateTimeMinusDaysInMySQL($this->getDaysSendMailBeforeDeletingRooms() + 21); $room_item = $room_list->getFirst(); while ($room_item) { $send_mail = true; $send_mail_datetime = $room_item->getDeleteMailSendDateTime(); if (!empty($send_mail_datetime) and !($send_mail_datetime < $datetime_border_send_mail2)) { $send_mail = false; } if ($send_mail) { // send mail $success = $room_item->sendMailDeleteInfoToModeration(); // save room include_once 'functions/date_functions.php'; $room_item->setDeleteMailSendDateTime(getCurrentDateTimeInMySQL()); $room_item->saveWithoutChangingModificationInformation(); $count_community++; } unset($room_item); $room_item = $room_list->getNext(); } } unset($room_list); unset($room_manager); } $cron_array['success'] = true; $cron_array['success_text'] = 'send delete info project rooms: ' . $count_project . ' (possible: ' . $count_project_all . ') - send delete info community rooms: ' . $count_community . ' (possible: ' . $count_community_all . ')'; return $cron_array; }
public function setActiveLimit() { include_once 'functions/date_functions.php'; $this->setLastLoginNewerLimit(getCurrentDateTimeMinusDaysInMySQL(100)); }
function deleteReallyOlderThan($days) { $retour = false; $timestamp = getCurrentDateTimeMinusDaysInMySQL($days); $query = 'DELETE FROM ' . $this->addDatabasePrefix($this->_db_table) . ' WHERE deletion_date IS NOT NULL and deletion_date < "' . $timestamp . '" AND type != "' . CS_DISCARTICLE_TYPE . '" AND type != "' . CS_USER_TYPE . '";'; // user und discarticle werden noch gebraucht $result = $this->_db_connector->performQuery($query); if (!isset($result) or !$result) { include_once 'functions/error_functions.php'; trigger_error('Problem deleting items.', E_USER_ERROR); } else { unset($result); $retour = true; } return $retour; }