summaryrefslogtreecommitdiffstats
path: root/frontends/php/screenconf.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/screenconf.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/screenconf.php')
-rw-r--r--frontends/php/screenconf.php78
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";
+
?>