/** * 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; } } } } }
/** * 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; } } } } }