*/ class auth_zbxe extends auth_basic { var $url = array(); function auth_zbxe() { global $conf; define('__ZBXE__', true); $config_file = $conf['auth']['zbxe']['path']."files/config/db.config.php"; require_once ($config_file); $this->url['path'] = $conf['auth']['zbxe']['path']; $this->url['db_prefix'] = $db_info->db_table_prefix; $this->url['host'] = $db_info->db_hostname; $this->url['user'] = $db_info->db_userid; $this->url['pass'] = $db_info->db_password; $this->url['database'] = $db_info->db_database; // 데이터베이스 연결 $this->url['link'] = mysql_connect($this->url['host'], $this->url['user'], $this->url['pass']); if (!$this->url['link']) { msg('데이터베이스 서버에 연결할 수 없습니다: ' . mysql_error()); $this->success = false; return; } if (!mysql_select_db($this->url['database'], $this->url['link'])) { msg('데이터베이스에 연결할 수 없습니다: ' . mysql_error()); $this->success = false; return; } mysql_query("set names utf8"); // PHP 4때문에 destructor를 명시적 선언 register_shutdown_function("auth_zbxe_disconnect", $this); } // 패스워드 체크하는 함수 function checkPass($user, $pass) { $query = "select count(*) from ".$this->url['db_prefix']."_member where user_id='$user' and password=MD5('$pass')"; $result = mysql_query($query); if(!$result){ msg('잘못된 쿼리: ' . mysql_error()); return false; } $count = mysql_result($result, 0, 0); return ($count == 1 ? true: false); } // 유저 정보를 리턴 // // name : 문자열, 유저이름 // mail : 문자열, 메일주소 // grps : 배열, 유저의 그룹 목록 function getUserData($user) { global $conf; $query = "select user_name, email_address, member_srl from ".$this->url['db_prefix']."_member where user_id='$user'"; $result = mysql_query($query); if(!$result) return null; if($data = mysql_fetch_array($result)){ $info['name'] = $data[user_name]; $info['mail'] = $data[email_address]; $member_srl = $data[member_srl]; } $group_table = $this->url['db_prefix']."_member_group"; $group_member_table = $this->url['db_prefix']."_member_group_member"; $query = "select g.title as title from ".$group_table." g, ".$group_member_table." gm where g.group_srl = gm.group_srl and gm.member_srl = '$member_srl'"; $result = mysql_query($query); if (!$result){ msg('쿼리 실패: ' . mysql_error()); return false; } while($data = mysql_fetch_array($result)){ if(strpos($conf['auth']['zbxe']['user'], $data[title]) !== FALSE){ $info['grps'][] = 'user'; } if(strpos($conf['auth']['zbxe']['admin'], $data[title]) !== FALSE){ $info['grps'][] = 'admin'; } } return $info; } } function auth_zbxe_disconnect($obj) { mysql_close($obj->url['link']); } ?>