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

Reply
 
Thread Tools Display Modes
  #1  
Old 11-01-2014, 08:16 AM
TheAdminMarket's Avatar
TheAdminMarket TheAdminMarket is offline
 
Join Date: Jun 2013
Location: Thessaloniki, Greece
Posts: 511
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Permissions for specific user

Hello,

I've seen that with the code below I can check if the active user has permissions for a specific action:
Code:
if ($permissions["my_plugin"] & $vbulletin->bf_ugp["my_plugin"]["post"])
{
     echo "He can post";
} else {
     echo "No permissions to post";
}
But as I said before this works for the current active user. What if I want to check if the user with userid=77 has such permission?

Checking a relevant code I found how to get the online status of a specific user:
Code:
$userid = 77;
$userinfo = verify_id('user', $userid, 1, 1);
$online_status = fetch_online_status($userinfo, true);
So, is there any similar way to get as true/false if a specific user has a specific permission?

EDITED ----------------

Currently I'm using the follow way to do it:
1.- I'm setting a vBulltin option to hold the usegroupids that have this permission: eg 1,4,5
2.- With the help of a function I'm getting the result
PHP Code:
function getPostPermission($userid)
{
    global 
$db$vbulletin$vboptions$permission;

    if (!
$userid || $userid <= 0)
    {
        
$permission 0;
    } else {
        
$sql_user $vbulletin->db->query_first("SELECT * FROM ".TABLE_PREFIX."user WHERE userid=$userid LIMIT 1");
        
$all_ids = array();
        
$all_ids explode(','$sql_user["membergroupids"]);
        
array_push($all_ids$sql_user["usergroupid"]);
        
$allowed = array();
        
$allowed explode(','$vbulletin->options["post_usergroups"]);
        
$has_common array_intersect($all_ids$allowed);
        if (
count($has_common) == 0)
        {
            
$permission 0;
        } else {
            
$permission 1;
        }
    }
    return 
$permission;

Thank you
Reply With Quote
  #2  
Old 11-01-2014, 09:15 AM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I think you could call fetch_userinfo() then fetch_permissions() (both in includes/functions.php). Maybe something like:
PHP Code:
$check_user fetch_userinfo($userid);
$check_permissions fetch_permissions(0$userid$check_userfalse); 
then use $check_permissions like you do for the current user. I haven't tried it though, I just looked up these functions.

For fetch_permissions(), the first parameter is a forumid, in case you want to check permissions for a specific forum. And the last parameter tells it whether or not you need the calendar permissions for the user.
Reply With Quote
Благодарность от:
TheAdminMarket
  #3  
Old 11-01-2014, 09:20 AM
TheAdminMarket's Avatar
TheAdminMarket TheAdminMarket is offline
 
Join Date: Jun 2013
Location: Thessaloniki, Greece
Posts: 511
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you. I'll give a try when I'll be back to my desk, but from what I can see, it looks to be correct. Does it needs to include any file? eg for online user I was calling a file bigtree (or something similar, don't remember the name right now).
Reply With Quote
  #4  
Old 11-01-2014, 09:22 AM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm not sure. Those functions are in includes/functions.php, but that may be included already depending where you're calling it. I'm not sure if requires any other includes, but I'd guess that it doesn't.
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 10:01 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04494 seconds
  • Memory Usage 2,203KB
  • Queries Executed 11 (?)
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
  • (2)bbcode_code
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (1)post_thanks_box_bit
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete