Thread:Extension talk:LDAP Authentication/I can't create new user with Ldap extension

Hi all,

thanks Ryan for this great extension, very useful and simple to use!

I run mediawiki for a small department in a big IT company and, now, for a transitional times I need to use local & LDAP user. Not all users in LDAP can login to my Mediawiki, only user added by me in local DB (before installing/configuring LDAP extension) can log in and autocreate is disabled. For example John Doe can log in with 2 user: JohnDoe and AB123456 (the ID of LDAP) and in user table I've JohnDoe and AB123456 entry.

After this first run of configuration I need to add other users by hand but createAndPromote scripts fail...I've read THIS post but it's from 2010 and the code is changed...and I don't know PHP as well:)

Version: MediaWiki 1.20.3 PHP 5.3.3-7+squeeze15 (apache2handler) MySQL 5.1.49-3-log LDAP Authentication Plugin (Versione 2.0d)

My LocalSettings.php:

$wgGroupPermissions['*']['createaccount'] = false; ... require_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php" ); $wgAuth = new LdapAuthenticationPlugin; $wgLDAPDomainNames = array( 'mydomain.local' ); $wgLDAPServerNames = array( 'mydomain.local' => '10.10.10.11' ); $wgLDAPPort = array( 'mydomain.local' => 3268); $wgLDAPSearchAttributes = array( 'mydomain.local' => 'sAMAccountName' ); $wgLDAPBaseDNs = array( 'mydomain.local' => 'DC=mydomain,DC=local' ); $wgLDAPSearchStrings = array( 'mydomain.local' => "MYDOMAIN\\USER-NAME" ); $wgLDAPEncryptionType = array( 'mydomain.local' => 'clear' ); //using local & LDAP DB $wgLDAPUseLocal = true; $wgLDAPAddLDAPUsers = array( 'mydomain.local' => false); $wgLDAPUpdateLDAP = array( 'mydomain.local' => false); $wgLDAPWriterPassword = array( 'mydomain.local' => false); $wgLDAPWriterDN = array( 'mydomain.local' => false); $wgLDAPPreferences = array( 'mydomain.local'=>array( "email"=>"mail", "realname"=>"displayname","nickname"=>"givenname") ); $wgLDAPDisableAutoCreate = array( 'mydomain.local' => true); $wgLDAPDebug = 6; $wgDebugLogGroups["ldap"] = "log_debugLDAP.txt";

CreateAndPromote output:

php maintenance/createAndPromote.php TestUser testpass wiki: Creating and promoting User:TestUser...Non è possibile modificare le password su questo wiki. (you can't modify the password in this wiki) Backtrace:
 * 1) 0 /var/www/wiki/maintenance/createAndPromote.php(58): User->setPassword('testpass')
 * 2) 1 /var/www/wiki/maintenance/doMaintenance.php(110): CreateAndPromote->execute
 * 3) 2 /var/www/wiki/maintenance/createAndPromote.php(84): require_once('/var/www/wi...')
 * 4) 3 {main}

and the SQL trace is:

