Пример #1
0
/**
 * Checks if a moderator has permissions to perform an action in a specific forum
 *
 * @param int The forum ID (0 assumes global)
 * @param string The action tyring to be performed. (blank assumes any action at all)
 * @param int The user ID (0 assumes current user)
 * @return bool Returns true if the user has permission, false if they do not
 */
function is_moderator($fid = "0", $action = "", $uid = "0")
{
    global $mybb, $cache;
    if ($uid == 0) {
        $uid = $mybb->user['uid'];
    }
    if ($uid == 0) {
        return false;
    }
    $user_perms = user_permissions($uid);
    if ($user_perms['issupermod'] == 1) {
        if ($fid) {
            $forumpermissions = forum_permissions($fid);
            if ($forumpermissions['canview'] && $forumpermissions['canviewthreads'] && !$forumpermissions['canonlyviewownthreads']) {
                return true;
            }
            return false;
        }
        return true;
    } else {
        if (!$fid) {
            $modcache = $cache->read('moderators');
            if (!empty($modcache)) {
                foreach ($modcache as $modusers) {
                    if (isset($modusers['users'][$uid]) && $modusers['users'][$uid]['mid']) {
                        return true;
                    } elseif (isset($modusers['usergroups'][$user_perms['gid']])) {
                        // Moderating usergroup
                        return true;
                    }
                }
            }
            return false;
        } else {
            $modperms = get_moderator_permissions($fid, $uid);
            if (!$action && $modperms) {
                return true;
            } else {
                if ($modperms[$action] == 1) {
                    return true;
                } else {
                    return false;
                }
            }
        }
    }
}
Пример #2
0
/**
 * Checks if a moderator has permissions to perform an action in a specific forum
 *
 * @param int The forum ID (0 assumes global)
 * @param string The action tyring to be performed. (blank assumes any action at all)
 * @param int The user ID (0 assumes current user)
 * @return bool Returns true if the user has permission, false if they do not
 */
function is_moderator($fid = "0", $action = "", $uid = "0")
{
    global $mybb, $cache;
    if ($uid == 0) {
        $uid = $mybb->user['uid'];
    }
    if ($uid == 0) {
        return false;
    }
    $user_perms = user_permissions($uid);
    if ($user_perms['issupermod'] == 1) {
        return true;
    } else {
        if (!$fid) {
            $modcache = $cache->read('moderators');
            if (!empty($modcache)) {
                foreach ($modcache as $modusers) {
                    if (isset($modusers[$uid]) && $modusers[$uid]['mid']) {
                        return true;
                    }
                }
            }
            return false;
        } else {
            $modperms = get_moderator_permissions($fid, $uid);
            if (!$action && $modperms) {
                return true;
            } else {
                if ($modperms[$action] == 1) {
                    return true;
                } else {
                    return false;
                }
            }
        }
    }
}