Files
rocket-chat-php-scripts/koozali-deactivate-users.php
2025-09-02 14:27:20 +02:00

94 lines
2.4 KiB
PHP

<?php
// https://github.com/alekseykuleshov/rocket-chat
/**
* DeActivate old users
*
* Add protected users to array
*
*/
$protectedUsers = array("rocket.cat", "dani", "botpress-connector.bot", "jitsi.bot", "admin", "john");
$bestAfterDate = "2023";
use Dotenv\Dotenv;
require 'vendor/autoload.php';
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();
$dotenv->required(['SERVER_HOST', 'SERVER_USER', 'SERVER_PASS']);
$server = $_SERVER['SERVER_HOST'];
$user = $_SERVER['SERVER_USER'];
$pass = $_SERVER['SERVER_PASS'];
// Firstly, init
\ATDev\RocketChat\Chat::setUrl($server); // No trailing / on the https://host.domain
// Now, login
$result = \ATDev\RocketChat\Chat::login($user, $pass);
if (!$result) {
// Log the error
$error = \ATDev\RocketChat\Chat::getError();
// And out
} else {
$userObj = new \ATDev\RocketChat\Users\User;
$listing = $userObj->listing(0, 150);
// Will retrieve use list inc last login
if (!$listing) {
// Log the error
$error = \ATDev\RocketChat\Users\User::getError();
} else {
//var_dump($listing);
$x = 1;
$userArr = array();
foreach ($listing as $user) {
$userId = $user->getUserName($user);
$lastLogin = $user->getLastLogin($user);
$userArr[$userId] = ($lastLogin);
}
unset($userObj);
//asort($userArr);
$protectedUsers = array("rocket.cat", "dani", "botpress-connector.bot", "jitsi.bot", "admin", "john");
$bestAfterDate = "2023";
foreach ($userArr as $ID => $date) {
// If $ID not in array
if (! in_array($ID, $protectedUsers)) {
$dateTimeInstance = new DateTime($date);
$formattedFromObject = $dateTimeInstance->format('Y');
if ($formattedFromObject >= $bestAfterDate) {
echo "Keep Key=" . $ID . ", Value=" . $formattedFromObject;
echo "\n";
} else {
$user = new \ATDev\RocketChat\Users\User($ID);
$active = $user->getActive();
echo "Delete Key=" . $ID . ", Value=" . $formattedFromObject;
echo "\n";
}
} else {
echo "Protected User=" . $ID;
echo "\n";
}
}
}
$result = \ATDev\RocketChat\Chat::logout();
}