vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   Command Line Scripting - How to 'become a user' (https://vborg.vbsupport.ru/showthread.php?t=310343)

Rami114 04-09-2014 10:48 AM

Command Line Scripting - How to 'become a user'
 
For all you programmers out there that, like me, want to be able to automate jobs to run on-demand from the CL! I do like the data managers, but they expect $vbulletin to have the user state set. The 'hard' bit here was to figure out: how do I force $vbulletin to represent a particular user? Fortunately it turns out to be easier than I thought.

Note: you must do the normal include of global.php (at least) to get $vbulletin. E.g.:

PHP Code:

$oldPath getcwd();
chdir('<your_vb_path_here>');
require_once(
'./global.php');
// Other includes from VB you might need
chdir($oldPath); 

Then you can impersonate a user:

PHP Code:

$userid '1';
// Become our user
$vbulletin->userinfo fetch_userinfo($userid); 

With just that, you can now pass $vbulletin to any of the data managers as if it was the user itself doing it.

For instance, in my case I've added some custom userfields to represent API credentials for an MMO which they must fill in correctly at registration. I then have a cronjob to fetch all users that are registered, get their API details, fetch their MMO Avatar image and set it as their forum avatar. Easy!

Hope it helps some people, I couldn't find documentation on user impersonation.


All times are GMT. The time now is 07:16 AM.

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.01117 seconds
  • Memory Usage 1,709KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (1)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete