XE & Dokuwiki 동시 로그인
이 방법은 구버전 용입니다. 도쿠위키 최신버전 (2013-05-10a "Weatherwax")에서는 인증모듈이 플러긴 방식으로 변경되었습니다. 이 문서에서 소개하는 방법을 사용하면 안됩니다. Authxe: XE & Dokuwiki 동시 로그인참조 하세요.
도쿠위키의 강력한 유연성 (커스터마이징 능력) 을 십분 활용하여 로긴/로그아웃은 XE로 하고 도쿠위키에서는 그 정보만 가져다 쓰는 방법입니다.
도쿠위키의 로긴/로그아웃 버튼은 떼버려야합니다.
doku.php 수정
도쿠위키 루트에 있는 파일 doku.php 수정합니다.
가장 최상단에 다음의 내용을 삽입합니다. 도쿠위키 시작시에 XE도 같이 시작하는 것입니다.
<?php define('__ZBXE__',true); //도쿠위키 시작시에 XE도 같이 시작하는 것입니다. define(`__XE__`,true) //XE 1.5.3 이후의 버전에서는 다음도 추가해야 합니다. require_once("../config/config.inc.php"); //XE설정파일의 적절한 경로를 넣습니다. $oContext = &Context::getInstance(); $oContext->init(); ?>
xe.class.php 추가
XE 연동 파일 업로드 : xe.class.php inc/auth/xe.class.php에 위치하면 됩니다. 사용자 정의 로긴설정 파일입니다.
- xe.class.php
<?php /** * XE Backend (2011-07-02) * * @author 50ndd1n6 <[email protected]> */ define('DOKU_AUTH', dirname(__FILE__)); define('AUTH_USERFILE',DOKU_CONF.'users.auth.php'); class auth_xe extends auth_basic { function auth_xe(){ $this->cando['external'] = true; } function trustExternal($user,$pass,$sticky=false){ global $USERINFO; //global $conf; //필요없슴. if (!class_exists(Context)) return false; $logged_info = Context::get("logged_info"); if($logged_info){ $sticky ? $sticky = true : $sticky = false; $USERINFO['name'] = $logged_info->user_id; $USERINFO['pass'] = $logged_info->password;; $USERINFO['mail'] = $logged_info->email_address; $USERINFO['grps'] = $logged_info->group_list; $_SERVER['REMOTE_USER'] = $logged_info->user_id; $_SESSION[DOKU_COOKIE]['auth']['user'] = $logged_info->user_id; $_SESSION[DOKU_COOKIE]['auth']['info'] = $USERINFO; return true; } else { return false; } } } ?>
도쿠위키 설정 추가
위치 | 내용 |
---|---|
설정 → 인증설정→authtype 인증 백-엔드 | "XE"를 선택합니다. |
설정 → 인증설정→ manager 관리자 | "@관리그룹" 을 추가 합니다. |
템플릿 변경
이제 도쿠위키의 로긴/로그아웃은 작동하지 않습니다. 템플릿(스킨)을 적절히 수정합니다.
- 출처: 50ndd1n6 블로그
- 심각한 문제가 있는 것으로 보입니다. 그룹명을 전해주기는 하지만 ACL plugin에서 제대로 읽지 못하는 것 같습니다. 고로… 그룹별 권한이 제대로 작동하지 않습니다.;;
^ 누구나 수정하실 수 있습니다. 위키 사용법 참고하세요. ^