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 관리자 "@관리그룹" 을 추가 합니다.

템플릿 변경

이제 도쿠위키의 로긴/로그아웃은 작동하지 않습니다. 템플릿(스킨)을 적절히 수정합니다.

  • 심각한 문제가 있는 것으로 보입니다. 그룹명을 전해주기는 하지만 ACL plugin에서 제대로 읽지 못하는 것 같습니다. 고로… 그룹별 권한이 제대로 작동하지 않습니다.;;

^ 누구나 수정하실 수 있습니다. 위키 사용법 참고하세요. ^

역링크