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/screenconf.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/screenconf.php')
-rw-r--r-- | frontends/php/screenconf.php | 78 |
1 files changed, 53 insertions, 25 deletions
diff --git a/frontends/php/screenconf.php b/frontends/php/screenconf.php index e7290736..0c79a379 100644 --- a/frontends/php/screenconf.php +++ b/frontends/php/screenconf.php @@ -19,54 +19,81 @@ **/ ?> <?php - include "include/config.inc.php"; - include "include/forms.inc.php"; + require_once "include/config.inc.php"; + require_once "include/screens.inc.php"; + require_once "include/forms.inc.php"; $page["title"] = "S_SCREENS"; $page["file"] = "screenconf.php"; - show_header($page["title"],0,0); + +include_once "include/page_header.php"; + insert_confirm_javascript(); ?> - <?php - if(!check_right("Screen","U",0)) - { - show_table_header("<font color=\"AA0000\">No permissions !</font>"); - show_page_footer(); - exit; - } - update_profile("web.menu.config.last",$page["file"]); -?> +// VAR TYPE OPTIONAL FLAGS VALIDATION EXCEPTION + $fields=array( + "screenid"=> array(T_ZBX_INT, O_NO, P_SYS, DB_ID, '{form}=="update"'), + "name"=> array(T_ZBX_STR, O_OPT, NULL, NOT_EMPTY, 'isset({save})'), + "hsize"=> array(T_ZBX_INT, O_OPT, NULL, BETWEEN(1,100), 'isset({save})'), + "vsize"=> array(T_ZBX_INT, O_OPT, NULL, BETWEEN(1,100), 'isset({save})'), + + "save"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL), + "delete"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL), + "cancel"=> array(T_ZBX_STR, O_OPT, P_SYS, NULL, NULL), + "form"=> array(T_ZBX_STR, O_OPT, P_SYS, NULL, NULL), + "form_refresh"=> array(T_ZBX_INT, O_OPT, NULL, NULL, NULL) + ); + check_fields($fields); +?> <?php - if(isset($_REQUEST["save"])){ + if(isset($_REQUEST["screenid"])) + { + if(!screen_accessiable($_REQUEST["screenid"], PERM_READ_WRITE)) + access_deny(); + } + + if(isset($_REQUEST["save"])) + { if(isset($_REQUEST["screenid"])) { + // TODO check permission by new value. $result=update_screen($_REQUEST["screenid"], $_REQUEST["name"],$_REQUEST["hsize"],$_REQUEST["vsize"]); + $audit_action = AUDIT_ACTION_UPDATE; show_messages($result, S_SCREEN_UPDATED, S_CANNOT_UPDATE_SCREEN); } 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_screen($_REQUEST["name"],$_REQUEST["hsize"],$_REQUEST["vsize"]); + $audit_action = AUDIT_ACTION_ADD; show_messages($result,S_SCREEN_ADDED,S_CANNOT_ADD_SCREEN); } if($result){ + add_audit($audit_action,AUDIT_RESOURCE_SCREEN," Name [".$_REQUEST['name']."] "); unset($_REQUEST["form"]); unset($_REQUEST["screenid"]); } } if(isset($_REQUEST["delete"])&&isset($_REQUEST["screenid"])) { - $result=delete_screen($_REQUEST["screenid"]); - show_messages($result, S_SCREEN_DELETED, S_CANNOT_DELETE_SCREEN); + if($screen = get_screen_by_screenid($_REQUEST["screenid"])) + { + $result = delete_screen($_REQUEST["screenid"]); + show_messages($result, S_SCREEN_DELETED, S_CANNOT_DELETE_SCREEN); + add_audit_if($result, AUDIT_ACTION_DELETE,AUDIT_RESOURCE_SCREEN," Name [".$screen['name']."] "); + } unset($_REQUEST["screenid"]); + unset($_REQUEST["form"]); } ?> - <?php $form = new CForm("screenconf.php"); $form->AddItem(new CButton("form",S_CREATE_SCREEN)); - show_header2(S_CONFIGURATION_OF_SCREENS_BIG, $form); + show_table_header(S_CONFIGURATION_OF_SCREENS_BIG, $form); echo BR; if(isset($_REQUEST["form"])) @@ -75,29 +102,30 @@ } else { - show_header2(S_SCREENS_BIG); + show_table_header(S_SCREENS_BIG); $table = new CTableInfo(S_NO_SCREENS_DEFINED); - $table->setHeader(array(S_ID,S_NAME,S_DIMENSION_COLS_ROWS,S_SCREEN)); + $table->SetHeader(array(S_NAME,S_DIMENSION_COLS_ROWS,S_SCREEN)); - $result=DBselect("select screenid,name,hsize,vsize from screens where mod(screenid,100)=$ZBX_CURNODEID". + $result=DBselect("select screenid,name,hsize,vsize from screens where ".DBid2nodeid("screenid")."=".$ZBX_CURNODEID. " order by name"); while($row=DBfetch($result)) { - if(!check_right("Screen","R",$row["screenid"])) continue; + if(!screen_accessiable($row["screenid"], PERM_READ_WRITE)) continue; - $table->addRow(array( - $row["screenid"], + $table->AddRow(array( new CLink($row["name"],"screenconf.php?form=update&screenid=".$row["screenid"], 'action'), $row["hsize"]." x ".$row["vsize"], new CLink(S_EDIT,"screenedit.php?screenid=".$row["screenid"]) )); } - $table->show(); + $table->Show(); } ?> <?php - show_page_footer(); + +include_once "include/page_footer.php"; + ?> |