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

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 09-28-2009, 10:01 AM
MrEyes MrEyes is offline
 
Join Date: Nov 2004
Posts: 380
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Logon to admin account (automated)

Hello all,

I have various housekeeping scripts that are run by OS level scheduling, one of these is a database backup. During the backup I want the site to be gracefully closed so I knocked up a quick script that set the open/close state of the forum (this would be invoked via wget in my backup script)

Code:
if ($vbulletin->GPC['do'] == 'open')
{
	$vbulletin->options['bbactive'] = '1';
	$vbulletin->options['bbclosedreason'] = '';
	build_datastore('options', serialize($vbulletin->options), 1);
	echo 'Opened';
}
else if ($vbulletin->GPC['do'] == 'close')
{
	$vbulletin->options['bbactive'] = '0';
	$vbulletin->options['bbclosedreason'] = 'This is closed';
	build_datastore('options', serialize($vbulletin->options), 1);
	echo 'Closed';
}
Before anybodies head explodes, this is just the meat of the script. This is all wrapped up in various layers of security and can only be called from localhost.

Now, this will allow me to gracefully close, however it does not allow me to open. The reason for this is that the script technically runs as guest. So when I read in global.php and init vbulletin aborts out as the site is closed. This mean that the open code above is never executed and the site remains closed.

The obvious solution to this problem would be to get the script to login as an administrator (i.e. somebody who is allowed to bypass the close message), however I cannot find anything to do this.

So the question is, how can I automate the login?

--------------- Added [DATE]1254137747[/DATE] at [TIME]1254137747[/TIME] ---------------

Actually I have found an alternative solution that seems to work. It is, shall we say, somewhat hacky but it does seem to work.

In my script I originally had this:

Code:
define('THIS_SCRIPT', 'bbactivetoggle');
The script works if I change this to:

Code:
define('THIS_SCRIPT', 'login');
The reason it works is that there is code in global.php to bypass the forum active check if the page being requested is the login script (without this admins would not be able to login either)

It is a bit hacky but I don't think it will break anything.
Reply With Quote
 


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 07:48 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.03310 seconds
  • Memory Usage 2,225KB
  • 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
  • (3)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)showthread_list
  • (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_threadedmode.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_threaded
  • showthread_threaded_construct_link
  • 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