summaryrefslogtreecommitdiffstats
path: root/frontends/php/config.php
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-10-23 07:34:27 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-10-23 07:34:27 +0000
commit28a09ed13e41ddbe5e30d63e92a1f5fb3395ef89 (patch)
tree8281ccd48964ee0dd11c5ea689091fa3cef706fb /frontends/php/config.php
parent495799b2aa61aab23d74d7faa110a0cd09d59bf0 (diff)
downloadzabbix-28a09ed13e41ddbe5e30d63e92a1f5fb3395ef89.tar.gz
zabbix-28a09ed13e41ddbe5e30d63e92a1f5fb3395ef89.tar.xz
zabbix-28a09ed13e41ddbe5e30d63e92a1f5fb3395ef89.zip
- developed group permission system (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@3371 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/config.php')
-rw-r--r--frontends/php/config.php216
1 files changed, 63 insertions, 153 deletions
diff --git a/frontends/php/config.php b/frontends/php/config.php
index 53e3e1f1..b775a16b 100644
--- a/frontends/php/config.php
+++ b/frontends/php/config.php
@@ -19,63 +19,34 @@
**/
?>
<?php
- include "include/config.inc.php";
- include "include/forms.inc.php";
+ require_once "include/config.inc.php";
+ require_once "include/autoregistration.inc.php";
+ require_once "include/images.inc.php";
+ require_once "include/forms.inc.php";
$page["title"] = "S_CONFIGURATION_OF_ZABBIX";
$page["file"] = "config.php";
- show_header($page["title"],0,0);
- insert_confirm_javascript();
-?>
-
-<?php
- if(!check_anyright("Configuration of Zabbix","U"))
- {
- show_table_header("<font color=\"AA0000\">".S_NO_PERMISSIONS."</font>");
- show_page_footer();
- exit;
- }
-?>
+include_once "include/page_header.php";
-<?php
- update_profile("web.menu.config.last",$page["file"]);
+ insert_confirm_javascript();
?>
-
<?php
$fields=array(
// VAR TYPE OPTIONAL FLAGS VALIDATION EXCEPTION
- "config"=> array(T_ZBX_INT, O_OPT, NULL, IN("0,1,3,4,5,6,7"), NULL),
+ "config"=> array(T_ZBX_INT, O_OPT, NULL, IN("0,3,4,5,6,7"), NULL),
// other form
"alert_history"=> array(T_ZBX_INT, O_NO, NULL, BETWEEN(0,65535),
'in_array({config},array(0,5,7))&&({save}=="Save")'),
- "alarm_history"=> array(T_ZBX_INT, O_NO, NULL, BETWEEN(0,65535),
+ "event_history"=> array(T_ZBX_INT, O_NO, NULL, BETWEEN(0,65535),
'in_array({config},array(0,5,7))&&({save}=="Save")'),
"refresh_unsupported"=> array(T_ZBX_INT, O_NO, NULL, BETWEEN(0,65535),
'in_array({config},array(0,5,7))&&({save}=="Save")'),
"work_period"=> array(T_ZBX_STR, O_NO, NULL, NULL,
'in_array({config},array(0,5,7))&&({save}=="Save")'),
-// media form
- "mediatypeid"=> array(T_ZBX_INT, O_NO, P_SYS, BETWEEN(0,65535),
- '{config}==1&&{form}=="update"'),
- "type"=> array(T_ZBX_INT, O_OPT, NULL, IN("0,1,2"),
- '({config}==1)&&(isset({save}))'),
- "description"=> array(T_ZBX_STR, O_OPT, NULL, NOT_EMPTY,
- '({config}==1)&&(isset({save}))'),
- "smtp_server"=> array(T_ZBX_STR, O_OPT, NULL, NOT_EMPTY,
- '({config}==1)&&({type}==0)'),
- "smtp_helo"=> array(T_ZBX_STR, O_OPT, NULL, NOT_EMPTY,
- '({config}==1)&&({type}==0)'),
- "smtp_email"=> array(T_ZBX_STR, O_OPT, NULL, NOT_EMPTY,
- '({config}==1)&&({type}==0)'),
- "exec_path"=> array(T_ZBX_STR, O_OPT, NULL, NOT_EMPTY,
- '({config}==1)&&({type}==1)&&isset({save})'),
- "gsm_modem"=> array(T_ZBX_STR, O_OPT, NULL, NOT_EMPTY,
- '({config}==1)&&({type}==2)&&isset({save})'),
-
// image form
"imageid"=> array(T_ZBX_INT, O_NO, P_SYS, BETWEEN(0,65535),
'{config}==3&&{form}=="update"'),
@@ -120,58 +91,7 @@
update_profile("web.config.config",$_REQUEST["config"]);
$result = 0;
- if($_REQUEST["config"]==1)
- {
-
-
-
-/* MEDIATYPE ACTIONS */
- if(isset($_REQUEST["save"]))
- {
- if(isset($_REQUEST["mediatypeid"]))
- {
- /* UPDATE */
- $action = AUDIT_ACTION_UPDATE;
- $result=update_mediatype($_REQUEST["mediatypeid"],
- $_REQUEST["type"],$_REQUEST["description"],$_REQUEST["smtp_server"],
- $_REQUEST["smtp_helo"],$_REQUEST["smtp_email"],$_REQUEST["exec_path"],
- $_REQUEST["gsm_modem"]);
-
- show_messages($result, S_MEDIA_TYPE_UPDATED, S_MEDIA_TYPE_WAS_NOT_UPDATED);
- }
- else
- {
- /* ADD */
- $action = AUDIT_ACTION_ADD;
- $result=add_mediatype(
- $_REQUEST["type"],$_REQUEST["description"],$_REQUEST["smtp_server"],
- $_REQUEST["smtp_helo"],$_REQUEST["smtp_email"],$_REQUEST["exec_path"],
- $_REQUEST["gsm_modem"]);
-
- show_messages($result, S_ADDED_NEW_MEDIA_TYPE, S_NEW_MEDIA_TYPE_WAS_NOT_ADDED);
- }
- if($result)
- {
- add_audit($action,AUDIT_RESOURCE_MEDIA_TYPE,
- "Media type [".$_REQUEST["description"]."]");
-
- unset($_REQUEST["form"]);
- }
- } elseif(isset($_REQUEST["delete"])&&isset($_REQUEST["mediatypeid"])) {
- /* DELETE */
- $mediatype=get_mediatype_by_mediatypeid($_REQUEST["mediatypeid"]);
- $result=delete_mediatype($_REQUEST["mediatypeid"]);
- show_messages($result, S_MEDIA_TYPE_DELETED, S_MEDIA_TYPE_WAS_NOT_DELETED);
- if($result)
- {
- add_audit(AUDIT_ACTION_DELETE,AUDIT_RESOURCE_MEDIA_TYPE,
- "Media type [".$mediatype["description"]."]");
-
- unset($_REQUEST["form"]);
- }
- }
- }
- elseif($_REQUEST["config"]==3)
+ if($_REQUEST["config"]==3)
{
@@ -188,28 +108,35 @@
$msg_ok = S_IMAGE_UPDATED;
$msg_fail = S_CANNOT_UPDATE_IMAGE;
- $audit_action = "Image updated";
+ $audit_action = "Image [".$_REQUEST["name"]."] updated";
} else {
/* ADD */
+ if(count(get_accessible_nodes_by_user($USER_DETAILS,PERM_READ_WRITE,PERM_MODE_LT,
+ PERM_RES_IDS_ARRAY,$ZBX_CURNODEID)))
+ {
+ access_deny();
+ }
$result=add_image($_REQUEST["name"],$_REQUEST["imagetype"],$file);
$msg_ok = S_IMAGE_ADDED;
$msg_fail = S_CANNOT_ADD_IMAGE;
- $audit_action = "Image added";
+ $audit_action = "Image [".$_REQUEST["name"]."] added";
}
show_messages($result, $msg_ok, $msg_fail);
if($result)
{
- add_audit(AUDIT_ACTION_UPDATE,AUDIT_RESOURCE_ZABBIX_CONFIG,$audit_action);
+ add_audit(AUDIT_ACTION_UPDATE,AUDIT_RESOURCE_IMAGE,$audit_action);
unset($_REQUEST["form"]);
}
} elseif(isset($_REQUEST["delete"])&&isset($_REQUEST["imageid"])) {
/* DELETE */
+ $image = get_image_by_imageid($_REQUEST["imageid"]);
+
$result=delete_image($_REQUEST["imageid"]);
show_messages($result, S_IMAGE_DELETED, S_CANNOT_DELETE_IMAGE);
if($result)
{
- add_audit(AUDIT_ACTION_UPDATE,AUDIT_RESOURCE_ZABBIX_CONFIG,"Image deleted");
+ add_audit(AUDIT_ACTION_UPDATE,AUDIT_RESOURCE_IMAGE,"Image [".$image['name']."] deleted");
unset($_REQUEST["form"]);
}
unset($_REQUEST["imageid"]);
@@ -234,6 +161,11 @@
$audit_action = AUDIT_ACTION_UPDATE;
} else {
/* ADD */
+ if(count(get_accessible_nodes_by_user($USER_DETAILS,PERM_READ_WRITE,PERM_MODE_LT,
+ PERM_RES_IDS_ARRAY,$ZBX_CURNODEID)))
+ {
+ access_deny();
+ }
$result=add_autoregistration(
$_REQUEST["pattern"],$_REQUEST["priority"],$_REQUEST["hostid"]);
@@ -266,17 +198,18 @@
elseif(isset($_REQUEST["save"])&&in_array($_REQUEST["config"],array(0,5,7)))
{
-
+ if(count(get_accessible_nodes_by_user($USER_DETAILS,PERM_READ_WRITE,PERM_MODE_LT,PERM_RES_IDS_ARRAY,$ZBX_CURNODEID)))
+ access_deny();
/* OTHER ACTIONS */
- $result=update_config($_REQUEST["alarm_history"],$_REQUEST["alert_history"],
+ $result=update_config($_REQUEST["event_history"],$_REQUEST["alert_history"],
$_REQUEST["refresh_unsupported"],$_REQUEST["work_period"]);
show_messages($result, S_CONFIGURATION_UPDATED, S_CONFIGURATION_WAS_NOT_UPDATED);
if($result)
{
add_audit(AUDIT_ACTION_UPDATE,AUDIT_RESOURCE_ZABBIX_CONFIG,
- "Alarm history [".$_REQUEST["alarm_history"]."]".
+ "Alarm history [".$_REQUEST["event_history"]."]".
" alert history [".$_REQUEST["alert_history"]."]".
" refresh unsupported items [".$_REQUEST["refresh_unsupported"]."]");
}
@@ -314,26 +247,45 @@
if(isset($_REQUEST["valuemapid"]))
{
$result = update_valuemap($_REQUEST["valuemapid"],$_REQUEST["mapname"], $mapping);
- $msg_ok = S_VALUE_MAP_UPDATED;
- $msg_fail = S_CANNNOT_UPDATE_VALUE_MAP;
+ $audit_action = AUDIT_ACTION_UPDATE;
+ $msg_ok = S_VALUE_MAP_UPDATED;
+ $msg_fail = S_CANNNOT_UPDATE_VALUE_MAP;
+ $valuemapid = $_REQUEST["valuemapid"];
}
else
{
+ if(count(get_accessible_nodes_by_user($USER_DETAILS,PERM_READ_WRITE,PERM_MODE_LT,
+ PERM_RES_IDS_ARRAY,$ZBX_CURNODEID)))
+ {
+ access_deny();
+ }
$result = add_valuemap($_REQUEST["mapname"], $mapping);
- $msg_ok = S_VALUE_MAP_ADDED;
- $msg_fail = S_CANNNOT_ADD_VALUE_MAP;
+ $audit_action = AUDIT_ACTION_ADD;
+ $msg_ok = S_VALUE_MAP_ADDED;
+ $msg_fail = S_CANNNOT_ADD_VALUE_MAP;
+ $valuemapid = $result;
}
if($result)
{
+ add_audit($audit_action, AUDIT_RESOURCE_VALUE_MAP,
+ S_VALUE_MAP." [".$_REQUEST["mapname"]."] [".$valuemapid."]");
unset($_REQUEST["form"]);
}
show_messages($result,$msg_ok, $msg_fail);
}
elseif(isset($_REQUEST["delete"]) && isset($_REQUEST["valuemapid"]))
{
- $result = delete_valuemap($_REQUEST["valuemapid"]);
+ $result = false;
+
+ if(($map_data = DBfetch(DBselect("select * from valuemaps where ".DBid2nodeid("valuemapid")."=".$ZBX_CURNODEID.
+ " and valuemapid=".$_REQUEST["valuemapid"]))))
+ {
+ $result = delete_valuemap($_REQUEST["valuemapid"]);
+ }
if($result)
{
+ add_audit(AUDIT_ACTION_DELETE, AUDIT_RESOURCE_VALUE_MAP,
+ S_VALUE_MAP." [".$map_data["name"]."] [".$map_data['valuemapid']."]");
unset($_REQUEST["form"]);
}
show_messages($result, S_VALUE_MAP_DELETED, S_CANNNOT_DELETE_VALUE_MAP);
@@ -347,7 +299,6 @@
$form = new CForm("config.php");
$cmbConfig = new CCombobox("config",$_REQUEST["config"],"submit()");
$cmbConfig->AddItem(0,S_HOUSEKEEPER);
- $cmbConfig->AddItem(1,S_MEDIA_TYPES);
// $cmbConfig->AddItem(2,S_ESCALATION_RULES);
$cmbConfig->AddItem(3,S_IMAGES);
$cmbConfig->AddItem(4,S_AUTOREGISTRATION);
@@ -357,10 +308,6 @@
$form->AddItem($cmbConfig);
switch($_REQUEST["config"])
{
- case 1:
- $form->AddItem(SPACE."|".SPACE);
- $form->AddItem(new CButton("form",S_CREATE_MEDIA_TYPE));
- break;
case 3:
$form->AddItem(SPACE."|".SPACE);
$form->AddItem(new CButton("form",S_CREATE_IMAGE));
@@ -374,7 +321,7 @@
$form->AddItem(new CButton("form",S_CREATE_VALUE_MAP));
break;
}
- show_header2(S_CONFIGURATION_OF_ZABBIX_BIG, $form);
+ show_table_header(S_CONFIGURATION_OF_ZABBIX_BIG, $form);
echo BR;
?>
@@ -391,41 +338,6 @@
{
insert_work_period_form();
}
- elseif($_REQUEST["config"]==1)
- {
- if(isset($_REQUEST["form"]))
- {
- insert_media_type_form();
- }
- else
- {
- show_table_header(S_MEDIA_TYPES_BIG);
-
- $table=new CTableInfo(S_NO_MEDIA_TYPES_DEFINED);
- $table->setHeader(array(S_DESCRIPTION,S_TYPE));
-
- $result=DBselect("select mt.mediatypeid,mt.type,mt.description,mt.smtp_server,".
- "mt.smtp_helo,mt.smtp_email,mt.exec_path from media_type mt".
- " where mod(mt.mediatypeid,100)=".$ZBX_CURNODEID.
- " order by mt.type");
- while($row=DBfetch($result))
- {
- $description=new CLink($row["description"],"config.php?&form=update".
- url_param("config")."&mediatypeid=".$row["mediatypeid"],'action');
-
- if($row["type"]==ALERT_TYPE_EMAIL) $type=S_EMAIL;
- else if($row["type"]==ALERT_TYPE_EXEC) $type=S_SCRIPT;
- else if($row["type"]==ALERT_TYPE_SMS) $type=S_SMS;
- else $type=S_UNKNOWN;
-
- $table->addRow(array(
-// $row["mediatypeid"],
- $description,
- $type));
- }
- $table->show();
- }
- }
elseif($_REQUEST["config"]==3)
{
if(isset($_REQUEST["form"]))
@@ -437,10 +349,10 @@
show_table_header(S_IMAGES_BIG);
$table=new CTableInfo(S_NO_IMAGES_DEFINED);
- $table->setHeader(array(S_ID,S_NAME,S_TYPE,S_IMAGE));
+ $table->setHeader(array(S_NAME,S_TYPE,S_IMAGE));
$result=DBselect("select imageid,imagetype,name from images".
- " where mod(imageid,100)=".$ZBX_CURNODEID.
+ " where ".DBid2nodeid("imageid")."=".$ZBX_CURNODEID.
" order by name");
while($row=DBfetch($result))
{
@@ -452,7 +364,6 @@
"&imageid=".$row["imageid"],'action');
$table->addRow(array(
- $row["imageid"],
$name,
$imagetype,
$actions=new CLink(
@@ -474,10 +385,10 @@
show_table_header(S_AUTOREGISTRATION_RULES_BIG);
$table=new CTableInfo(S_NO_AUTOREGISTRATION_RULES_DEFINED);
- $table->setHeader(array(S_ID,S_PRIORITY,S_PATTERN,S_HOST));
+ $table->setHeader(array(S_PRIORITY,S_PATTERN,S_HOST));
$result=DBselect("select * from autoreg".
- " where mod(id,100)=".$ZBX_CURNODEID.
+ " where ".DBid2nodeid("id")."=".$ZBX_CURNODEID.
" order by priority");
while($row=DBfetch($result))
{
@@ -495,7 +406,6 @@
'action');
$table->addRow(array(
- $row["id"],
$row["priority"],
$pattern,
$name));
@@ -515,13 +425,12 @@
$table = new CTableInfo();
$table->SetHeader(array(S_NAME, S_VALUE_MAP));
- $db_valuemaps = DBselect("select * from valuemaps");
+ $db_valuemaps = DBselect("select * from valuemaps where ".DBid2nodeid("valuemapid")."=".$ZBX_CURNODEID);
while($db_valuemap = DBfetch($db_valuemaps))
{
$mappings_row = array();
$db_maps = DBselect("select * from mappings".
- " where valuemapid=".$db_valuemap["valuemapid"].
- " and mod(valuemapid,100)=".$ZBX_CURNODEID);
+ " where valuemapid=".$db_valuemap["valuemapid"]);
while($db_map = DBfetch($db_maps))
{
array_push($mappings_row,
@@ -541,7 +450,8 @@
}
}
?>
-
<?php
- show_page_footer();
+
+include_once "include/page_footer.php";
+
?>