웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
ZBXE용 모니위키 연동 플러그인 소스
2007.10.17 18:40
제 블로그에 올린 글을 복사해 넣었기 때문에 경어체로 작성되었음을 양해해주시기 바랍니다.
모니위키를 쓰시는 분께서만 참고하시기 바랍니다. 질문이 있으신 분께선 댓글을 확인하지 못하는 경우가 많으므로 제 홈피나 쪽지로 질문해주십시오.
잘 짠 코드는 아닙니다만 누군가에게 도움이 되시길 바랍니다.
※ 회사에서 사용하는 인트라넷용으로 작성했기 때문에 사용예를 보여드릴 수 없음을 양해바랍니다.
※ 이 코드는 MySQL과 연동되는 ZBXE상에서만 구동됩니다. 테스트 환경 PHP 5, MySQL 5, Apache 2 (각 최신버전), ZBXE 0.2.3
원문 : http://www.digist.co.kr/bbs/98731
※ 본 코드의 사용으로 인한 어떠한 문제에도 책임을 지지 않음
소스를 보다시피 리눅스 환경에서 MySQL을 DB로 사용하는 제로보드 XE 유저에게만 해당되는 코드이다. 사용할때엔 위의 소스코드를 Copy & Paste해서 'zbxe.php'라는 이름으로 저장한 뒤 모니위키가 설치된 디렉토리 아래 '/plugin/security' 디렉토리 안에 카피해넣으면 된다. 단, 위의 코드에서 개행된 코드는 한줄로 이어져야 한다.
그 다음 설치 디렉토리의 config.php에
위와 같이 기입해주면 된다.
모니위키를 쓰시는 분께서만 참고하시기 바랍니다. 질문이 있으신 분께선 댓글을 확인하지 못하는 경우가 많으므로 제 홈피나 쪽지로 질문해주십시오.
잘 짠 코드는 아닙니다만 누군가에게 도움이 되시길 바랍니다.
※ 회사에서 사용하는 인트라넷용으로 작성했기 때문에 사용예를 보여드릴 수 없음을 양해바랍니다.
※ 이 코드는 MySQL과 연동되는 ZBXE상에서만 구동됩니다. 테스트 환경 PHP 5, MySQL 5, Apache 2 (각 최신버전), ZBXE 0.2.3
원문 : http://www.digist.co.kr/bbs/98731
※ 본 코드의 사용으로 인한 어떠한 문제에도 책임을 지지 않음
<?php # ZBXE authentication plugin for Moniwiki # Written by Venister(venister@empal.com, http://www.digist.co.kr) class Security_zbxe extends Security { var $DB; var $grant_user = 0; function Security_zbxe($DB="") { $this->DB=$DB; $this->grant_user = 0; if($this->DB->zbxe_dir) session_save_path($this->DB->zbxe_dir."files/sessions/");
session_start(); $ui = $this->getLoggedInfo(); $id = $ui->user_id; $member_srl = $ui->member_srl; if ($this->isLogged() && $id != "") { $userdb=new UserDB($this->DB); $user=new User(); if ($userdb->_exists($id)) { $user=$userdb->getUser($id); $options['id']=$user->id; $options['login_id']=$user->id; $dummy=$user->setCookie(); $dummy=$userdb->saveUser($user); $this->grant_user = 1; } else { /* 유저 생성 부분 */ /* DB에 접속해서 유저 권한을 획득 */ // 제로보드로 속이기 위한 선언
define('__ZBXE__', true);
require_once ($this->DB->zbxe_dir."files/config/db.config.php"); if($db_info->db_type == "mysql"){ // MySQL Only $connect = mysql_connect($db_info->db_hostname, $db_info->db_userid, $db_info->db_password);
mysql_select_db($db_info->db_database, $connect); mysql_query("set names utf8");
$group_table = $db_info->db_table_prefix."_member_group"; $group_member_table = $db_info->db_table_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, $connect); $grant_member = FALSE; while($data = mysql_fetch_array($result)){ if(!(strpos($this->DB->zbxe_grant, $data[title]) === false)){ $grant_member = TRUE; break; } }
mysql_close($connect);
if($grant_member == TRUE){ // 유저등록 $user->id=$id; $options['id']=$user->id; $dummy=$userdb->addUser($user); $dummy=$user->setCookie(); $this->grant_user = 1; } }
} } function isLogged() { if($_SESSION['is_logged']&&$_SESSION['ipaddress'+ '+ ']==$_SERVER['REMOTE_ADDR']) return true; $_SESSION['is_logged'] = false; $_SESSION['logged_info'] = ''; return false; } function getLoggedInfo() { // 로그인 되어 있고 세션 정보를 요청하면 세션 정보를 return if($this->isLogged()) return $_SESSION['logged_info'];
return NULL; }
function is_allowed($action="read",&$options) { if($this->isLogged() == false || $this->grant_user == 0){ $options['err'].=sprintf(_("귀하는 이 페이지의 '%s'액션에 대한 작업권한을 가지고 있지 않습니다."),
$action); $options['err'].="\n"._("등록된 유저인지 확인해주시기 바랍니다.");
return 0; }
return $this->DB->_isWritable($options['page'+ ']); } function is_protected($action="read",$options) { if($this->isLogged() == false || $this->grant_user == 0){ $options['err'].=sprintf(_("귀하는 이 페이지의 '%s'액션에 대한 작업권한을 가지고 있지 않습니다."),
$action); $options['err'].="\n"._("등록된 유저인지 확인해주시기 바랍니다."); return 0; }
return 1; } function is_valid_password($passwd,$options) {
return 1; } } ?>
소스를 보다시피 리눅스 환경에서 MySQL을 DB로 사용하는 제로보드 XE 유저에게만 해당되는 코드이다. 사용할때엔 위의 소스코드를 Copy & Paste해서 'zbxe.php'라는 이름으로 저장한 뒤 모니위키가 설치된 디렉토리 아래 '/plugin/security' 디렉토리 안에 카피해넣으면 된다. 단, 위의 코드에서 개행된 코드는 한줄로 이어져야 한다.
그 다음 설치 디렉토리의 config.php에
$security_class="zbxe";
$zbxe_dir=""; // 제로보드가 설치된 디렉토리
$zbxe_grant=""; // 위키에 억세스 할 수 있도록 할 XE 유저그룹이름들. 여러개를 기입할 때엔 ;로 구분한다.
$no_register = 1; // 가입을 못하도록 하는 옵션
$control_read=1; // 위의 플러그인이 읽기 권한까지 제어하길 원하는 경우 1, 모두에게 공개하고 싶으면 0
$zbxe_dir=""; // 제로보드가 설치된 디렉토리
$zbxe_grant=""; // 위키에 억세스 할 수 있도록 할 XE 유저그룹이름들. 여러개를 기입할 때엔 ;로 구분한다.
$no_register = 1; // 가입을 못하도록 하는 옵션
$control_read=1; // 위의 플러그인이 읽기 권한까지 제어하길 원하는 경우 1, 모두에게 공개하고 싶으면 0
위와 같이 기입해주면 된다.
댓글 4
-
주하니
2007.10.18 01:27
-
주하니
2007.10.18 02:18
개행된 코드가 한줄로 이루어 진다는게 무슨 말인지요? -
베니
2007.10.18 07:45
그냥 너무 길어서 2줄로 된걸 한줄로 쓰시라는겁니다. -
가나
2010.01.12 14:55
이거 해봤는데 안되요.
저는 xe 최신버전 1.5 써요.
제목 | 글쓴이 | 날짜 |
---|---|---|
메뉴에 플래시 적용하기 [7] | 지허 | 2007.10.23 |
타이틀을 플래시로 보이기.... [5] | 맞장 | 2007.10.18 |
답글 영역 안보이게 블로그에서 토글 방식 적용 [9] | 지허 | 2007.10.18 |
관리자 페이지 모듈->댓글 내용에 & " < > 안 나오게 하기 [1] | 必得力 | 2007.10.18 |
최근 댓글 리스트에 & " < > 안 나오게 하기 [3] | 必得力 | 2007.10.18 |
ZBXE용 모니위키 연동 플러그인 소스 [4] | 베니 | 2007.10.17 |
제로보드 소스 서버에 올릴때.. [3] | 남국 | 2007.10.17 |
최근 이미지 출력 위젯에서 글 제목 출력을 선택항목으로 바꾸기 [6] | 必得力 | 2007.10.17 |
상단에 로그인 회원가입 등 메뉴 넣기 (id/pw찾기 추가) [7] | mireu | 2007.10.16 |
optimizer 체크 후 저장해도 체크 해제 되시는 분들 [2] | 다케루 | 2007.10.15 |
홈페이지 주소 깔끔하게 사용하기 [초보용] [14] | 똑디 | 2007.10.13 |
"회원 추가" 를 "회원 가입" 으로 .. [9] | 디키스 | 2007.10.12 |
주메뉴와 하위메뉴 구분이 잘 안되시는 분들께... [2] | 다케루 | 2007.10.12 |
(글) 알림 옵션 기본 체크 [27] | Simulz | 2007.10.10 |
(게시물, 서명) 원하는 곳에 서명 출력하기 [10] | Simulz | 2007.10.08 |
댓글 등록시 하드에 있는 이미지를 쉽게 웹에 링크시키는 프로그램 [6] | 팔공산 | 2007.10.07 |
(회원 정보) 작성 글 수, 댓글 수를 보여주기 (#4, 2007-10-13) [7] | Simulz | 2007.10.06 |
경험에 의지한 로그인 풀림현상 처리 | 남국 | 2007.10.06 |
xe 폴더를 어딘가로 이전했을 때 로그인이 안되는 경우... [2] | preware | 2007.10.05 |
iframe사용시 세로길이 자동 조정되게 하기 [7] | 팔공산 | 2007.10.04 |
멋집니다. 타 프로그램과 연동이라니...^^
이런 연동 소스가 많이 나와서 다양한 프로그램을 활용할 수 있으면 좋겠네요.
좋은 자료 감사합니다. 모니위키가 어떤건지 함 둘러봐야겠네요 ^^