Extension talk:AuthJoomla/ja

From mediawiki.org

Adaption - additional code suggestion[edit]

To have a correct behavior, with the following extension as is, I have done the following adaptation : To manage users through Joomla : Install the dedicated extension from the MediaWiki Website => http://www.mediawiki.org/wiki/Extension:AuthJoomla And make the following adaptation

1 - Setup the correct data to your Joomla database and provide a correct path to Joomla in LocalSettings.php

        $wgAuthJoomla_Path             = $IP.'/Relative Path to Joomla Directory/'; $IP the absolute Wiki Path

2 - In the file AuthJoomla.php, make the followig correction in the method =>

       private function connectToDB() :
       $db = & Database :: newFromParams(
       $GLOBALS['wgAuthJoomla_MySQL_Host'],
       $GLOBALS['wgAuthJoomla_MySQL_Username'],
       $GLOBALS['wgAuthJoomla_MySQL_Password'],
       $GLOBALS['wgAuthJoomla_MySQL_Database'], $failFunction = false, $flags = 0, $tablePrefix = 'Joomla' );


3 - In the MediaWiki file => RootMediaWiki/include/db/Database.php Line 309 => Method newFromParams, make the following correction for the constructor calling :

Add => " $failFunction = false, $flags = 0, $tablePrefix " in the argument as following

   /**
    * Same as new Database( ... ), kept for backward compatibility
    * @param $server String: database server host
    * @param $user String: database user name
    * @param $password String: database user password
    * @param $dbName String: database name
    * @param failFunction
    * @param $flags
    */
   static function newFromParams( $server, $user, $password, $dbName, $failFunction = false, $flags = 0, $tablePrefix )
   {
       return new Database( $server, $user, $password, $dbName, $failFunction, $flags, $tablePrefix Bold text);
   }

4 - In the MediaWiki file => RootMediaWiki/include/db/Database.php Line 296 => Method _constructor

      /** Get the default table prefix*/
       if ( $tablePrefix == 'Joomla' ) {
           $this->mTablePrefix = ;
       } elseif ( $tablePrefix == 'get from global' ) {
           $this->mTablePrefix = $wgDBprefix;
       } else {
           $this->mTablePrefix = $tablePrefix;
       }

After that everything seems correct and I can also wrap the WIKI inside Joomla so I have a coherent graphic interface.

How do I get this to work?[edit]

I copy and pasted the stuff into LocalSettings.php; and the php file into AuthJoomla.php 
but when I go to my wiki page (even the main page) it's blank (completely white).

It is very likely that you have a problem with the path going to authJoomla.php. Spelling and capitalization count. For instance, wikiroot/extensions/AuthJoomla2/authJoomla2.php is not the same as wikiroot/extensions/AuthJoomla/authJoomla.php

Thanks for a very useful extension[edit]

However, it does not work when the MediaWiki database tables are given a prefix.  The problem is that the SQL 
user authentication query tries to parse a table in the joomla database containing both the joomla prefix, 
example (jos_) and the MediaWiki prefix, example (mw_).  The table which is searched has the form   
"joomla_db.mw_jos_users".  This table does not exist and an error is returned.  The correct table should 
have been joomla_db.jos_users which is what results without the mw_ prefix attached.  
Has anyone managed to get the extension to work with the MediaWiki database tablenames prefixed?
P.S. The extension works fine when no prefix is attached to the MediaWiki database tables.

I am running:
Joomla 1.5.3
MediaWiki 1.12 (same result on 1.11.1)
PHP 5.2.5
MySQL 5.0.45
Apache 2.2.6

Thanks

You can try to write yourself the queries: I made this: $query = 'SELECT password FROM jos_users WHERE username = \ . $username . '\' LIMIT 1'; $hash_password = mysql_fetch_object(mysql_query($query));

and this: $query = 'SELECT password FROM jos_users WHERE username = \ . $user->mName . '\' LIMIT 1';

       $juser = mysql_fetch_object(mysql_query($query));


Thanks for replying but I am a bit lost. Where (in which file) do I place those queries??? It would be much more helpful, if you could provide a step by step guide.

(Please note that SQL statement like those above are prone to SQL injection and represent a major threat to site's security!)

Password Problems[edit]

I'm connecting to the DB fine and can authenticate the username; however, something's going wrong with the password authentication in this segment so that I always get an "incorrect password" response:

---

   function authenticate( $username, $password )
   {
       $db = $this->connectToDB();
       $hash_password = $db->selectRow($this->userTable, array ( 'password' ), array ( 'username' => $username ), __METHOD__ );
       $parts = explode( ':', $hash_password->password );
       $crypt = $parts[0];
       $salt  = @$parts[1];
       if ( is_file($GLOBALS['wgAuthJoomla_Path'].'/libraries/joomla/user/helper.php'))
       {
           require_once $GLOBALS['wgAuthJoomla_Path'].'/libraries/joomla/user/helper.php';
           $testcrypt = JUserHelper::getCryptedPassword($password, $salt);
       }
       if ($crypt == $testcrypt) {
           return true;
       }

       return false;
   }

---

My configuration:

  • Joomla 1.5.2
  • MediaWiki 1.12
  • PHP 5.2.6
  • MySQL 5.0.45

I'd appreciate any advice on how to fix. Thanks!


Joomla 1.0.x[edit]

Hi, I want to use this with Joomla 1.0.12 or higher versions. Is it possible, or I need to change things in the script?

DB prefix "wiki_"[edit]

hi! how setup AuthJoomla in new MediaWiki-1.14 install with DB prefix 'wiki_'? "AuthJoomla::authenticate". MySQL error "1146: Table 'table_name.wiki_jos_users' doesn't exist (localhost)".--Mazapura 21:38, 8 March 2009 (UTC)Reply[reply]

I have exacty the same problem. But to fix it? --87.158.199.77 17:55, 22 March 2009 (UTC)Reply[reply]

Bugs Fix[edit]

Hi! The problem is that it is using the MediaWiki database prefix with either "wiki_" or another, you must remove the code that database and everything works properly. I translated the post for the extension to all Spanish and notifying users of the same to use the database without any prefix. This is the link: http://www.mediawiki.org/wiki/Extension:AuthJoomla/es -- Alakentu 21:31, 27 April 2009 (UTC)Reply[reply]

MW_ database prefix[edit]

Hi,

Tried using this extension. I read about the mw_ issue. Anyone found a fix for this yet?

Thanks

Ralph october 1st 2009