%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/admin/jobs/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/admin/jobs/CheckForNewVersion.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2017 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\admin\jobs;
use humhub\modules\admin\libs\HumHubAPI;
use humhub\modules\admin\Module;
use humhub\modules\admin\notifications\NewVersionAvailable;
use humhub\modules\queue\ActiveJob;
use humhub\modules\user\models\Group;
use Yii;
/**
* CheckForNewVersion checks for new HumHub version and sends a notification to
* the administrators
*
* @since 1.2
* @author Luke
*/
class CheckForNewVersion extends ActiveJob
{
/**
* @inheritdoc
*/
public function run()
{
/** @var Module $adminModule */
$adminModule = Yii::$app->getModule('admin');
if (!$adminModule->dailyCheckForNewVersion || !Yii::$app->params['humhub']['apiEnabled']) {
return;
}
$latestVersion = HumHubAPI::getLatestHumHubVersion();
if (!empty($latestVersion)) {
$adminUserQuery = Group::getAdminGroup()->getUsers();
$latestNotifiedVersion = $adminModule->settings->get('lastVersionNotify');
$adminsNotified = !($latestNotifiedVersion == "" || version_compare($latestVersion, $latestNotifiedVersion, ">"));
$newVersionAvailable = (version_compare($latestVersion, Yii::$app->version, ">"));
$updateNotification = new NewVersionAvailable();
// Cleanup existing notifications
if (!$newVersionAvailable || ($newVersionAvailable && !$adminsNotified)) {
foreach ($adminUserQuery->all() as $admin) {
$updateNotification->delete($admin);
}
}
// Create new notification
if ($newVersionAvailable && !$adminsNotified) {
$updateNotification->sendBulk($adminUserQuery);
$adminModule->settings->set('lastVersionNotify', $latestVersion);
}
}
}
}