Пример #1
0
     print_table_footer();
 }
 print_form_header('usergroup', 'update');
 print_column_style_code(array('width: 70%', 'width: 30%'));
 $channePermHandler = vB_ChannelPermission::instance();
 $channelPerms = $channePermHandler->fetchPermSettings();
 $channelPermFields = $channePermHandler->fetchPermFields();
 //we don't need to bitmap fields- those we handle differently
 unset($channelPermFields['moderatorpermissions']);
 unset($channelPermFields['createpermissions']);
 unset($channelPermFields['forumpermissions']);
 unset($channelPermFields['forumpermissions2']);
 $channelPhrases = $channePermHandler->fetchPermPhrases();
 $groupinfo = array();
 //$usergroup contains disabled fields that are set in fetchUsergroupByID to -1 so we need the original values
 $disabled_perms = get_disabled_perms($vbulletin->GPC['usergroupid']);
 $usergroup_org = vB::getDbAssertor()->getRow('usergroup', array('usergroupid' => $vbulletin->GPC['usergroupid']));
 if (!$usergroup_org) {
     $usergroup_org = array();
 }
 if ($_REQUEST['do'] == 'add') {
     if (!empty($vbulletin->GPC['defaultgroupid'])) {
         $usergroup = vB_Api::instanceInternal('usergroup')->fetchUsergroupByID($vbulletin->GPC['defaultgroupid']);
         $ug_bitfield = array();
         foreach ($vbulletin->bf_ugp as $permissiongroup => $fields) {
             $ug_bitfield["{$permissiongroup}"] = convert_bits_to_array($usergroup["{$permissiongroup}"], $fields);
         }
     } else {
         $ug_bitfield = array('genericoptions' => array('showgroup' => 1, 'showeditedby' => 1, 'isnotbannedgroup' => 1), 'forumpermissions' => array('canview' => 1, 'canviewothers' => 1, 'cangetattachment' => 1, 'cansearch' => 1, 'canthreadrate' => 1, 'canpostattachment' => 1, 'canpostpoll' => 1, 'canvote' => 1, 'canviewthreads' => 1), 'forumpermissions2' => array('cangetimgattachment' => 1), 'wolpermissions' => array('canwhosonline' => 1), 'createpermissions' => array(), 'moderatorpermissions' => array(), 'genericpermissions' => array('canviewmembers' => 1, 'canmodifyprofile' => 1, 'canseeprofilepic' => 1, 'canusesignature' => 1, 'cannegativerep' => 1, 'canuserep' => 1, 'cansearchft_nl' => 1));
         // set default numeric permissions
         $usergroup = array('pmquota' => 0, 'pmsendmax' => 5, 'attachlimit' => 1000000, 'avatarmaxwidth' => 200, 'avatarmaxheight' => 200, 'avatarmaxsize' => 20000, 'profilepicmaxwidth' => 100, 'profilepicmaxheight' => 100, 'profilepicmaxsize' => 25000, 'sigmaxsizebbcode' => 7);
Пример #2
0
/**
* Rebuilds the $vbulletin->usergroupcache
*/
function build_channel_permissions()
{
    global $vbulletin, $npermscache;
    $grouppermissions = array();
    $npermscache = array();
    $vbulletin->usergroupcache = array();
    // query usergroups
    $usergroups = vB::getDbAssertor()->assertQuery('usergroup', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_SELECT), 'title');
    foreach ($usergroups as $usergroup) {
        foreach ($usergroup as $key => $val) {
            if (is_numeric($val)) {
                $usergroup["{$key}"] += 0;
            }
        }
        $vbulletin->usergroupcache["{$usergroup['usergroupid']}"] = $usergroup;
        $vbulletin->usergroupcache["{$usergroup['usergroupid']}"] = get_disabled_perms($usergroup['usergroupid']) + $vbulletin->usergroupcache["{$usergroup['usergroupid']}"];
        // Legacy Hook 'admin_build_forum_perms_group' Removed //
        $grouppermissions["{$usergroup['usergroupid']}"] = $usergroup['forumpermissions'];
    }
    unset($usergroup);
    DEVDEBUG('updateChannelCache( ) - Queried Usergroups');
    // query forum permissions
    $permQry = vB::getDbAssertor()->assertQuery('vBForum:permission', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_SELECT));
    $permissions = array();
    foreach ($permQry as $cperm) {
        $permissions["{$cperm['groupid']}"]["{$cperm['nodeid']}"] = $cperm;
        $npermscache["{$cperm['nodeid']}"]["{$cperm['groupid']}"] = $cperm;
        // Legacy Hook 'admin_build_channel_perms_forum' Removed //
    }
    $userContext = vB::getUserContext();
    if ($userContext) {
        $userContext->rebuildGroupAccess();
    }
    DEVDEBUG('updateChannelCache( ) - Queried Channel Pemissions');
    // call the function that will work out the forum permissions
    cache_forum_permissions();
    // finally replace the existing cache templates
    $vbulletin->usergroupcache = vB::getDatastore()->buildUserGroupCache($vbulletin->usergroupcache);
}