AuthMoodle

AuthMoodle.php

MediawikiSSOもご覧ください)

Wikiメディアインストールのルートフォルダに基づいてMartinの指示を引用する:

Save it in extensions/AuthMoodle.php.
Then you just put this in LocalSettings.php:
 require_once( 'extensions/AuthMoodle.php' );
 $wgAuth = new AuthMoodle();
 $wgAuth->setAuthMoodleTablePrefix('');
 $wgAuth->setAuthMoodleDBServer('yoursite.org');
 $wgAuth->setAuthMoodleDBName('yourdb');
 $wgAuth->setAuthMoodleUser('yourdbuser');
 $wgAuth->setAuthMoodlePassword('yourdbpass');
 

mediawiki 1.7のAuthMoodleに関するバグ

  • 設定は固定されなくなりました(保存するふりをしますが、実際には保存しません)。
    修正: 290行目付近のincludes / SpecialPreferences.phpの場合は、これを無効にしてください。
 /*
if (!$wgAuth->updateExternalDB($wgUser)) {
    $this->mainPrefsForm( wfMsg( 'externaldberror' ) );
    return;
}
*/ 
  • moodleデータベースのプレフィックスがmediawikiのデータベースプレフィックスと異なる場合は一致する(または空白である)必要があります
    修正: 1310行目と1313行目付近のincludes / Database.phpの関数tableNameを編集します。
function tableName( $name ) {
   global $wgSharedDB , $wgAuth ;
   # Skip quoted literals
   if ( $name{0} != '`' ) {
       if ( $this->mTablePrefix !==  &&  strpos( '.', $name ) === false 
            && strpos ($name, $wgAuth->mAuthMoodleTablePrefix) === false ) {
  • mediawiki 1.7では、33行目をincludes / AuthPlugin.phpに変更し、223行目から226行目をコメントアウトする必要がありました(存在しない関数を参照してください)。

関連情報