$grou_pname) { $users_groups_id = get_dbid("users_groups","id"); $result = DBexecute('insert into users_groups (id,usrgrpid,userid)'. 'values('.$users_groups_id.','.$groupid.','.$userid.')'); if($result == false) break; } if($result) { DBexecute('delete from media where userid='.$userid); foreach($user_medias as $mediaid => $media_data) { $mediaid = get_dbid("media","mediaid"); $result = DBexecute('insert into media (mediaid,userid,mediatypeid,sendto,active,severity,period)'. ' values ('.$mediaid.','.$userid.','.$media_data['mediatypeid'].','. zbx_dbstr($media_data['sendto']).','.$media_data['active'].','.$media_data['severity'].','. zbx_dbstr($media_data['period']).')'); if($result == false) break; } } } return $result; } # Update User definition function update_user($userid,$name,$surname,$alias,$passwd, $url,$autologout,$lang,$refresh,$user_type,$user_groups,$user_medias) { if(DBfetch(DBselect("select * from users where alias=".zbx_dbstr($alias). " and userid<>$userid and ".DBin_node('userid', get_current_nodeid(false))))) { error("User '$alias' already exists"); return 0; } $result = DBexecute("update users set name=".zbx_dbstr($name).",surname=".zbx_dbstr($surname).","."alias=".zbx_dbstr($alias). (isset($passwd) ? (',passwd='.zbx_dbstr(md5($passwd))) : ''). ",url=".zbx_dbstr($url).","."autologout=$autologout,lang=".zbx_dbstr($lang).",refresh=$refresh,". "type=$user_type where userid=$userid"); if($result) { DBexecute('delete from users_groups where userid='.$userid); foreach($user_groups as $groupid => $grou_pname) { $users_groups_id = get_dbid("users_groups","id"); $result = DBexecute('insert into users_groups (id,usrgrpid,userid)'. 'values('.$users_groups_id.','.$groupid.','.$userid.')'); if($result == false) break; } if($result) { DBexecute('delete from media where userid='.$userid); foreach($user_medias as $mediaid => $media_data) { $mediaid = get_dbid("media","mediaid"); $result = DBexecute('insert into media (mediaid,userid,mediatypeid,sendto,active,severity,period)'. ' values ('.$mediaid.','.$userid.','.$media_data['mediatypeid'].','. zbx_dbstr($media_data['sendto']).','.$media_data['active'].','.$media_data['severity'].','. zbx_dbstr($media_data['period']).')'); if($result == false) break; } } } return $result; } # Update User definition function update_user_profile($userid,$passwd, $url,$autologout,$lang,$refresh) { global $USER_DETAILS; if($userid!=$USER_DETAILS["userid"]) { access_deny(); } return DBexecute("update users set url=".zbx_dbstr($url).",autologout=$autologout,lang=".zbx_dbstr($lang). (isset($passwd) ? (',passwd='.zbx_dbstr(md5($passwd))) : ''). ",refresh=$refresh where userid=$userid"); } # Delete User definition function delete_user($userid) { if(DBfetch(DBselect('select * from users where userid='.$userid.' and alias='.zbx_dbstr(ZBX_GUEST_USER)))) { error("Cannot delete user '".ZBX_GUEST_USER."'"); return false; } DBexecute('delete from operations where object='.OPERATION_OBJECT_USER.' and objectid='.$userid); $result = DBexecute('delete from media where userid='.$userid); if(!$result) return $result; $result = DBexecute('delete from profiles where userid='.$userid); if(!$result) return $result; $result = DBexecute('delete from users_groups where userid='.$userid); if(!$result) return $result; $result = DBexecute('delete from users where userid='.$userid); return $result; } function get_user_by_userid($userid) { if($row = DBfetch(DBselect("select * from users where userid=$userid"))) { return $row; } /* error("No user with id [$userid]"); */ return false; } /************************** USER GROUPS **************************/ function add_user_group($name,$users=array(),$rights=array()) { if(DBfetch(DBselect('select * from usrgrp where name='.zbx_dbstr($name).' and '.DBin_node('usrgrpid', get_current_nodeid(false))))) { error("Group '$name' already exists"); return 0; } $usrgrpid=get_dbid("usrgrp","usrgrpid"); $result=DBexecute("insert into usrgrp (usrgrpid,name) values ($usrgrpid,".zbx_dbstr($name).")"); if(!$result) return $result; $result=DBexecute("delete from users_groups where usrgrpid=".$usrgrpid); foreach($users as $userid => $name) { $id = get_dbid('users_groups','id'); $result=DBexecute('insert into users_groups (id,usrgrpid,userid) values ('.$id.','.$usrgrpid.','.$userid.')'); if(!$result) return $result; } $result=DBexecute("delete from rights where groupid=".$usrgrpid); foreach($rights as $right) { $id = get_dbid('rights','rightid'); $result=DBexecute('insert into rights (rightid,groupid,type,permission,id)'. ' values ('.$id.','.$usrgrpid.','.$right['type'].','.$right['permission'].','.$right['id'].')'); if(!$result) return $result; } return $result; } function update_user_group($usrgrpid,$name,$users=array(),$rights=array()) { if(DBfetch(DBselect('select * from usrgrp where name='.zbx_dbstr($name). ' and usrgrpid<>'.$usrgrpid.' and '.DBin_node('usrgrpid', get_current_nodeid(false))))) { error("Group '$name' already exists"); return 0; } $result=DBexecute("update usrgrp set name=".zbx_dbstr($name)." where usrgrpid=$usrgrpid"); if(!$result) { return $result; } $result=DBexecute("delete from users_groups where usrgrpid=".$usrgrpid); foreach($users as $userid => $name) { $id = get_dbid('users_groups','id'); $result=DBexecute('insert into users_groups (id,usrgrpid,userid) values ('.$id.','.$usrgrpid.','.$userid.')'); if(!$result) return $result; } $result=DBexecute("delete from rights where groupid=".$usrgrpid); foreach($rights as $right) { $id = get_dbid('rights','rightid'); $result=DBexecute('insert into rights (rightid,groupid,type,permission,id)'. ' values ('.$id.','.$usrgrpid.','.$right['type'].','.$right['permission'].','.$right['id'].')'); if(!$result) return $result; } return $result; } function delete_user_group($usrgrpid) { $result = DBexecute("delete from rights where groupid=$usrgrpid"); if(!$result) return $result; DBexecute('delete from operations where object='.OPERATION_OBJECT_GROUP.' and objectid='.$usrgrpid); $result = DBexecute("delete from users_groups where usrgrpid=$usrgrpid"); if(!$result) return $result; $result = DBexecute("delete from usrgrp where usrgrpid=$usrgrpid"); return $result; } function get_group_by_usrgrpid($usrgrpid) { if($row = DBfetch(DBselect("select * from usrgrp where usrgrpid=".$usrgrpid))) { return $row; } /* error("No user groups with id [$usrgrpid]"); */ return FALSE; } ?>