array(T_ZBX_INT, O_OPT, null, IN("0,1"), null), "perm_details"=>array(T_ZBX_INT, O_OPT, null, IN("0,1"), null), /* user */ "userid"=> array(T_ZBX_INT, O_NO, P_SYS, DB_ID,'{config}==0&&{form}=="update"'), "group_userid"=>array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, null), "alias"=> array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, '{config}==0&&isset({save})'), "name"=> array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, '{config}==0&&isset({save})'), "surname"=> array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, '{config}==0&&isset({save})'), "password1"=> array(T_ZBX_STR, O_OPT, null, null, '{config}==0&&isset({save})&&{form}!="update"&&isset({change_password})'), "password2"=> array(T_ZBX_STR, O_OPT, null, null, '{config}==0&&isset({save})&&{form}!="update"&&isset({change_password})'), "user_type"=> array(T_ZBX_INT, O_OPT, null, IN('1,2,3'), '{config}==0&&isset({save})'), "user_groups"=> array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, '{config}==0&&isset({save})'), "user_groups_to_del"=> array(T_ZBX_INT, O_OPT, null, DB_ID, null), "user_medias"=> array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, null), "user_medias_to_del"=> array(T_ZBX_STR, O_OPT, null, DB_ID, null), "new_group"=> array(T_ZBX_STR, O_OPT, null, null, null), "new_media"=> array(T_ZBX_STR, O_OPT, null, null, null), "enable_media"=>array(T_ZBX_INT, O_OPT, null, null, null), "disable_media"=>array(T_ZBX_INT, O_OPT,null, null, null), "lang"=> array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, '{config}==0&&isset({save})'), "autologout"=> array(T_ZBX_INT, O_OPT, null, BETWEEN(0,3600),'{config}==0&&isset({save})'), "url"=> array(T_ZBX_STR, O_OPT, null, null, '{config}==0&&isset({save})'), "refresh"=> array(T_ZBX_INT, O_OPT, null, BETWEEN(0,3600),'{config}==0&&isset({save})'), "right"=> array(T_ZBX_STR, O_NO, null, NOT_EMPTY, '{register}=="add permission"&&isset({userid})'), "permission"=> array(T_ZBX_STR, O_NO, null, NOT_EMPTY, '{register}=="add permission"&&isset({userid})'), "id"=> array(T_ZBX_INT, O_NO, null, DB_ID, '{register}=="add permission"&&isset({userid})'), "rightid"=> array(T_ZBX_INT, O_NO, null, DB_ID, '{register}=="delete permission"&&isset({userid})'), /* group */ "usrgrpid"=> array(T_ZBX_INT, O_NO, P_SYS, DB_ID,'{config}==1&&{form}=="update"'), "group_groupid"=>array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, null), "gname"=> array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, '{config}==1&&isset({save})'), "users"=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, null), "new_right"=> array(T_ZBX_STR, O_OPT, null, null, null), "new_user"=> array(T_ZBX_STR, O_OPT, null, null, null), "right_to_del"=>array(T_ZBX_STR, O_OPT, null, null, null), "group_users_to_del"=> array(T_ZBX_STR, O_OPT, null, null, null), "group_users"=> array(T_ZBX_STR, O_OPT, null, null, null), "group_rights"=>array(T_ZBX_STR, O_OPT, null, null, null), /* actions */ "register"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, IN('"add permission","delete permission"'), null), "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), "delete_selected"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), "del_user_group"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), "del_user_media"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), "del_read_only"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), "del_read_write"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), "del_deny"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), "del_group_user"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), "add_read_only"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), "add_read_write"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), "add_deny"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), "change_password"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null), "cancel"=> array(T_ZBX_STR, O_OPT, P_SYS, null, null), /* other */ "form"=> array(T_ZBX_STR, O_OPT, P_SYS, null, null), "form_refresh"=>array(T_ZBX_STR, O_OPT, null, null, null) ); check_fields($fields); if(isset($_REQUEST["usrgrpid"]) and DBfetch(DBselect('select id from users_groups where userid='.$USER_DETAILS['userid'].' and usrgrpid='.$_REQUEST["usrgrpid"]))) { access_deny(); } ?> AddItem(0,S_USERS); $cmbConf->AddItem(1,S_USER_GROUPS); $frmForm->AddItem($cmbConf); $frmForm->AddItem(SPACE."|".SPACE); $frmForm->AddItem($btnNew = new CButton("form",($_REQUEST["config"] == 0) ? S_CREATE_USER : S_CREATE_GROUP)); show_table_header(S_CONFIGURATION_OF_USERS_AND_USER_GROUPS, $frmForm); echo BR; ?> SetName('users'); show_table_header(S_USERS_BIG); $table=new CTableInfo(S_NO_USERS_DEFINED); $table->setHeader(array( array( new CCheckBox("all_users",NULL, "CheckAll('".$form->GetName()."','all_users');"), S_ALIAS ), S_NAME,S_SURNAME,S_USER_TYPE,S_GROUPS,S_IS_ONLINE_Q)); $db_users=DBselect("select userid,alias,name,surname,type,autologout ". " from users where ".DBid2nodeid('userid')."=".$ZBX_CURNODEID. " order by alias"); while($db_user=DBfetch($db_users)) { $db_sessions = DBselect("select count(*) as count, max(s.lastaccess) as lastaccess". " from sessions s, users u". " where s.userid=".$db_user["userid"]." and s.userid=u.userid and (s.lastaccess+u.autologout)>=".time()); $db_ses_cnt=DBfetch($db_sessions); if($db_ses_cnt["count"]>0 || $db_user["autologout"] == 0) $online=new CCol(S_YES.' ('.date('r',$db_ses_cnt['lastaccess']).')',"enabled"); else $online=new CCol(S_NO,"disabled"); $user_groups = array(); $db_groups = DBselect("select g.name from usrgrp g, users_groups ug". " where g.usrgrpid=ug.usrgrpid and ug.userid=".$db_user['userid']); while($db_group = DBfetch($db_groups)) array_push($user_groups,$db_group['name']); $table->addRow(array( array( new CCheckBox("group_userid[]",NULL,NULL,$db_user["userid"]), new CLink($db_user["alias"], "users.php?form=update".url_param("config"). "&userid=".$db_user["userid"]."#form", 'action') ), $db_user["name"], $db_user["surname"], user_type2str($db_user['type']), implode(BR,$user_groups), $online )); } $table->SetFooter(new CCol(new CButton('delete_selected',S_DELETE_SELECTED, "return Confirm('".S_DELETE_SELECTED_USERS_Q."');"))); $form->AddItem($table); $form->show(); } } elseif($_REQUEST["config"]==1) { if(isset($_REQUEST["form"])) { insert_usergroups_form(); } else { show_table_header(S_USER_GROUPS_BIG); $form = new CForm(); $table = new CTableInfo(S_NO_USER_GROUPS_DEFINED); $table->setHeader(array( array( new CCheckBox("all_groups",NULL, "CheckAll('".$form->GetName()."','all_groups');"), S_NAME), S_MEMBERS)); $result=DBselect("select usrgrpid,name from usrgrp". " where ".DBid2nodeid('usrgrpid')."=".$ZBX_CURNODEID. " order by name"); while($row=DBfetch($result)) { $users = array(); $db_users=DBselect("select distinct u.alias,u.userid from users u,users_groups ug ". "where u.userid=ug.userid and ug.usrgrpid=".$row["usrgrpid"]. " order by alias"); while($db_user=DBfetch($db_users)) $users[$db_user['userid']] = $db_user["alias"]; if(isset($users[$USER_DETAILS['userid']])) continue; $table->addRow(array( array( new CCheckBox("group_groupid[]",NULL,NULL,$row["usrgrpid"]), $alias = new CLink($row["name"], "users.php?form=update".url_param("config"). "&usrgrpid=".$row["usrgrpid"]."#form", 'action') ), implode(', ',$users))); } $table->SetFooter(new CCol(new CButton('delete_selected',S_DELETE_SELECTED, "return Confirm('".S_DELETE_SELECTED_GROUPS_Q."');"))); $form->AddItem($table); $form->Show(); } } ?>