Coder Social home page Coder Social logo

smf-mw-auth's People

Contributors

emanuele45 avatar fustrate avatar jdarwood007 avatar jnoir avatar norv avatar oldiesmann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smf-mw-auth's Issues

People not being removed from Wiki groups

I have got this running and I have it setup so that there's a SMF group named Mentors, and a wiki group named Editor. If they are added to the SMF Mentors group, they are then added to the wiki Editor group. However if I remove them from the SMF group, they are not being removed from the wiki group. I have given it plenty of time (hours) for any kind of caching to go, and no luck.

Any ideas why people aren't being removed from the groups on wiki? Thanks

500 Internal Server Error with v1.24.0

Hello,

This morning I upgraded my MediaWiki to 1.24.0 but I received an 500 Internal Server Error and in my error log is is displayed:

20141127T130128: wiki.kaero-webs.com/index.php
PHP Fatal error: Cannot access protected property User::$mOptionOverrides in /wiki/extensions/Auth_SMF.php on line 1050

Maybe is because the new version, by the way in 1.23 I don't have this problem.

User not being logged in proper

Weirdly we have some users who now aren't being logged into the wiki properly. I am running the latest of this plugin/extension and of SMF. They have the same permissions as others who can access the wiki fine. The user gets partly logged in, but gets the following error and can't access any private pages on the wiki (i.e. anything apart from the homepage):

http://tinypic.com/view.php?pic=r73t6w&s=8#.VLp0kdWsXV8

Any help would be appreciated, I cannot work out what the problem is or where to begin troubleshooting it (cleared all his cookies etc...)

Error with smcFunc in latest version

I've set up test instances of SMF 2.0.14 and MediaWiki 1.25.2, in order to try to get the bridge set up (using the same versions we're using in production). However, I get the following error when I try to load the wiki to test:

Notice: Undefined variable: smcFunc in /home/ags/html/test/w/extensions/Auth_SMF.php on line 1011 Fatal error: Function name must be a string in /home/ags/html/test/w/extensions/Auth_SMF.php on line 1011

