summaryrefslogtreecommitdiffstats
path: root/frontends/php/scripts.php
diff options
context:
space:
mode:
authorartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-04-28 15:25:52 +0000
committerartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-04-28 15:25:52 +0000
commit4c6e81cdcb98236655c4612143a2fb74fa28b585 (patch)
tree9c17dbd4c2e9a10ddcb4923fc40fca9110c6feea /frontends/php/scripts.php
parent787911115963265dd4a9c8cae9178c4868c57e55 (diff)
downloadzabbix-4c6e81cdcb98236655c4612143a2fb74fa28b585.tar.gz
zabbix-4c6e81cdcb98236655c4612143a2fb74fa28b585.tar.xz
zabbix-4c6e81cdcb98236655c4612143a2fb74fa28b585.zip
- [DEV-154] added more flexibility to scripts (Artem)
- [DEV-156] added the link from Status of Triggers to Latest data when clicking on a host (Artem) - [DEV-137] small improvements to GUI (Artem) git-svn-id: svn://svn.zabbix.com/trunk@5664 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/scripts.php')
-rw-r--r--frontends/php/scripts.php91
1 files changed, 76 insertions, 15 deletions
diff --git a/frontends/php/scripts.php b/frontends/php/scripts.php
index 4dececf4..95875cf5 100644
--- a/frontends/php/scripts.php
+++ b/frontends/php/scripts.php
@@ -22,6 +22,7 @@
include_once "include/config.inc.php";
require_once "include/hosts.inc.php";
require_once "include/scripts.inc.php";
+ require_once "include/users.inc.php";
$page['title'] = "S_SCRIPTS";
$page['file'] = 'scripts.php';
@@ -45,7 +46,9 @@ include_once "include/page_header.php";
// form
'name'=> array(T_ZBX_STR, O_OPT, NULL, NOT_EMPTY, 'isset({save})'),
'command'=> array(T_ZBX_STR, O_OPT, NULL, NOT_EMPTY, 'isset({save})'),
- 'access'=> array(T_ZBX_INT, O_OPT, NULL, IN('0,1'), 'isset({save})'),
+ 'access'=> array(T_ZBX_INT, O_OPT, NULL, IN('0,1,2,3'), 'isset({save})'),
+ 'groupid'=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, 'isset({save})'),
+ 'usrgrpid'=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, 'isset({save})'),
'form'=> array(T_ZBX_STR, O_OPT, NULL, NULL, null),
'form_refresh'=> array(T_ZBX_INT, O_OPT, NULL, NULL, null),
@@ -67,14 +70,14 @@ if(isset($_REQUEST['action'])){
else{
if(isset($_REQUEST['scriptid'])){
- $result = update_script($_REQUEST['scriptid'],$_REQUEST['name'],$_REQUEST['command'],$_REQUEST['access']);
+ $result = update_script($_REQUEST['scriptid'],$_REQUEST['name'],$_REQUEST['command'],$_REQUEST['usrgrpid'],$_REQUEST['groupid'],$_REQUEST['access']);
show_messages($result, S_SCRIPT_UPDATED, S_CANNOT_UPDATE_SCRIPT);
$scriptid = $_REQUEST['scriptid'];
$audit_acrion = AUDIT_ACTION_UPDATE;
}
else {
- $result = add_script($_REQUEST['name'],$_REQUEST['command'],$_REQUEST['access']);
+ $result = add_script($_REQUEST['name'],$_REQUEST['command'],$_REQUEST['usrgrpid'],$_REQUEST['groupid'],$_REQUEST['access']);
show_messages($result, S_SCRIPT_ADDED, S_CANNOT_ADD_SCRIPT);
$scriptid = $result;
@@ -117,6 +120,7 @@ if(isset($_REQUEST['action'])){
}
if(isset($_REQUEST['form'])){
+ $available_groups = get_accessible_groups_by_user($USER_DETAILS,PERM_READ_ONLY);
show_table_header(S_SCRIPTS);
echo SBR;
@@ -126,16 +130,25 @@ if(isset($_REQUEST['form'])){
if(isset($_REQUEST['scriptid'])) $frmScr->AddVar('scriptid',$_REQUEST['scriptid']);
- $name = get_request('name','');
- $command = get_request('command','');
- $access = get_request('access', SCRIPT_HOST_ACCESS_READ);
-
+ if(!isset($_REQUEST['scriptid']) || isset($_REQUEST['form_refresh'])){
+ $name = get_request('name','');
+ $command = get_request('command','');
+
+ $usrgrpid = get_request('usrgrpid', 0);
+ $groupid = get_request('groupid', 0);
+
+ $access = get_request('access', PERM_READ_ONLY);
+ }
if(isset($_REQUEST['scriptid']) && !isset($_REQUEST['form_refresh'])){
$frmScr->AddVar('form_refresh',get_request('form_refresh',1));
if($script = get_script_by_scriptid($_REQUEST['scriptid'])){
$name = $script['name'];
$command = $script['command'];
+
+ $usrgrpid = $script['usrgrpid'];
+ $groupid = $script['groupid'];
+
$access = $script['host_access'];
}
}
@@ -143,9 +156,38 @@ if(isset($_REQUEST['form'])){
$frmScr->AddRow(S_NAME,new CTextBox('name',$name,80));
$frmScr->AddRow(S_COMMAND,new CTextBox('command',$command,80));
- $select_acc = new CCombobox('access');
- $select_acc->AddItem(SCRIPT_HOST_ACCESS_READ,S_READ,(($access == SCRIPT_HOST_ACCESS_READ)?'yes':'no'));
- $select_acc->AddItem(SCRIPT_HOST_ACCESS_WRITE,S_WRITE,(($access == SCRIPT_HOST_ACCESS_WRITE)?'yes':'no'));
+ $usr_groups = new CCombobox('usrgrpid',$usrgrpid);
+ $usr_groups->AddItem(0,S_ALL);
+
+ $sql = 'SELECT DISTINCT ug.name, ug.usrgrpid '.
+ ' FROM usrgrp ug '.
+ ' ORDER BY ug.name';
+
+ $usrgrp_result = DBselect($sql);
+ while($usr_group=DBfetch($usrgrp_result)){
+ $usr_groups->AddItem($usr_group['usrgrpid'],$usr_group['name']);
+ }
+
+ $frmScr->AddRow(S_USER_GROUPS,$usr_groups);
+
+ $host_groups = new CCombobox('groupid',$groupid);
+ $host_groups->AddItem(0,S_ALL);
+
+ $sql = 'SELECT DISTINCT g.name, g.groupid '.
+ ' FROM groups g '.
+ ' WHERE g.groupid IN ('.$available_groups.') '.
+ ' ORDER BY g.name';
+
+ $grp_result = DBselect($sql);
+ while($group=DBfetch($grp_result)){
+ $host_groups->AddItem($group['groupid'],$group['name']);
+ }
+
+ $frmScr->AddRow(S_HOST_GROUPS,$host_groups);
+
+ $select_acc = new CCombobox('access',$access);
+ $select_acc->AddItem(PERM_READ_ONLY,S_READ);
+ $select_acc->AddItem(PERM_READ_WRITE,S_WRITE);
$frmScr->AddRow(S_REQUIRED_HOST.SPACE.S_PERMISSIONS_SMALL,$select_acc);
@@ -165,17 +207,34 @@ else {
$table=new CTableInfo(S_NO_SCRIPTS_DEFINED);
$table->setHeader(array(
array(new CCheckBox('all_scripts',null,"CheckAll('".$form->GetName()."','all_scripts');"),S_NAME),
- S_COMMAND, S_HOST_ACCESS
+ S_COMMAND,
+ S_USER_GROUP,
+ S_HOST_GROUP,
+ S_HOST_ACCESS
)
);
- $sql = 'SELECT * FROM scripts '.
- ' WHERE '.DBin_node('scriptid').
- ' ORDER BY scriptid ASC';
+ $sql = 'SELECT s.* '.
+ ' FROM scripts s '.
+ ' WHERE '.DBin_node('s.scriptid').
+ ' ORDER BY s.scriptid ASC';
$scripts=DBselect($sql);
while($script=DBfetch($scripts)){
+
+ $user_group_name = S_ALL;
+ if($script['usrgrpid'] > 0){
+ $user_group = get_group_by_usrgrpid($script['usrgrpid']);
+ $user_group_name = $user_group['name'];
+ }
+
+ $host_group_name = S_ALL;
+ if($script['groupid'] > 0){
+ $group = get_hostgroup_by_groupid($script['groupid']);
+ $host_group_name = $group['name'];
+ }
+
$table->addRow(array(
array(
@@ -183,7 +242,9 @@ else {
new CLink($script['name'],'scripts.php?form=1'.'&scriptid='.$script['scriptid'].'#form','action')
),
htmlspecialchars($script['command']),
- (($script['host_access'] == SCRIPT_HOST_ACCESS_READ)?S_READ:S_WRITE)
+ $user_group_name,
+ $host_group_name,
+ ((PERM_READ_WRITE == $script['host_access'])?S_WRITE:S_READ)
));
}
$qbutton = new CButtonQMessage('delete',S_DELETE_SELECTED,S_DELETE_SELECTED_SCRIPTS_Q,'1');