Beispiel #1
0
	</script>
	<?php 
    print_form_header('forumpermission', 'doupdate');
    if (empty($forumpermissionid)) {
        $forum = $vbulletin->forumcache["{$forumid}"];
        $usergroup = $vbulletin->usergroupcache["{$usergroupid}"];
        if (!$forum) {
            print_table_footer();
            print_stop_message('invalid_forum_specified');
        } else {
            if (!$usergroup) {
                print_table_footer();
                print_stop_message('invalid_usergroup_specified');
            }
        }
        $getperms = fetch_forum_permissions($usergroupid, $forumid);
        construct_hidden_code('forumpermission[usergroupid]', $usergroupid);
        construct_hidden_code('forumid', $forumid);
    } else {
        $getperms = $db->query_first("\n\t\t\tSELECT *\n\t\t\tFROM " . TABLE_PREFIX . "forumpermission\n\t\t\tWHERE forumpermissionid = {$forumpermissionid}\n\t\t");
        if (!$getperms) {
            print_table_footer();
            print_stop_message('invalid_forum_permissions_specified');
        }
        $usergroup['title'] = $vbulletin->usergroupcache["{$getperms['usergroupid']}"]['title'];
        $forum['title'] = $vbulletin->forumcache["{$getperms['forumid']}"]['title'];
        construct_hidden_code('forumpermissionid', $forumpermissionid);
    }
    $forumpermission = convert_bits_to_array($getperms['forumpermissions'], $vbulletin->bf_ugp_forumpermissions);
    print_table_header(construct_phrase($vbphrase['edit_forum_permissions_for_usergroup_x_in_forum_y'], $usergroup['title'], $forum['title']));
    print_description_row('
Beispiel #2
0
/**
 * Build the forum permissions for a specific forum, user or group
 *
 * @param int The forum ID to build permissions for (0 builds for all forums)
 * @param int The user to build the permissions for (0 will select the uid automatically)
 * @param int The group of the user to build permissions for (0 will fetch it)
 * @return array Forum permissions for the specific forum or forums
 */
function forum_permissions($fid = 0, $uid = 0, $gid = 0)
{
    global $db, $cache, $groupscache, $forum_cache, $fpermcache, $mybb, $usercache, $cached_forum_permissions_permissions, $cached_forum_permissions;
    if ($uid == 0) {
        $uid = $mybb->user['uid'];
    }
    if (!$gid || $gid == 0) {
        if ($uid != 0 && $uid != $mybb->user['uid']) {
            if (!$usercache[$uid]) {
                $query = $db->simple_select("users", "*", "uid='{$uid}'");
                $usercache[$uid] = $db->fetch_array($query);
            }
            $gid = $usercache[$uid]['usergroup'] . "," . $usercache[$uid]['additionalgroups'];
            $groupperms = usergroup_permissions($gid);
        } else {
            $gid = $mybb->user['usergroup'];
            if (isset($mybb->user['additionalgroups'])) {
                $gid .= "," . $mybb->user['additionalgroups'];
            }
            $groupperms = $mybb->usergroup;
        }
    }
    if (!is_array($forum_cache)) {
        $forum_cache = cache_forums();
        if (!$forum_cache) {
            return false;
        }
    }
    if (!is_array($fpermcache)) {
        $fpermcache = $cache->read("forumpermissions");
    }
    if ($fid) {
        if (!$cached_forum_permissions_permissions[$gid][$fid]) {
            $cached_forum_permissions_permissions[$gid][$fid] = fetch_forum_permissions($fid, $gid, $groupperms);
        }
        return $cached_forum_permissions_permissions[$gid][$fid];
    } else {
        if (!$cached_forum_permissions[$gid]) {
            foreach ($forum_cache as $forum) {
                $cached_forum_permissions[$gid][$forum['fid']] = fetch_forum_permissions($forum['fid'], $gid, $groupperms);
            }
        }
        return $cached_forum_permissions[$gid];
    }
}