Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
Prev Previous Post   Next Post Next
  #39  
Old 11-13-2012, 12:51 AM
Sangheili Sangheili is offline
 
Join Date: Mar 2007
Posts: 19
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by DrPrepper View Post
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
I've applied all the edits above and it stops it from working, I get incorrect password errors. Did you miss anything out? Is anything posted incorrectly?

Edit:

I did this in a different way and it worked.
Reply With Quote
 

Thread Tools
Display Modes

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 10:06 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.07925 seconds
  • Memory Usage 3,548KB
  • 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