위키와 XE를 따로 각각 로그인과 로그아웃 처리되는 것은 그리 좋지는 않은 것 같다. XE에서 로그인으로 생성된 세션과 그와 관련된 것을 이용해 한번 모두 같이 작동하게 연동해봤다.
따로 위키에서 DB에 접근하지 않기에 제약이 될 수 있으나, 반면에 사용자 및 그룹을 중복되게 관리하는 것도 불편하다. 위키 자체의 온전한 기능을 모두 사용하지는 못하겠지만, CMS로 XE를 잡았다면 그쪽에서 이용하면 될 것이다.
오히려 불편한 것들은 모두 때버리고, 위키에 달려있는 로그인 로그아웃버튼도 때버리고... 이것은 XE에 삽입시킨 도쿠위키의 스킨을 손보게 되면서 스킨에서 해결될 수 있는 간단한 것이라 본다.
총 1개의 본소스 수정, 1개의 설정 파일 수정, 1개의 지원하기 위한 간단한 벡엔드 파일로 3가지를 작업하면 끝이 난다.
도쿠위키 파일 원소스 수정 : doku.php
가장 최상단에 다음의 내용을 삽입한다.
XE 연동 파일 업로드 : xe.class.php
inc/auth/xe.class.php에 위치하면된다.
설정파일 수정 : conf/local.php
마지막으로 설정 파일만 수정하면 끝이 났다.
따로 위키에서 DB에 접근하지 않기에 제약이 될 수 있으나, 반면에 사용자 및 그룹을 중복되게 관리하는 것도 불편하다. 위키 자체의 온전한 기능을 모두 사용하지는 못하겠지만, CMS로 XE를 잡았다면 그쪽에서 이용하면 될 것이다.
오히려 불편한 것들은 모두 때버리고, 위키에 달려있는 로그인 로그아웃버튼도 때버리고... 이것은 XE에 삽입시킨 도쿠위키의 스킨을 손보게 되면서 스킨에서 해결될 수 있는 간단한 것이라 본다.
총 1개의 본소스 수정, 1개의 설정 파일 수정, 1개의 지원하기 위한 간단한 벡엔드 파일로 3가지를 작업하면 끝이 난다.
도쿠위키 파일 원소스 수정 : doku.php
가장 최상단에 다음의 내용을 삽입한다.
### php
<?php
define('__ZBXE__',true);
require_once("../config/config.inc.php");
$oContext = &Context::getInstance();
$oContext->init();
?>
XE 연동 파일 업로드 : xe.class.php
inc/auth/xe.class.php에 위치하면된다.
### php
<?php
/**
* XE Backend (2011-07-02)
*
* @author 50ndd1n6 <50ndd1n6@gmail.com>
*/
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[$conf['title']]['auth']['user'] = $logged_info->user_id;
$_SESSION[$conf['title']]['auth']['info'] = $USERINFO;
} else {
return false;
}
return true;
}
}
?>
설정파일 수정 : conf/local.php
마지막으로 설정 파일만 수정하면 끝이 났다.
### php
<php
//...
$conf['authtype'] = 'xe';
$conf['superuser'] = '@관리그룹';
//...
- authtype은 다른 방식의 인증을 하겠다는 것이며 xe는 해당 파일의 이름에 따라 가리키는 것으로 이름과 달라지면 안된다. 그대로 사용하면 된다.
- superuser는 위키 관리자로 @을 사용하면 그룹이름이 되며, @없이 그저 아이디로 사용하여도 된다.
'작업' 카테고리의 다른 글
| 티스토리 oauth (html+script) (0) | 2011/07/24 |
|---|---|
| DRIPERS로고를 만들어 봤다. (0) | 2011/07/03 |
| XE와 도쿠위키(dokuwiki) 세션으로 연동 (2) | 2011/07/02 |
| #node.js - iconvExtend 모듈 (0) | 2011/05/06 |
| gFrame 사용 예제 (0) | 2011/04/23 |
| gFrame v0.1.03a (2) | 2011/04/23 |