Start command line script maintenance/createAndPromote.php CACHES: EmptyBagOStuff[main] SqlBagOStuff[message] SqlBagOStuff[parser] Class LanguageIt not found; skipped loading LocalisationCache: using store LCStore_DB Connecting to localhost wiki... Profiler::instance called with bogus $wgProfiler setting, falling back to ProfilerStub for safety Query wiki (1) (slave): SET /* DatabaseMysql::open */ NAMES utf8 Query wiki (2) (slave): SET /* DatabaseMysql::open */ sql_mode = '' Connected to localhost wiki. Query wiki (3) (slave): SELECT /* LCStore_DB::get */  lc_value  FROM `l10n_cache`  WHERE lc_lang = 'it' AND lc_key = 'deps'  LIMIT 1 Query wiki (4) (slave): SELECT /* LCStore_DB::get */  lc_value  FROM `l10n_cache`  WHERE lc_lang = 'it' AND lc_key = 'list'  LIMIT 1 Query wiki (5) (slave): SELECT /* LCStore_DB::get */  lc_value  FROM `l10n_cache`  WHERE lc_lang = 'it' AND lc_key = 'preload'  LIMIT 1 Query wiki (6) (slave): SELECT /* LCStore_DB::get */  lc_value  FROM `l10n_cache`  WHERE lc_lang = 'it' AND lc_key = 'preload'  LIMIT 1 Query wiki (7) (slave): SELECT /* LCStore_DB::get */  lc_value  FROM `l10n_cache`  WHERE lc_lang = 'it' AND lc_key = 'fallback'  LIMIT 1 Unstubbing $wgParser on call of $wgParser::setHook from wfSpoilerExtension Parser: using preprocessor: Preprocessor_DOM Query wiki (8) (slave): SELECT /* DatabaseBase::tableExists */ 1 FROM `tw_groups` LIMIT 1 Query wiki (9) (slave): SELECT /* DatabaseBase::tableExists */ 1 FROM `tw_namespaces` LIMIT 1 Query wiki (10) (slave): SELECT /* DatabaseBase::tableExists */ 1 FROM `tw_privileges` LIMIT 1 Query wiki (11) (slave): SELECT /* DatabaseBase::select */  tw_grp_name  FROM `tw_groups` Query wiki (12) (slave): SELECT /* DatabaseBase::select */  *  FROM `tw_namespaces` Query wiki (13) (slave): SELECT /* DatabaseBase::select */  *  FROM `tw_privileges` Fully initialised IP: 127.0.0.1 Query wiki (14) (slave): SELECT /* User::idForName 127.0.0.1 */ user_id  FROM `user`  WHERE user_name = 'TestUser'  LIMIT 1 Unstubbing $wgLang on call of $wgLang::getCode from MessageCache::get Connecting to localhost wiki... Query wiki (15) (slave): SET /* DatabaseMysql::open 127.0.0.1 */ NAMES utf8 Query wiki (16) (slave): SET /* DatabaseMysql::open 127.0.0.1 */ sql_mode = '' Connected to localhost wiki. Query wiki (17) (slave): SELECT /* SqlBagOStuff::getMulti 127.0.0.1 */ keyname,value,exptime  FROM `objectcache`  WHERE keyname = 'wiki-:messages:it' MessageCache::load: Loading it... got from global cache Query wiki (18) (slave): SELECT /* LCStore_DB::get 127.0.0.1 */ lc_value  FROM `l10n_cache`  WHERE lc_lang = 'it' AND lc_key = 'messages:password-change- forbidden'  LIMIT 1

and the LDAP output:

2013-04-03 08:58:51 kiwi wiki: 2.0d Entering getCanonicalName 2013-04-03 08:58:51 kiwi wiki: 2.0d Username is: TestUser 2013-04-03 08:58:51 kiwi wiki: 2.0d Entering getDomain 2013-04-03 08:58:51 kiwi wiki: 2.0d No domain found, returning invaliddomain 2013-04-03 08:58:51 kiwi wiki: 2.0d Munged username: TestUser 2013-04-03 08:58:51 kiwi wiki: 2.0d Entering allowPasswordChange 2013-04-03 08:58:51 kiwi wiki: 2.0d Entering getDomain 2013-04-03 08:58:51 kiwi wiki: 2.0d No domain found, returning invaliddomain 2013-04-03 08:58:51 kiwi wiki: 2.0d Entering getDomain 2013-04-03 08:58:51 kiwi wiki: 2.0d No domain found, returning invaliddomain 2013-04-03 08:58:51 kiwi wiki: 2.0d Entering getDomain 2013-04-03 08:58:51 kiwi wiki: 2.0d No domain found, returning invaliddomain 2013-04-03 08:58:51 kiwi wiki: 2.0d Entering getDomain 2013-04-03 08:58:51 kiwi wiki: 2.0d No domain found, returning invaliddomain

It's possible to add users to local DB? Thanks a lot, Matteo