vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   Default Bitfield Permissions? (https://vborg.vbsupport.ru/showthread.php?t=240743)

Jaxel 04-18-2010 04:47 PM

Default Bitfield Permissions?
 
I have the following usergroup permissions file:

Code:

<?xml version="1.0" encoding="ISO-8859-1"?>

<bitfields product="medialibrary">
        <bitfielddefs>
                <group name="ugp">
                        <group name="medialibperms">
                                <bitfield group="medialibperms" name="canview" phrase="can_media_view" install="1,2,3,4,5,6,7">1</bitfield>
                                <bitfield group="medialibperms" name="candeta" phrase="can_media_deta" install="1,2,3,4,5,6,7">2</bitfield>
                                <bitfield group="medialibperms" name="cansubm" phrase="can_media_subm" install="2,5,6,7">4</bitfield>
                                <bitfield group="medialibperms" name="cancomm" phrase="can_media_comm" install="2,5,6,7">8</bitfield>
                                <bitfield group="medialibperms" name="canrate" phrase="can_media_rate" install="2,5,6,7">16</bitfield>
                                <bitfield group="medialibperms" name="canrepo" phrase="can_media_repo" install="2,5,6,7">32</bitfield>
                        </group>
                        <group name="medialibmodperms">
                                <bitfield group="medialibmodperms" name="canmodsubm" phrase="can_media_mod_subm" install="5,6,7">1</bitfield>
                                <bitfield group="medialibmodperms" name="canmodcomm" phrase="can_media_mod_comm" install="5,6,7">2</bitfield>
                                <bitfield group="medialibmodperms" name="canmoddeta" phrase="can_media_mod_deta" install="6">4</bitfield>
                                <bitfield group="medialibmodperms" name="canmodtags" phrase="can_media_mod_tags" install="6">8</bitfield>
                                <bitfield group="medialibmodperms" name="canmodcats" phrase="can_media_mod_cats" install="6">16</bitfield>
                                <bitfield group="medialibmodperms" name="canmodhost" phrase="can_media_mod_host" install="6">32</bitfield>
                        </group>
                </group>
        </bitfielddefs>
</bitfields>

Code:

                        <installcode><![CDATA[
                                require_once(DIR . '/includes/class_dbalter.php');
                                $dbalter = new vB_Database_Alter_MySQL($db);

                                echo('<ul>');
                                echo('<li>Altering Table <strong>usergroup</strong> ...');
                                vbflush();

                                $dbalter->fetch_table_info('usergroup');
                                $dbalter->add_field(array('name'=>'medialibperms','type'=>'INT','length'=>'10','attributes'=>'UNSIGNED','null'=>false,'default'=>'0'));
                                $dbalter->add_field(array('name'=>'medialibmodperms','type'=>'INT','length'=>'10','attributes'=>'UNSIGNED','null'=>false,'default'=>'0'));

                                echo('Done!</li>');
                                echo('</ul>');
                                vbflush();
                        ]]></installcode>

As you can see, I am using the "install=" parameter to give permission to certain usergroups by default. In VB3x, this worked fine for me. However, I have determined that this parameter is no longer functioning as intended. Now it appears that none of my usergroups are getting any permissions by default. What am I doing wrong for VB4x?

Jaxel 04-19-2010 05:03 PM

Okay... update to this problem... I am using the following code in a plugin:
Code:

$perms['submit'] = ($permissions['medialibperms'] & $vbulletin->bf_ugp_medialibperms['cansubm']);

And then later in the plugin it calls for a template, and in that template I have the following:
Code:

<vb:if condition="$perms['submit']">
        <li><a href="{vb:raw href.submit}">{vb:phrase media_submit}</a></li>
</vb:if>


The template call works fine, as if I change the first line to code to the following, it successfully conditions the IF:
Code:

$perms['submit'] = true;

However, that means that the first line of code is inherently broken. The code works great in my PHP files, however in this plugin, it doesn't. I have global $permission set in the plugin, so there is no reason the permission shouldn't work. It works on MY forum, but it doesn't seem to work on everybody's. Is there something I am missing?

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

New update... the following code works...
Code:

$perms['submit'] =$vbulletin->bf_ugp_medialibperms['cansubm'];

Why does this part of the code fail? It doesn't fail on MY forum, but it fails on others.
Code:

$permissions['medialibperms']
--------------- Added [DATE]1271702950[/DATE] at [TIME]1271702950[/TIME] ---------------

Okay... another update

$perms['submit'] = $vbulletin->bf_ugp_medialibperms['cansubm']; ALWAYS RETURNS TRUE (not good)

So in order to get permissions to work, you MUST use:

$perms['submit'] = ($permissions['medialibperms'] & $vbulletin->bf_ugp_medialibperms['cansubm']);

Once again, works great on my forum... not working on some other people's forums... Is there a reason why?

Jaxel 04-21-2010 03:20 PM

Has anyone been able to figure this out for me? There are TWO different issues here...

Neo_obs 12-22-2010 08:16 AM

Did you ever get this working correctly? Does it still work on your forum but not on others?

Just wondering because I have the same issue and was wondering if maybe we can figure this out.

randyv12 12-22-2010 07:24 PM

i actually tested the vb database alter code on my user table and it actually added medialibs
i'm thinking maybe its your vbflush() call because once i actually added those in my code the script stopped on that point.. i ran it on a debugger :P

i tested this on a separate vb page tho... i dont even know how vbflush works.. all the doc says is that it will output a buffer to the browser..


All times are GMT. The time now is 10:30 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.01975 seconds
  • Memory Usage 1,736KB
  • 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
  • (7)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)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