get_service('session'); $rights = (isset($_SESSION['users_rights'])) ? $_SESSION['users_rights'] : false; if ($rights === false) { return false; } $assoc = true; // Use Array format $a_rights = json_decode($rights, $assoc); if (in_array($right, $a_rights)) { return true; } else { return false; } } public static function get_user_id(): int { $session = \tts\main\registry::get('di')->get_service('session'); $sid = (isset($_SESSION['user_id'])) ? $_SESSION['user_id'] : 0; return intval($sid); } public static function return_bool_as_int_bit(bool $b_data): int { return ($b_data) ? 1 : 0; // if true=1, else =0 } /** * * @param type $ret option to check for false error condition * @return bool true if false/error found */ public static function is_error($ret): bool { $lr = self::string_to_lowercase(trim($ret)); return ($ret === false || $lr === 'false') ? true : false; } public static function return_bool_as_yes_no(bool $b_data): string { return ($b_data) ? 'y' : 'n'; // if true=y, else =n } public static function get_bool($bool, $throw = true): bool { if (is_bool($bool)) { return $bool; } if (is_string($bool)) { $bool = self::string_to_lowercase(trim($bool)); } switch ($bool) { case '0': case 'false': case ':false': case ':null': case null: case 'no': case 'n': case 'disable': case 'disabled': return false; case '1': case 'true': case ':true': case 'yes': case 'y': case 'enable': case 'enabled': return true; default: if ($throw === true) { throw new \tts\Exceptions_common_bool("Value: ({$bool})"); } else { return false; } } } public static function get_count($i): int { return (is_array($i) || is_object($i)) ? count($i) : 0; } // Begin Strings Functions here:: public static function string_to_lowercase(string $string, $encoding = null): string { if (null === $encoding) { $encoding = mb_internal_encoding(); } return (extension_loaded('mbstring')) ? mb_strtolower($string, $encoding) : strtolower($string); } public static function string_to_uppercase(string $string, $encoding = null): string { if (null === $encoding) { $encoding = mb_internal_encoding(); } return (extension_loaded('mbstring')) ? mb_strtoupper($string, $encoding) : strtoupper($string); } public static function string_length(string $string, $encoding = null) { if (null === $encoding) { $encoding = mb_internal_encoding(); } return (extension_loaded('mbstring')) ? mb_strlen($string, $encoding) : strlen($string); } public static function string_position(string $string, string $needle, int $offset = 0, $encoding = null) { if (null === $encoding) { $encoding = mb_internal_encoding(); } return (extension_loaded('mbstring')) ? mb_strpos($string, $needle, $offset, $encoding) : strpos($string, $needle, $offset); } public static function string_last_position(string $string, string $needle, int $offset = 0, $encoding = null) { if (null === $encoding) { $encoding = mb_internal_encoding(); } return (extension_loaded('mbstring')) ? mb_strrpos($string, $needle, $offset, $encoding) : strrpos($string, $needle, $offset); } public static function string_trim($string, $charlist = null) { if (is_null($charlist)) { return trim($string); } else { $charlist = preg_quote($charlist, '/'); return preg_replace("/(^[$charlist]+)|([$charlist]+$)/us", '', $string); } } public static function string_rtrim($string, $charlist = null) { if (is_null($charlist)) { return rtrim($string); } else { $charlist = preg_quote($charlist, '/'); return preg_replace("/([$charlist]+$)/us", '', $string); } } public static function string_ltrim($string, $charlist = null) { if (is_null($charlist)) { return ltrim($string); } else { $charlist = preg_quote($charlist, '/'); return preg_replace("/(^[$charlist]+)/us", '', $string); } } public static function string_cmp($str1, $str2, $encoding = null) { if (null === $encoding) { $encoding = mb_internal_encoding(); } return strcmp(mb_strtoupper($str1, $encoding), mb_strtoupper($str2, $encoding)); } /* * Case-Insensitive Find */ public static function string_first_position(string $string, string $needle, int $offset = 0, $encoding = null) { if (null === $encoding) { $encoding = mb_internal_encoding(); } return (extension_loaded('mbstring')) ? mb_stripos($string, $needle, $offset, $encoding) : stripos($string, $needle, $offset); } public static function string_sub_part(string $string, int $offset = 0, int $length = null, $encoding = null) { if (null === $encoding) { $encoding = mb_internal_encoding(); } if ($length === null) { return (extension_loaded('mbstring')) ? mb_substr($string, $offset, self::string_length($string), $encoding) : substr($string, $offset, strlen($string)); } else { return (extension_loaded('mbstring')) ? mb_substr($string, $offset, $length, $encoding) : substr($string, $offset, $length); } } /** * Not really needed as str_contains($string, $needle) now exists! * Will determine if data was found in string find and returns true if found. * @param string $data * @param string $find * @retval bool */ public static function is_string_found(string $data, string $find): bool { return (self::string_first_position($data, $find) !== false); } /** * Will get only left part of string by length. * @param string $str * @param int $length * @retval type string or false */ public static function get_string_left(string $str, int $length): false | string { return self::string_sub_part($str, 0, $length); } /** * Will get only the right part of string by length. * @param string $str * @param int $length * @retval type string or false */ public static function get_string_right(string $str, int $length): false | string { return self::string_sub_part($str, -$length); } public static function real_time_output(): void { header("Content-type: text/plain"); // Turn off output buffering ini_set('output_buffering', 'off'); // Turn off PHP output compression ini_set('zlib.output_compression', false); // Implicitly flush the buffer(s) ini_set('implicit_flush', true); ob_implicit_flush(true); while (ob_get_level() > 0) { // Get the curent level $level = ob_get_level(); // End the buffering ob_end_clean(); // If the current level has not changed, abort if (ob_get_level() == $level) break; } } /** * Clear out from memory given variable by Reference! * @param type $sensitive_data */ public static function wipe(& $sensitive_data) { if (function_exists("sodium_memzero")) { sodium_memzero($sensitive_data); } unset($sensitive_data); } /** * Variable Dump and exit * Configure of security for show_dumps must be true for debugging. * @param var - any type will display type and value of contents * @param bool end - if true ends the script */ public static function dump($var = 'nothing', $end = true): void { if (\tts\main\configure::get('security', 'show_dumps') !== true) { return; } if (!is_object($var)) { var_dump($var); echo '
'; } if ($var === false) { echo 'It is FALSE!'; } elseif ($var === true) { echo 'It is TRUE!'; } elseif (is_resource($var)) { echo 'VAR IS a RESOURCE'; } elseif (is_array($var) && \tts\common::get_count($var) == 0) { echo 'VAR IS an EMPTY ARRAY!'; } elseif (is_numeric($var)) { echo 'VAR is a NUMBER = ' . $var; } elseif (empty($var) && !is_null($var)) { echo 'VAR IS EMPTY!'; } elseif ($var == 'nothing') { echo 'MISSING VAR!'; } elseif (is_null($var)) { echo 'VAR IS NULL!'; } elseif (is_string($var)) { echo 'VAR is a STRING = ' . $var; } else { echo "
";
            print_r($var);
            echo '
'; } echo '

'; if ($end === true) { exit; } } public static function nl2br(string $text): string { return strtr($text, array("\r\n" => '
', "\r" => '
', "\n" => '
')); } }