mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-19 00:28:47 +02:00
When iTop is in read only mode, then the portal displays a banner and prevent the user from accessing the modification forms
SVN:trunk[2540]
This commit is contained in:
@@ -255,6 +255,21 @@ EOF
|
||||
|
||||
public function output()
|
||||
{
|
||||
$sApplicationBanner = '';
|
||||
if (!MetaModel::DBHasAccess(ACCESS_USER_WRITE))
|
||||
{
|
||||
$sReadOnly = Dict::S('UI:AccessRO-Users');
|
||||
$sAdminMessage = trim(MetaModel::GetConfig()->Get('access_message'));
|
||||
$sApplicationBanner .= '<div id="admin-banner">';
|
||||
$sApplicationBanner .= '<img src="../images/locked.png" style="vertical-align:middle;">';
|
||||
$sApplicationBanner .= ' <b>'.$sReadOnly.'</b>';
|
||||
if (strlen($sAdminMessage) > 0)
|
||||
{
|
||||
$sApplicationBanner .= ' : '.$sAdminMessage.'';
|
||||
}
|
||||
$sApplicationBanner .= '</div>';
|
||||
}
|
||||
|
||||
$sMenu = '';
|
||||
if ($this->m_bEnableDisconnectButton)
|
||||
{
|
||||
@@ -264,7 +279,7 @@ EOF
|
||||
{
|
||||
$sMenu .= "<a class=\"button\" id=\"{$aMenuItem['id']}\" href=\"{$aMenuItem['hyperlink']}\"><span>".Dict::S($aMenuItem['label'])."</span></a>";
|
||||
}
|
||||
$this->s_content = '<div id="portal"><div id="welcome">'.$this->m_sWelcomeMsg.'</div><div id="banner"><div id="logo"></div><div id="menu">'.$sMenu.'</div></div><div id="content">'.$this->s_content.'</div></div>';
|
||||
$this->s_content = '<div id="portal"><div id="welcome">'.$this->m_sWelcomeMsg.'</div><div id="banner"><div id="logo"></div><div id="menu">'.$sMenu.'</div></div>'.$sApplicationBanner.'<div id="content">'.$this->s_content.'</div></div>';
|
||||
parent::output();
|
||||
}
|
||||
|
||||
|
||||
113
portal/index.php
113
portal/index.php
@@ -507,40 +507,43 @@ function ShowDetailsRequest(WebPage $oP, $oObj)
|
||||
$bIsEscalateButton = false;
|
||||
$bIsCloseButton = false;
|
||||
$bEditAttachments = false;
|
||||
switch($oObj->GetState())
|
||||
$aEditAtt = array();
|
||||
if (!MetaModel::DBIsReadOnly())
|
||||
{
|
||||
case 'new':
|
||||
case 'assigned':
|
||||
case 'frozen':
|
||||
$aEditAtt = array(
|
||||
PORTAL_ATTCODE_LOG => '????'
|
||||
);
|
||||
$bEditAttachments = true;
|
||||
// disabled - $bIsEscalateButton = true;
|
||||
break;
|
||||
|
||||
case 'escalated_tto':
|
||||
case 'escalated_ttr':
|
||||
$aEditAtt = array(
|
||||
PORTAL_ATTCODE_LOG => '????'
|
||||
);
|
||||
$bEditAttachments = true;
|
||||
break;
|
||||
|
||||
case 'resolved':
|
||||
$aEditAtt = array(
|
||||
// non, read-only dans cet etat - 'ticket_log' => '????',
|
||||
'user_satisfaction' => '????',
|
||||
PORTAL_ATTCODE_COMMENT => '????',
|
||||
);
|
||||
$bIsCloseButton = true;
|
||||
break;
|
||||
|
||||
case 'closed':
|
||||
case 'closure_requested':
|
||||
default:
|
||||
$aEditAtt = array();
|
||||
break;
|
||||
switch($oObj->GetState())
|
||||
{
|
||||
case 'new':
|
||||
case 'assigned':
|
||||
case 'frozen':
|
||||
$aEditAtt = array(
|
||||
PORTAL_ATTCODE_LOG => '????'
|
||||
);
|
||||
$bEditAttachments = true;
|
||||
// disabled - $bIsEscalateButton = true;
|
||||
break;
|
||||
|
||||
case 'escalated_tto':
|
||||
case 'escalated_ttr':
|
||||
$aEditAtt = array(
|
||||
PORTAL_ATTCODE_LOG => '????'
|
||||
);
|
||||
$bEditAttachments = true;
|
||||
break;
|
||||
|
||||
case 'resolved':
|
||||
$aEditAtt = array(
|
||||
// non, read-only dans cet etat - 'ticket_log' => '????',
|
||||
'user_satisfaction' => '????',
|
||||
PORTAL_ATTCODE_COMMENT => '????',
|
||||
);
|
||||
$bIsCloseButton = true;
|
||||
break;
|
||||
|
||||
case 'closed':
|
||||
case 'closure_requested':
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// REFACTORISER LA MISE EN FORME
|
||||
@@ -771,7 +774,10 @@ try
|
||||
|
||||
case 'create_request':
|
||||
DisplayMainMenu($oP);
|
||||
CreateRequest($oP, $oUserOrg);
|
||||
if (!MetaModel::DBIsReadOnly())
|
||||
{
|
||||
CreateRequest($oP, $oUserOrg);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'details':
|
||||
@@ -782,26 +788,29 @@ try
|
||||
|
||||
case 'update_request':
|
||||
DisplayMainMenu($oP);
|
||||
$oObj = $oP->FindObjectFromArgs(array('UserRequest'));
|
||||
switch(get_class($oObj))
|
||||
if (!MetaModel::DBIsReadOnly())
|
||||
{
|
||||
case 'UserRequest':
|
||||
$aAttList = array(PORTAL_ATTCODE_LOG, 'user_satisfaction', PORTAL_ATTCODE_COMMENT);
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new Exception("Implementation issue: unexpected class '".get_class($oObj)."'");
|
||||
$oObj = $oP->FindObjectFromArgs(array('UserRequest'));
|
||||
switch(get_class($oObj))
|
||||
{
|
||||
case 'UserRequest':
|
||||
$aAttList = array(PORTAL_ATTCODE_LOG, 'user_satisfaction', PORTAL_ATTCODE_COMMENT);
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new Exception("Implementation issue: unexpected class '".get_class($oObj)."'");
|
||||
}
|
||||
try
|
||||
{
|
||||
$oP->DoUpdateObjectFromPostedForm($oObj, $aAttList);
|
||||
$oObj->Reload(); // Make sure the object is in good shape to be displayed
|
||||
}
|
||||
catch(TransactionException $e)
|
||||
{
|
||||
$oP->add("<h1>".Dict::S('UI:Error:ObjectAlreadyUpdated')."</h1>\n");
|
||||
}
|
||||
DisplayObject($oP, $oObj, $oUserOrg);
|
||||
}
|
||||
try
|
||||
{
|
||||
$oP->DoUpdateObjectFromPostedForm($oObj, $aAttList);
|
||||
$oObj->Reload(); // Make sure the object is in good shape to be displayed
|
||||
}
|
||||
catch(TransactionException $e)
|
||||
{
|
||||
$oP->add("<h1>".Dict::S('UI:Error:ObjectAlreadyUpdated')."</h1>\n");
|
||||
}
|
||||
DisplayObject($oP, $oObj, $oUserOrg);
|
||||
break;
|
||||
|
||||
case 'show_ongoing':
|
||||
|
||||
@@ -28,6 +28,9 @@ div#portal #banner {
|
||||
vertical-align: middle;
|
||||
width: 100%;
|
||||
}
|
||||
div#portal #admin-banner {
|
||||
width: 100%;
|
||||
}
|
||||
div#portal #logo {
|
||||
background: url("../images/itop-logo.png") no-repeat scroll 0 0 transparent;
|
||||
border: 0 none;
|
||||
|
||||
Reference in New Issue
Block a user