This is using the latest commit (57d27f8#diff-6ce162690b9b3a24a064ce0e609cc4a5) with no changes made to SMF or MW aside from setting up the bridge.

My LocalSettings.php is here: https://pastebin.com/Qcu14eNQ. Any ideas why this might be happening?

Problem Authenticating to MW 1.40.0 from SMF 2.1.4

I am attempting to enable SSO with SMF 2.1.4 and MediaWiki 1.40.0. The installation instructions in README.md seem incomplete, so what I did was to download the repo, rename the root folder from smf-mw-auth-main to ForumSsoProvider, upload the folder to my wiki/extensions directory, and then make the suggested edits to LocalSettings.php. When I reload the wiki page I get a blank page.

Is this a bug, or am I simply doing something wrong?

Does not work with SMF 2.1.2 and MediaWiki 1.38.2

On SMF 2.1.2 and MediaWiki 1.38.2 I'm getting this:

[Yuc1b4euz_HcQnDAapAwUAAAAAI] /index.php?title=Main_Page   TypeError: Argument 1 passed to MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider::__construct() must implement interface Wikimedia\Rdbms\ILoadBalancer, array given, called in /home/path1/public_html/site1/extensions/ForumSsoProvider/ForumAuthManager.php on line 26
#0 /home/path1/public_html/site1/extensions/ForumSsoProvider/ForumAuthManager.php(26): MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider->__construct(array)
#1 /home/path1/public_html/site1/vendor/wikimedia/object-factory/src/ObjectFactory.php(247): ForumAuthManager->__construct()
#2 /home/path1/public_html/site1/vendor/wikimedia/object-factory/src/ObjectFactory.php(152): Wikimedia\ObjectFactory\ObjectFactory::getObjectFromSpec(array, array)
#3 /home/path1/public_html/site1/includes/auth/AuthManager.php(2401): Wikimedia\ObjectFactory\ObjectFactory->createObject(array, array)
#4 /home/path1/public_html/site1/includes/auth/AuthManager.php(2446): MediaWiki\Auth\AuthManager->providerArrayFromSpecs(string, array)
#5 /home/path1/public_html/site1/includes/auth/AuthManager.php(1016): MediaWiki\Auth\AuthManager->getPrimaryAuthenticationProviders()
#6 /home/path1/public_html/site1/includes/skins/SkinTemplate.php(620): MediaWiki\Auth\AuthManager->canCreateAccounts()
#7 /home/path1/public_html/site1/includes/skins/SkinTemplate.php(519): SkinTemplate->useCombinedLoginLink()
#8 /home/path1/public_html/site1/includes/skins/SkinTemplate.php(1252): SkinTemplate->buildPersonalUrls(boolean)
#9 /home/path1/public_html/site1/includes/skins/SkinTemplate.php(782): SkinTemplate->buildContentNavigationUrlsInternal()
#10 /home/path1/public_html/site1/includes/skins/SkinTemplate.php(202): SkinTemplate->getPortletsTemplateData()
#11 /home/path1/public_html/site1/includes/skins/SkinMustache.php(81): SkinTemplate->getTemplateData()
#12 /home/path1/public_html/site1/skins/Vector/includes/SkinVector.php(564): SkinMustache->getTemplateData()
#13 /home/path1/public_html/site1/includes/skins/SkinMustache.php(58): Vector\SkinVector->getTemplateData()
#14 /home/path1/public_html/site1/skins/Vector/includes/SkinVector.php(455): SkinMustache->generateHTML()
#15 /home/path1/public_html/site1/includes/skins/SkinTemplate.php(150): Vector\SkinVector->generateHTML()
#16 /home/path1/public_html/site1/includes/OutputPage.php(2807): SkinTemplate->outputPage()
#17 /home/path1/public_html/site1/includes/MediaWiki.php(926): OutputPage->output(boolean)
#18 /home/path1/public_html/site1/includes/MediaWiki.php(939): MediaWiki::{closure}()
#19 /home/path1/public_html/site1/includes/MediaWiki.php(563): MediaWiki->main()
#20 /home/path1/public_html/site1/index.php(53): MediaWiki->run()
#21 /home/path1/public_html/site1/index.php(46): wfIndexMain()
#22 {main}

Steps to reproduce

  1. Try to open any wiki page after the extension installed

Environment (complete as necessary)

  • PHP Version: 7.4.25

Public View on MW 1.27.1

MW 1.27.1 is throwing the following error on the backend when any public user tries to view the wiki and isnt logged in to an SMF account.

PHP Catchable fatal error: Method User::__toString() must return a string value in .../includes/user/User.php on line 3747

Basically throws a 500 and no anonymous users can load any Wiki pages when the integration is enabled. Works just fine for logged in users, just not public.

can't assign bureaucrat role anyhow

since I can't login with the mediaWiki's admin account the only possibility to grant another user bureaucrat rights seems to do so via LocalSettings.php

I removed the Admin user via phpmyadmin from the wiki_users and created the account again after adding the following to my LocalSettings.php.

$wgSMFSpecialGroups = array(
1 => 'bureaucrat'
);

this doesn't seem to have any effect.
I run SMF 2.0.4, MediaWiki 1.21

Login trouble with Mediwiki 1.36.1

Description

SMF 2.0.18
Mediwiki 1.36.1
ForumSsoProvider 2.0.0 (downloaded 2021-08-22)
PHP 7.4.15
MySQL 8.0.26-0
Ubuntu 20.04.2
Hosting on Dreamhost
I am using a Let's Encrypt certificate and Dreamhost rewrites all http URLs to https for that.

Steps to reproduce

Fresh install of SMF with 3 users created
Fresh install of MediaWiki with 1 user created (to verify it worked)
Fresh install of ForumSsoProvider

The SSO config is at the bottom of the LocalSettings,php file

$wgSMFPath = '/home/USER/subdomain.domain.com/forum/';
$wgFSPSoftware = 'smf2.0';
wfLoadExtension( 'ForumSsoProvider' );

I log into the forum as a regular user.
https://subdomain.domain.com/forum
then I click the bookmark for the wiki page
https://subdomain.domain.com/wiki (note wiki )

Wiki opens just fine, requires login to continue because of
$wgGroupPermissions['*']['read'] = false;

I click the log in link and I get

Not Found
The requested URL was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
The URL has been mangled to

https://subdomain.domain.com/index.php?action=login;return_hash=HASH_VALUE_HERE;return_to=http%3A%2F%2Fsubdomain.domain.com%2F**wiki**%2Findex.php%3Ftitle%3DMain+Page%26board%3Dredirect
It is missing the subdirectory name "wiki" in the first part of that URL. I think the URL should be something like

https://subdomain.domain.com/wiki/index.php?action=login;return_hash=HASH_VALUE_HERE;return_to=http%3A%2F%2Fsubdomain.domain.com%2F**wiki**%2Findex.php%3Ftitle%3DMain+Page%26board%3Dredirect

If I modify the doRedirect to add the directory name it stops the 404 but still doesn't log me in.

public function doRedirect(string $action, bool $do_return = false)
{
	global $wgScriptPath;
	// The wiki URL.
	$page = !empty($_GET['returnto']) ? '?title=' . $_GET['returnto'] . '&' : '?';
	$wiki_url = 'https://' . $_SERVER['SERVER_NAME'] . $wgScriptPath . '/index.php' . $page . 'board=redirect';

	// Send this to the forum handler to give us the proper redirect url.
	$redirect_url = $wgScriptPath . $this->fs->getRedirectURL($action, $wiki_url, $do_return);

	// Redirect and leave this.
	header ('Location: ' . $redirect_url);
	exit;
}

Is it the subdomain doing me in?
Is it that the wiki is in a different directory than the forum doing me in?

Cannot login?

I can't get the bridge to work with the latest version of mediawiki and smf (2.0.9). It's fully installed, hooked up to a subdomain wiki.domain.com and forums is forums.domain.com (same domain)

When on the wiki i click login, takes me to smf login, logs in fine however mediawiki does not reflect this login (It stays on the forum.)

My plugins:

  1. Split Forum Mod 1.10 [ Uninstall ]
  2. RSS Feed Poster 4.1 [ Uninstall ]
  3. Menu Editor Lite 1.0.5 [ Uninstall ]
  4. @mention members 1.1.2 [ Uninstall ]
  5. Default Avatar 2.3 [ Uninstall ]
  6. Spoiler Tag 0.7.2a [ Uninstall ]
  7. Gamer IDs 1.4 [ Uninstall ]
  8. Ultimate Profile 0.9.1 [ Uninstall ]
  9. Download bbcode 2.0 2.0 [ Uninstall ]
  10. PartyMembers 1.0 [ Uninstall ]
  11. URL Popup 1.0.2 [ Uninstall ]
  12. VigLink 1.3 [ Uninstall ]
  13. Battle 1.14 [ Uninstall ]
  14. Member Color Link 3.1 [ Uninstall ]
  15. SimplePortal 2.3.5 [ Uninstall ]
  16. Tidy Child Boards 1.4.1 [ Uninstall ]
  17. Member Awards 3.0 [ Uninstall ]
  18. Relative Dates 1.3 [ Uninstall ]
  19. AJAX Recent Topics 1.1 [ Uninstall ]
  20. Tabbed smileys 0.3.99e [ Uninstall ]
  21. BBC User Info 2.0 [ Uninstall ]
  22. Tagging System 3.0 [ Uninstall ]
  23. Stop Spammer 2.3.9 [ Uninstall ]
  24. reCAPTCHA for SMF 0.9.8a [ Uninstall ]
  25. Board Icons 1.0 [ Uninstall ]
  26. SMF Social Groups 2.4.5 [ Uninstall ]
  27. Avatar On Board RC2 2.1 [ Uninstall ]
  28. SMF 2.0.8 Update 1.0 [ Uninstall ]
  29. SMF 2.0.7 Update 1.0 [ Uninstall ]
  30. SMF 1.1.19 / 2.0.6 Update 1.0 [ Uninstall ]
    Modify message

Errors in MW 1.31.1

I appreciate the plugin hasn't been updated in a while, but are you expecting it to work in newer versions of MediaWiki? I'm running MW 1.31.1 and getting various errors. I can provide xdebug stack traces if you need them to investigate.

$wgAuth is deprecated in 1.27

https://www.mediawiki.org/wiki/Manual:SessionManager_and_AuthManager

While working on #10 I was informed $wgAuth is deprecated and should be replaced by AuthManager Plugin system.

https://www.mediawiki.org/wiki/Manual:SessionManager_and_AuthManager

This will greatly change how we handle auth. Looking at it, we would be using SessionManager to validate the login and then tell MW what to do (login, create user, etc). We also will need to build this as the plugin system.
The GoogleLogin plugin uses this. As does IPBLoginAuth

Would like to find more plugins to use for researching on how others are handling this.

compat auth not working

I am unable to use compat auth
I need it because forum is not on same server. Anf I do not want to use same user against the db of smf

[ForumSessionProvider] Constructor initialized.
[ForumSessionProvider] Loading Forum System Settings.
[ForumSessionProvider] Configuration File missing or not readable. Tried to load at 
[ForumSessionProvider] Forum Software Integraiton invalid.
[ForumSessionProvider] Unable to provide session, database not loaded.

BUG1 : first comparing
/ForumSsoProvider.php

// Is this a legacy authentication plugin?.
		if (!empty($wgSMFLogin) && method_exists($this->fs, 'compatLegacy'))
			$this->fs->compatLegacy();

and ForumProvider/smf2.0.php

/*
	 *	A compatiblity layer for Auth_SMF.php extension settings.
	 *
	 * @return	void	No return is expected.
	*/
	public function compatAuthSMF()
	{

seems that the function is not using the right name

changing it to compatLegacy make one more step in log

[ForumSessionProvider] Constructor initialized.
[ForumSessionProvider] Loading Forum System Settings.
[ForumSessionProvider] Detected SMF_Auth settings, loading compatibilty layer.
[ForumSessionProvider] Configuration File missing or not readable. Tried to load at ../forum
[ForumSessionProvider] Forum Software Integraiton invalid.
[ForumSessionProvider] Unable to provide session, database not loaded.

but still no chance !

BUG2: documentation says path should be
$wgFSPath = '/path/to/smf/root/';
while code search for
$this->ForumSettings['path'] = isset($wgSMFPath) ? $wgSMFPath : '../forum';

=> please update readme
$wgSMFPath = '/path/to/smf/root/';

I then, with a workaround using a fake Settings.php (with my legacy SMF auth values disguised) in my wiki path, I am able to get

[ForumSessionProvider] Constructor initialized.
[ForumSessionProvider] Loading Forum System Settings.
[ForumSessionProvider] Detected SMF_Auth settings, loading compatibilty layer.
[ForumSessionProvider] Found Configuration File, attempting to loading.
[ForumSessionProvider] Loading the cookie using provider: smf2.0
[ForumSessionProvider] No Cookie present, aborting integration.
[ForumSessionProvider] No User detected, fall through to MediaWiki.
[ForumSessionProvider] Unable to provide session, database not loaded.

still no chance with legacy but better ..

regarding more at configs
Uses the legacy Auth_SMF.php LocalSettings

define('SMF_IN_WIKI', true);
$wgSMFLogin = true;

wgSMFLogin is checked in /ForumSsoProvider.php

but BUG 3 nowhere I can see the SMF_IN_WIKI
was it intended to get the config from the legacy defined values

SMF 2.1 | Mediawiki 1.35.1

Hello,

I'm unable to get this bridge to work, and was wondering if you could assist me. The only SMF account is the main Administrator account you setup during installation. When I edit the LocalSettings.php file with any of the Optional LocalSettings.php such as: $wgFSPAllowGroups = array(5);, or any other one, then I just get a blank, white page giving me a generic 500 Internal Error.

However, when I add just the Required LocalSettings.php portion:

wfLoadExtension('ForumSsoProvider');
$wgSMFPath = '/var/www/html';
$wgFSPSoftware = 'smf2.1';

Then the wiki no longer gives me the 500 Internal Error, but when I attempt to login - a Fatal Error occurs. So, I added the following code at the very end of LocalSettings.php in order to see a more detailed Internal Error:

error_reporting( -1 );v
ini_set( 'display_errors', 1 );

$wgShowExceptionDetails = true;
$wgShowDBErrorBacktrace = true;

Therefore, the Internal Error when attempting to login with my main Administrator account is:

[aa99e6c5e8d12031f9174bd1] /mediawiki/index.php?title=Special:UserLogin&returnto=Main+Page Error from line 136 of /var/lib/mediawiki/extensions/ForumSsoProvider/ForumSsoProvider.php: Call to a member function doRedirect() on null

Backtrace:

#0 /var/lib/mediawiki/includes/HookContainer/HookContainer.php(320): ForumSsoProvider::onSpecialPageBeforeExecute(SpecialUserLogin, NULL)
#1 /var/lib/mediawiki/includes/HookContainer/HookContainer.php(131): MediaWiki\HookContainer\HookContainer->callLegacyHook(string, array, array, array)
#2 /var/lib/mediawiki/includes/HookContainer/HookRunner.php(3757): MediaWiki\HookContainer\HookContainer->run(string, array)
#3 /var/lib/mediawiki/includes/specialpage/SpecialPage.php(593): MediaWiki\HookContainer\HookRunner->onSpecialPageBeforeExecute(SpecialUserLogin, NULL)
#4 /var/lib/mediawiki/includes/specialpage/SpecialPageFactory.php(635): SpecialPage->run(NULL)
#5 /var/lib/mediawiki/includes/MediaWiki.php(307): MediaWiki\SpecialPage\SpecialPageFactory->executePath(Title, RequestContext)
#6 /var/lib/mediawiki/includes/MediaWiki.php(940): MediaWiki->performRequest()
#7 /var/lib/mediawiki/includes/MediaWiki.php(543): MediaWiki->main()
#8 /var/lib/mediawiki/index.php(53): MediaWiki->run()
#9 /var/lib/mediawiki/index.php(46): wfIndexMain()
#10 {main}

Here's how my LocalSettings.php file looks. I used "XXXXX" in some spots to keep private, but don't mind sharing if need be:

<?php
# This file was automatically generated by the MediaWiki 1.35.1
# installer. If you make manual changes, please keep track in case you
# need to recreate them later.
#
# See includes/DefaultSettings.php for all configurable settings
# and their default values, but don't forget to make changes in _this_
# file, not there.
#
# Further documentation for configuration settings may be found at:
# https://www.mediawiki.org/wiki/Manual:Configuration_settings

# Protect against web entry
if ( !defined( 'MEDIAWIKI' ) ) {
	exit;
}


## Uncomment this to disable output compression
# $wgDisableOutputCompression = true;

$wgSitename = "XXXXX";
$wgMetaNamespace = "XXXXXX";

## The URL base path to the directory containing the wiki;
## defaults for all runtime URL paths are based off of this.
## For more information on customizing the URLs
## (like /w/index.php/Page_title to /wiki/Page_title) please see:
## https://www.mediawiki.org/wiki/Manual:Short_URL
$wgScriptPath = "/mediawiki";

## The protocol and server name to use in fully-qualified URLs
$wgServer = "https://XXXX.com";

## The URL path to static resources (images, scripts, etc.)
$wgResourceBasePath = $wgScriptPath;

## The URL paths to the logo.  Make sure you change this from the default,
## or else you'll overwrite your logo when you upgrade!
$wgLogos = [ '1x' => "$wgResourceBasePath/resources/assets/framed4.png" ];

## UPO means: this is also a user preference option

$wgEnableEmail = true;
$wgEnableUserEmail = true; # UPO

$wgEmergencyContact = "XXXXX";
$wgPasswordSender = "XXXXX";

$wgEnotifUserTalk = true; # UPO
$wgEnotifWatchlist = true; # UPO
$wgEmailAuthentication = true;

## Database settings
$wgDBtype = "mysql";
$wgDBserver = "localhost";
$wgDBname = "mediawiki";
$wgDBuser = "mediawiki";
$wgDBpassword = "XXXXXXX";

# MySQL specific settings
$wgDBprefix = "wiki";

# MySQL table options to use during installation or update
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";

# Shared database table
# This has no effect unless $wgSharedDB is also set.
$wgSharedTables[] = "actor";

## Shared memory settings
$wgMainCacheType = CACHE_ACCEL;
$wgMemCachedServers = [];

## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";

# InstantCommons allows wiki to use images from https://commons.wikimedia.org
$wgUseInstantCommons = false;

# Periodically send a pingback to https://www.mediawiki.org/ with basic data
# about this MediaWiki instance. The Wikimedia Foundation shares this data
# with MediaWiki developers to help guide future development efforts.
$wgPingback = true;

## If you use ImageMagick (or any other shell command) on a
## Linux server, this will need to be set to the name of an
## available UTF-8 locale. This should ideally be set to an English
## language locale so that the behaviour of C library functions will
## be consistent with typical installations. Use $wgLanguageCode to
## localise the wiki.
$wgShellLocale = "C.UTF-8";

## Set $wgCacheDirectory to a writable directory on the web server
## to make your wiki go slightly faster. The directory should not
## be publicly accessible from the web.
#$wgCacheDirectory = "$IP/cache";

# Site language code, should be one of the list in ./languages/data/Names.php
$wgLanguageCode = "en";

$wgSecretKey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

# Changing this will log out all existing sessions.
$wgAuthenticationTokenVersion = "1";

# Site upgrade key. Must be set to a string (default provided) to turn on the
# web installer while LocalSettings.php is in place
$wgUpgradeKey = "XXXXXXXXXXXXXXXXXXXXXX";

## For attaching licensing metadata to pages, and displaying an
## appropriate copyright notice / icon. GNU Free Documentation
## License and Creative Commons licenses are supported so far.
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
$wgRightsUrl = "";
$wgRightsText = "";
$wgRightsIcon = "";

# Path to the GNU diff3 utility. Used for conflict resolution.
$wgDiff3 = "/usr/bin/diff3";

# The following permissions were set based on your choice in the installer
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false;

## Default skin: you can change the default skin. Use the internal symbolic
## names, ie 'vector', 'monobook':
$wgDefaultSkin = 'smfcurve2';

# Enabled skins.
# The following skins were automatically enabled:
wfLoadSkin( 'MonoBook' );
wfLoadSkin( 'Timeless' );
wfLoadSkin( 'Vector' );
wfLoadSkin( 'smfcurve2' );


# Enabled extensions. Most of the extensions are enabled by adding
# wfLoadExtension( 'ExtensionName' );
# to LocalSettings.php. Check specific extension documentation for more details.
# The following extensions were automatically enabled:
wfLoadExtension( 'CategoryTree' );
wfLoadExtension( 'Cite' );
wfLoadExtension( 'CodeEditor' );
wfLoadExtension( 'ConfirmEdit' );
wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'ImageMap' );
wfLoadExtension( 'InputBox' );
wfLoadExtension( 'LocalisationUpdate' );
wfLoadExtension( 'MultimediaViewer' );
wfLoadExtension( 'OATHAuth' );
wfLoadExtension( 'PageImages' );
wfLoadExtension( 'ParserFunctions' );
wfLoadExtension( 'Poem' );
wfLoadExtension( 'Scribunto' );
wfLoadExtension( 'SecureLinkFixer' );
wfLoadExtension( 'SpamBlacklist' );
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
wfLoadExtension( 'TemplateData' );
wfLoadExtension( 'TextExtracts' );
wfLoadExtension( 'TitleBlacklist' );
wfLoadExtension( 'VisualEditor' );
wfLoadExtension( 'WikiEditor' );

# End of automatically generated settings.
# Add more configuration options below.

$wgSessionCacheType = CACHE_DB;

wfLoadExtension('ForumSsoProvider');
$wgSMFPath = '/var/www/html';
$wgFSPSoftware = 'smf2.1';

error_reporting( -1 );
ini_set( 'display_errors', 1 );

$wgShowExceptionDetails = true;
$wgShowDBErrorBacktrace = true;

All in all, I have no idea what I'm doing wrong to get this working. I'm hoping you can get me in the right direction.

I am running:
SMF 2.1 RC3
Mediawiki 1.35.1
PHP 7.3.19
Apache 2.4.38
MariaDB 10.3.27

Thank you,
Mike

Error when not logged in in v1.41

Description

In v1.4.1 they changed the function signature of TemporaryPasswordPrimaryAuthenticationProvider (1.40 vs 1.41), which results in the following error:

Original exception: [55272281e6a09665700b0a41] /wiki/Main_Page/history TypeError: MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider::__construct(): Argument #1 ($dbProvider) must be of type Wikimedia\Rdbms\IConnectionProvider, Wikimedia\Rdbms\LoadBalancer given, called in /var/www/html/w/extensions/ForumSsoProvider/ForumAuthManager.php on line 36
Backtrace:
from /var/www/html/w/includes/auth/TemporaryPasswordPrimaryAuthenticationProvider.php(74)
#0 /var/www/html/w/extensions/ForumSsoProvider/ForumAuthManager.php(36): MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider->__construct(Wikimedia\Rdbms\LoadBalancer, MediaWiki\User\UserOptionsManager, array)
#1 /var/www/html/w/vendor/wikimedia/object-factory/src/ObjectFactory.php(240): ForumAuthManager->__construct()
#2 /var/www/html/w/vendor/wikimedia/object-factory/src/ObjectFactory.php(149): Wikimedia\ObjectFactory\ObjectFactory::getObjectFromSpec(array, array)
#3 /var/www/html/w/includes/auth/AuthManager.php(2496): Wikimedia\ObjectFactory\ObjectFactory->createObject(array, array)
#4 /var/www/html/w/includes/auth/AuthManager.php(2541): MediaWiki\Auth\AuthManager->providerArrayFromSpecs(string, array)
#5 /var/www/html/w/includes/auth/AuthManager.php(1051): MediaWiki\Auth\AuthManager->getPrimaryAuthenticationProviders()
#6 /var/www/html/w/includes/skins/SkinTemplate.php(535): MediaWiki\Auth\AuthManager->canCreateAccounts()
#7 /var/www/html/w/includes/skins/SkinTemplate.php(501): SkinTemplate->useCombinedLoginLink()
#8 /var/www/html/w/includes/skins/SkinTemplate.php(1035): SkinTemplate->buildPersonalUrls(boolean)
#9 /var/www/html/w/includes/skins/SkinTemplate.php(604): SkinTemplate->buildContentNavigationUrlsInternal()
#10 /var/www/html/w/includes/skins/SkinTemplate.php(181): SkinTemplate->getPortletsTemplateData()
#11 /var/www/html/w/includes/skins/SkinMustache.php(125): SkinTemplate->getTemplateData()
#12 /var/www/html/w/skins/Vector/includes/SkinVectorLegacy.php(161): SkinMustache->getTemplateData()
#13 /var/www/html/w/includes/skins/SkinMustache.php(92): MediaWiki\Skins\Vector\SkinVectorLegacy->getTemplateData()
#14 /var/www/html/w/includes/skins/SkinTemplate.php(174): SkinMustache->generateHTML()
#15 /var/www/html/w/includes/Output/OutputPage.php(2947): SkinTemplate->outputPage()
#16 /var/www/html/w/includes/MediaWiki.php(978): MediaWiki\Output\OutputPage->output(boolean)
#17 /var/www/html/w/includes/MediaWiki.php(613): MediaWiki->main()
#18 /var/www/html/w/index.php(50): MediaWiki->run()
#19 /var/www/html/w/index.php(46): wfIndexMain()
#20 {main}

This only seems to occur if you aren't logged into SMF, looks like it works fine when you're already logged in.

@jdarwood007 I don't know MediaWiki well enough to fix it myself, but it'd be great if you could please take a look?

Steps to reproduce

  1. Upgrade to MediaWiki >= v1.41.
  2. Install latest smf-mw-auth extension from master.
  3. Log out of SMF.
  4. Hit any page on the wiki; I tried /wiki/Main_Page/history.

Environment (complete as necessary)

  • Version/Git revision: master
  • Database Type: MySQL
  • Database Version: 8.3.0
  • PHP Version: 8.3

Additional information/references

MW login not working

Using commit 357df72 I get following warning:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, object given in /home/USER/html/test/w/extensions/Auth_SMF.php on line 157

Aside from this (or perhaps because of it?) the bridge isn't working as intended. I try logging in to SMF through the Log In button in MW, which succeeds, but my logged in user isn't detected on the MW side. Th e user I'm logging in with is a forum administrator.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.