From c42c2dd12e13310bb85925788cdc598d06935d49 Mon Sep 17 00:00:00 2001 From: Nikita Petko Date: Mon, 6 Dec 2021 18:09:27 +0000 Subject: [PATCH] Update DOC --- globals/Dependencies/Web/IpRange.php | 64 ++++++++++++++++++++ globals/Dependencies/Web/WebsiteSettings.php | 15 +++++ 2 files changed, 79 insertions(+) diff --git a/globals/Dependencies/Web/IpRange.php b/globals/Dependencies/Web/IpRange.php index 67646f7..9d04ec0 100644 --- a/globals/Dependencies/Web/IpRange.php +++ b/globals/Dependencies/Web/IpRange.php @@ -32,7 +32,10 @@ namespace Alphaland\Web { class IpHelper { /** + * Is the given IP address a valid IPv4 address? + * * @param string $ip IP address + * * @return bool true if IP is an IPv4 address */ public static function IsIpv4(string $ip) @@ -41,7 +44,10 @@ namespace Alphaland\Web { } /** + * Is the given IP address a valid IPv6 address? + * * @param string $ip IP address + * * @return bool true if IP is an IPv6 address */ public static function IsIpv6(string $ip) @@ -50,7 +56,10 @@ namespace Alphaland\Web { } /** + * Is the given IP address a valid IPv4 or IPv6 address? + * * @param string $ip IP address + * * @return bool true if IP is an IPv4 or IPv6 address */ public static function IsIp(string $ip) @@ -59,8 +68,16 @@ namespace Alphaland\Web { } /** + * Determines if the given ip is in the IP range notation like below: + * + * $ip = "127.0.0.1" + * $range = "127.0.0.0-127.255.255.255" + * + * $isInRange = IpHelper::IsIpInRange($ip, $range); // true + * * @param string $ip IP address * @param string $range IP range + * * @return bool true if IP is in the range */ public static function IsIpInRange(string $ip, string $range) @@ -84,6 +101,14 @@ namespace Alphaland\Web { return false; } + /** + * Determines if the given address is in the list of IP range notations. + * + * @param string $ip IP address + * @param array $ranges IP ranges + * + * @return bool true if IP is in any of the ranges + */ public static function IsIpInRangeList(string $ip, array $ranges) { foreach ($ranges as $range) { @@ -96,8 +121,16 @@ namespace Alphaland\Web { } /** + * Determine if the given IP is in the Netmask notation like below: + * + * $ip = "127.0.0.1" + * $netmask = "127.0.0.0/255.255.255.0" + * + * $isInNetmask = IpHelper::IsIpInNetmask($ip, $netmask); // true + * * @param string $ip IP address * @param string $netmask Netmask + * * @return bool true if IP is in the netmask */ public static function IsIpInNetmask(string $ip, string $netmask) @@ -116,6 +149,14 @@ namespace Alphaland\Web { return false; } + /** + * Determines if the given address is in the list of Netmask notations. + * + * @param string $ip IP address + * @param array $netmasks Netmasks + * + * @return bool true if IP is in any of the netmasks + */ public static function IsIpInNetmaskList(string $ip, array $netmasks) { foreach ($netmasks as $netmask) { @@ -128,6 +169,13 @@ namespace Alphaland\Web { } /** + * Determines if the given IP is in the CIDR notation like below: + * + * $ip = "127.0.0.1" + * $cidr = "127.0.0.0/8" + * + * $isInCidr = IpHelper::IsIpInCidrRange($ip, $cidr); // true + * * @param string $ip IP address * @param string $cidr CIDR * @return bool true if IP is in the CIDR @@ -145,6 +193,14 @@ namespace Alphaland\Web { return ($ip & $mask) == $subnet; } + /** + * Determine if the given IP is in the CIDR notation list. + * + * @param string $ip IP address + * @param array $cidrs CIDRs + * + * @return bool true if IP is in any of the CIDRs + */ public static function IsIpInCidrRangeList(string $ip, array $cidrs) { foreach ($cidrs as $cidr) { @@ -156,6 +212,14 @@ namespace Alphaland\Web { return false; } + /** + * Determines if the given IP is in the given CIDR, Range or Netmask list + * + * @param string $ip IP address + * @param string $cidr CIDR, Range or Netmask + * + * @return bool true if IP is in the any of the CIDRs, Ranges or Netmasks + */ public static function IsIpInCidrNetmaskOrRangeList(string $ip, array $cidrs) { foreach ($cidrs as $cidr) { diff --git a/globals/Dependencies/Web/WebsiteSettings.php b/globals/Dependencies/Web/WebsiteSettings.php index 36ffe4b..0ff174f 100644 --- a/globals/Dependencies/Web/WebsiteSettings.php +++ b/globals/Dependencies/Web/WebsiteSettings.php @@ -8,6 +8,7 @@ * Date: 25/11/2021 * * Ported from MFDLABS/corp-integral/src/lib/web/settings.fx + * MFDLABS TwoTime (c) 2021- */ // Do not use until it actually works. @@ -18,6 +19,8 @@ namespace Alphaland\Web { class WebsiteSettings { + // default return if no settings are found + // because there may be a NULL value in the database private const DOES_NOT_EXIST = 'does_not_exist'; private static array $validTypes = [ @@ -190,6 +193,13 @@ namespace Alphaland\Web { return $settings; } + /** + * Determines if a website setting exists. + * + * @param string $name The name of the setting. + * + * @return bool Whether the setting exists. + */ public static function SettingExists(string $name): bool { $query = $GLOBALS['pdo']->prepare("SELECT `name` FROM `websettings` WHERE `name` = :name"); @@ -204,6 +214,11 @@ namespace Alphaland\Web { return $result !== false; } + /** + * Deletes all website settings. + * + * @return bool Whether the settings were deleted. + */ public static function DeleteAllSettings(): bool { $query = $GLOBALS['pdo']->prepare("DELETE FROM `websettings`");