Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #38  
Old 11-08-2012, 01:52 PM
DrPrepper DrPrepper is offline
 
Join Date: Jan 2012
Posts: 19
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Tahm View Post
I did some testing with this and the code found here ( http://www.mediawiki.org/wiki/Extens...rs_Integration ) seems to work fine with the current version of MediaWiki. My problem is controlling access with UserGroups via vBulletin. Does anyone know how to do that or could possibly point me in the right direction?
In the mean time a couple of years later, but I wanted this bridge between mediawiki and vbulletin too, and got it working, albeit with a few tweaks.

My setup:

* vBulletin 4.2.0 PL3
* Mediawiki 1.19.2
* PHP 5.3.17

I added a custom usergroup 'wiki' to vB. Members of this group (and admins and mods) are granted to log in to the wiki.

I used the code from the quoted extention above, but ran into 2 things:
  1. Group selection was to 'tight' for me. I wanted to control the wiki access with an additional custom usergroup (so not the primary group)
  2. I wanted to allow spaces, dashes and dots in usernames, since both Mediawiki as vB allow that currently

@group selection

In the functions userExists (and authenticate subsequently) I changed the query from

PHP Code:
$vb_find_user_query "SELECT usergroupid FROM " $this->vb_prefix "user WHERE LOWER(username)=LOWER('" $username "')"
to

PHP Code:
$vb_find_user_query "SELECT CONCAT_WS(',',usergroupid,membergroupids) as groups FROM " $this->vb_prefix "user WHERE LOWER(username)=LOWER('" $username "')"
With this, you can query both usergroup & membersgroups together.
Since you can have multiple id's in this 'group', the code to match it to the $this->allowed_usergroups needed a little tweaking.

I changed the bottom part of the same 2 functions from

PHP Code:
if (in_array($vb_userinfo['usergroupid'], $this->allowed_usergroups)) {
   return 
TRUE;

to

PHP Code:
if (count(array_intersect($this->allowed_usergroupsexplode(",",$vb_userinfo['groups']))) >= 1) {
   return 
TRUE;

This way it doesn't matter if a member had one or more matching groups with the allowed_usergroups.

@allowed characters

Unfortunately I didn't succeed in modifying the search pattern to only accept alphanumeric or underscore characters in usernames. I did a dirty workaround to bypass the whole check.

I replaced

PHP Code:
(!preg_match($this->searchpattern$username)) 
with

PHP Code:
(count_chars($username) > 
in both functions.
If someone has a better solution I'd like to hear it. I'm not that kind of a guru at PHP
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 02:56 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.07796 seconds
  • Memory Usage 3,556KB
  • 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
  • (2)bbcode_code
  • (12)bbcode_php
  • (12)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (40)post_thanks_box
  • (40)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (40)post_thanks_postbit_info
  • (40)postbit
  • (40)postbit_onlinestatus
  • (40)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_postinfo_query
  • fetch_postinfo
  • 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