Пример #1
0
 public static function OnMetaModelStarted()
 {
     try {
         $oBackupMutex = new iTopMutex('backup.' . utils::GetCurrentEnvironment());
         if ($oBackupMutex->TryLock()) {
             $oBackupMutex->Unlock();
         } else {
             // Not needed: the DB dump is done in a single transaction
             //MetaModel::GetConfig()->Set('access_mode', ACCESS_READONLY, 'itop-backup');
             //MetaModel::GetConfig()->Set('access_message', ' - '.dict::S('bkp-backup-running'), 'itop-backup');
         }
         $oRestoreMutex = new iTopMutex('restore.' . utils::GetCurrentEnvironment());
         if ($oRestoreMutex->TryLock()) {
             $oRestoreMutex->Unlock();
         } else {
             MetaModel::GetConfig()->Set('access_mode', ACCESS_READONLY, 'itop-backup');
             MetaModel::GetConfig()->Set('access_message', ' - ' . dict::S('bkp-restore-running'), 'itop-backup');
         }
     } catch (Exception $e) {
     }
 }
Пример #2
0
 public static function OnMetaModelStarted()
 {
     try {
         $oBackupMutex = new iTopMutex('backup.' . utils::GetCurrentEnvironment());
         if ($oBackupMutex->TryLock()) {
             $oBackupMutex->Unlock();
         } else {
             // Not needed: the DB dump is done in a single transaction
             //MetaModel::GetConfig()->Set('access_mode', ACCESS_READONLY, 'itop-backup');
             //MetaModel::GetConfig()->Set('access_message', ' - '.dict::S('bkp-backup-running'), 'itop-backup');
         }
         $oRestoreMutex = new iTopMutex('restore.' . utils::GetCurrentEnvironment());
         if ($oRestoreMutex->TryLock()) {
             $oRestoreMutex->Unlock();
         } else {
             IssueLog::Info(__CLASS__ . '::' . __FUNCTION__ . ' A user is trying to use iTop while a restore is running. The requested page is in read-only mode.');
             MetaModel::GetConfig()->Set('access_mode', ACCESS_READONLY, 'itop-backup');
             MetaModel::GetConfig()->Set('access_message', ' - ' . dict::S('bkp-restore-running'), 'itop-backup');
         }
     } catch (Exception $e) {
         IssueLog::Error(__CLASS__ . '::' . __FUNCTION__ . ' Failed to check if a backup/restore is running: ' . $e->getMessage());
     }
 }
Пример #3
0
 *
 * @copyright   Copyright (C) 2013 Combodo SARL
 * @license     http://opensource.org/licenses/AGPL-3.0
 */
require_once '../approot.inc.php';
require_once APPROOT . '/application/application.inc.php';
require_once APPROOT . '/application/itopwebpage.class.inc.php';
require_once APPROOT . '/application/startup.inc.php';
require_once APPROOT . '/application/loginwebpage.class.inc.php';
LoginWebPage::DoLogin(true);
// Check user rights and prompt if needed (must be admin)
// Main program
//
$oP = new iTopWebPage(Dict::S('Menu:NotificationsMenu+'));
$oP->add('<div class="page_header" style="padding:0.5em;">');
$oP->add('<h1>' . dict::S('UI:NotificationsMenu:Title') . '</h1>');
$oP->add('</div>');
$oP->StartCollapsibleSection(Dict::S('UI:NotificationsMenu:Help'), true);
$oP->add('<div style="padding: 1em; font-size:10pt;background:#E8F3CF;margin-top: 0.25em;">');
$oP->add('<img src="../images/bell.png" style="margin-top: -60px; margin-right: 10px; float: right;">');
$oP->add(Dict::S('UI:NotificationsMenu:HelpContent'));
$oP->add('</div>');
$oP->add('');
$oP->add('');
$oP->EndCollapsibleSection();
$oP->add('<p>&nbsp;</p>');
$oP->AddTabContainer('Tabs_0');
$oP->SetCurrentTabContainer('Tabs_0');
$oP->SetCurrentTab(Dict::S('UI:NotificationsMenu:Triggers'));
$oP->add('<h2>' . Dict::S('UI:NotificationsMenu:AvailableTriggers') . '</h2>');
$oFilter = new DBObjectSearch('Trigger');