Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 04-23-2009, 05:26 AM
warhau warhau is offline
 
Join Date: Mar 2009
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Hook for external authentication?

Hi. I'm writing a plugin to use our external user database via SOAP. It creates the user in vb if the user does not already exist. If it does exist, it updates the vb password for the user to match whatever got authenticated through SOAP.

Everything works perfectly, except when a new user is created in vbb, they then get the failed log message. Simply refreshing the page logs them in.

It's currently hooked at global_complete. Is there an existing hook which would solve the failed login message on new account creation, or does it sound like I missing something in the code? Any example of this type of thing out there?

Version is 3.82.

Thanks in advance.
Reply With Quote
  #2  
Old 04-23-2009, 05:32 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

How are you authenticating vBulletin? Are you setting cookies?
Reply With Quote
  #3  
Old 04-23-2009, 01:48 PM
warhau warhau is offline
 
Join Date: Mar 2009
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Cookieuser is set as soon as they pass external auth. The account gets created fine. The only problem is that VB gives an incorrect login message following new account creation. Refreshing the error page logs the new user in without a problem.

Here's my code from that point until the end of the plugin:

Code:
	// User passed external authentication so set cookie
	$vbulletin->GPC['cookieuser'] = $vbulletin->GPC['vb_login_username'];

	// Check to see if externally authed user exists in VB
	$userid = $vbulletin->db->query_first_slave("
	SELECT userid
	FROM ".TABLE_PREFIX."user
	WHERE LOWER(email) = LOWER('".mysql_real_escape_string($vbulletin->GPC['vb_login_username'])."')");

	// If they exist in VB, get the userid
	if ($userid) {
		$newuser->set_existing(fetch_userinfo($userid['userid'], 0));
		$newuser->set('password', $passwd);
		}
	// If not set up the externally authed user in VB
	else {
		$newuser->set('email', strtolower($vbulletin->GPC['vb_login_username']));
		$newuser->set('username', $myuser);
		$newuser->set('usergroupid', 9);
		$newuser->set_bitfield('options', 'adminemail', true);
		$newuser->set_bitfield('options', 'emailonpm', true);
		$newuser->set_bitfield('options', 'vm_enable', true);
		$newuser->set('pmpopup', 1);
		$newuser->set('password', $passwd);
		$newuser->set('ipaddress',$ip);
		}
	// Return errors if there are any
	if ($newuser->errors) {
		process_logout();
		eval(standard_error("Error creating/updating user<br/>" . $newuser->errors[0]));
		}
	// If not, save user
	else {
		$newuserid = $newuser->save();
		}
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 04:47 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03238 seconds
  • Memory Usage 2,177KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete