diff options
author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-10-23 07:34:27 +0000 |
---|---|---|
committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-10-23 07:34:27 +0000 |
commit | 28a09ed13e41ddbe5e30d63e92a1f5fb3395ef89 (patch) | |
tree | 8281ccd48964ee0dd11c5ea689091fa3cef706fb /frontends/php/config.php | |
parent | 495799b2aa61aab23d74d7faa110a0cd09d59bf0 (diff) | |
download | zabbix-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.php | 216 |
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"; + ?> |