AuthMoodle

From MoodleDocs
Revision as of 17:30, 9 July 2007 by Markus Hillig (talk | contribs) (→‎AuthMoodle.php: added empty string as argument to setAuthMoodleTablePrefix() in install instructions since it's there in the original posting by Martin)

AuthMoodle.php

quoting Martin's instructions based on the root folder of the wikimedia installation:

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');

Bugs with AuthMoodle in mediawiki 1.7

  • preferences are no longer sticky (they pretend to save but don't really save)
    fix: disable this if in includes/SpecialPreferences.php around line 290:
/*
if (!$wgAuth->updateExternalDB($wgUser)) {
    $this->mainPrefsForm( wfMsg( 'externaldberror' ) );
    return;
}
*/ 
  • if the moodle database prefix is different from the mediawiki database prefix must match (or be blank)
    fix: edit the function tableName in includes/Database.php around line 1310 and 1313:
function tableName( $name ) {
   global $wgSharedDB, $wgAuth;
   # Skip quoted literals
   if ( $name{0} != '`' ) {
       if ( $this->mTablePrefix !==  &&  strpos( '.', $name ) === false 
            && strpos ($name, $wgAuth->mAuthMoodleTablePrefix) === false ) {
  • for mediawiki 1.7, I had to change line 33 to includes/AuthPlugin.php and comment out line 223-226 (refers to a non-existent function)

Useful Information