diff --git a/application/loginwebpage.class.inc.php b/application/loginwebpage.class.inc.php index 5e2caf914..23c48eb54 100644 --- a/application/loginwebpage.class.inc.php +++ b/application/loginwebpage.class.inc.php @@ -217,7 +217,7 @@ EOF header("Location: $sUrl"); exit; } - + $aAllowedLoginTypes = utils::GetConfig()->GetAllowedLoginTypes(); if (isset($_SESSION['auth_user'])) @@ -329,7 +329,7 @@ EOF } } - static function DoLogin() + static function DoLogin($bMustBeAdmin = false) { $operation = utils::ReadParam('loginop', ''); session_start(); @@ -378,11 +378,20 @@ EOF $oPage = new LoginWebPage(); $oPage->DisplayChangePwdForm(true); // old pwd was wrong $oPage->output(); - exit; } } self::Login(); + + if ($bMustBeAdmin && !UserRights::IsAdministrator()) + { + require_once('../setup/setuppage.class.inc.php'); + $oP = new SetupWebPage(Dict::S('UI:PageTitle:FatalError')); + $oP->add("

".Dict::S('UI:Login:Error:AccessAdmin')."

\n"); + $oP->p("".Dict::S('UI:LogOffMenu').""); + $oP->output(); + exit; + } } } // End of class diff --git a/dictionaries/dictionary.itop.ui.php b/dictionaries/dictionary.itop.ui.php index 3245baced..a0b45eab5 100644 --- a/dictionaries/dictionary.itop.ui.php +++ b/dictionaries/dictionary.itop.ui.php @@ -443,6 +443,7 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:Login:RetypePwdDoesNotMatch' => 'New password and retyped new password do not match !', 'UI:Button:Login' => 'Enter iTop', 'UI:Login:Error:AccessRestricted' => 'iTop access is restricted. Please, contact an iTop administrator.', + 'UI:Login:Error:AccessAdmin' => 'Access restricted to people having administrator privileges. Please, contact an iTop administrator.', 'UI:CSVImport:MappingSelectOne' => '-- select one --', 'UI:CSVImport:MappingNotApplicable' => '-- ignore this field --', 'UI:CSVImport:NoData' => 'Empty data set..., please provide some data!', diff --git a/dictionaries/es_cr.dictionary.itop.ui.php b/dictionaries/es_cr.dictionary.itop.ui.php index d6f3574f1..a3bc810b1 100644 --- a/dictionaries/es_cr.dictionary.itop.ui.php +++ b/dictionaries/es_cr.dictionary.itop.ui.php @@ -452,6 +452,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI:Login:RetypePwdDoesNotMatch' => 'New password and retyped new password do not match !', 'UI:Button:Login' => 'Enter iTop', 'UI:Login:Error:AccessRestricted' => 'iTop access is restricted. Please, contact an iTop administrator.', + 'UI:Login:Error:AccessAdmin' => 'Access restricted to people having administrator privileges. Please, contact an iTop administrator.', 'UI:CSVImport:MappingSelectOne' => '-- select one --', 'UI:CSVImport:MappingNotApplicable' => '-- ignore this field --', 'UI:CSVImport:NoData' => 'Empty data set..., please provide some data!', diff --git a/dictionaries/fr.dictionary.itop.ui.php b/dictionaries/fr.dictionary.itop.ui.php index b8092fa53..ebaae475e 100644 --- a/dictionaries/fr.dictionary.itop.ui.php +++ b/dictionaries/fr.dictionary.itop.ui.php @@ -443,6 +443,7 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI:Login:RetypePwdDoesNotMatch' => 'Les deux saisies du nouveau mot de passe ne sont pas identiques !', 'UI:Button:Login' => 'Entrer dans iTop', 'UI:Login:Error:AccessRestricted' => 'L\'accès à iTop est soumis à autorisation. Merci de contacter votre administrateur iTop.', + 'UI:Login:Error:AccessAdmin' => 'Accès resreint aux utilisateurs possédant le profil Administrateur.', 'UI:CSVImport:MappingSelectOne' => '-- choisir une valeur --', 'UI:CSVImport:MappingNotApplicable' => '-- ignorer ce champ --', 'UI:CSVImport:NoData' => 'Aucune donnée... merci de fournir des données !', @@ -700,7 +701,7 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Menu:AdminTools' => 'Outils d\'admin', 'Menu:AdminTools+' => 'Outils d\'administration', - 'Menu:AdminTools?' => 'Ces outils sont accessibles uniquement aux utilisateur possédant le profil Administrateur.', + 'Menu:AdminTools?' => 'Ces outils sont accessibles uniquement aux utilisateurs possédant le profil Administrateur.', 'UI:AuditMenu' => 'Audit', 'UI:AuditMenu+' => 'Audit', diff --git a/pages/UniversalSearch.php b/pages/UniversalSearch.php index f4ecf5f1d..3c09a2bd0 100644 --- a/pages/UniversalSearch.php +++ b/pages/UniversalSearch.php @@ -30,7 +30,7 @@ require_once('../application/applicationcontext.class.inc.php'); require_once('../application/startup.inc.php'); require_once('../application/loginwebpage.class.inc.php'); -LoginWebPage::DoLogin(); // Check user rights and prompt if needed +LoginWebPage::DoLogin(true); // Check user rights and prompt if needed (must be admin) $oAppContext = new ApplicationContext(); $iActiveNodeId = utils::ReadParam('menu', -1); diff --git a/pages/run_query.php b/pages/run_query.php index c1ed44f70..4bea654a3 100644 --- a/pages/run_query.php +++ b/pages/run_query.php @@ -29,8 +29,7 @@ require_once('../application/itopwebpage.class.inc.php'); require_once('../application/startup.inc.php'); require_once('../application/loginwebpage.class.inc.php'); -LoginWebPage::DoLogin(); // Check user rights and prompt if needed - +LoginWebPage::DoLogin(true); // Check user rights and prompt if needed (must be admin) function ShowExamples($oP, $sExpression) { diff --git a/pages/schema.php b/pages/schema.php index c1471a928..c04bc0472 100644 --- a/pages/schema.php +++ b/pages/schema.php @@ -28,6 +28,9 @@ require_once('../application/itopwebpage.class.inc.php'); require_once('../application/startup.inc.php'); +require_once('../application/loginwebpage.class.inc.php'); +LoginWebPage::DoLogin(true); // Check user rights and prompt if needed (must be admin) + /** * Helper for this page -> link to a class