X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2Fcommon.lib.php;h=b19feacdc4e5109214b6801d4f9dc50d6dafe601;hb=cdd27c2b163122cb6e2169851019721b3382abd7;hp=6526d730c96df388faa66092856588c877aeee03;hpb=6079edfe4444d2d0bc2f220f8823d6fcc57f2dd5;p=timetracker.git diff --git a/WEB-INF/lib/common.lib.php b/WEB-INF/lib/common.lib.php index 6526d730..b19feacd 100644 --- a/WEB-INF/lib/common.lib.php +++ b/WEB-INF/lib/common.lib.php @@ -143,11 +143,6 @@ function time_to_decimal($val) { return $decimalTime; } -function sec_to_time_fmt_hm($sec) -{ - return sprintf("%d:%02d", $sec / 3600, $sec % 3600 / 60); -} - function magic_quotes_off() { $_POST = array_map('stripslashes_deep', $_POST); @@ -182,6 +177,15 @@ function ttValidString($val, $emptyValid = false) return true; } +// ttValidTemplateText is used to check template-based user input. +// When templates are used, required input parts must be filled by user. +// We identify these parts by 3 "stop sign" emojis (aka "octagonal sign" U+1F6D1). +function ttValidTemplateText($val) +{ + $valid = strpos($val, '🛑🛑🛑') === false; // no 3 "stop sign" emojis in a row. + return $valid; +} + // ttValidEmail is used to check user input to validate an email string. function ttValidEmail($val, $emptyValid = false) { @@ -345,6 +349,23 @@ function ttValidIP($val, $emptyValid = false) return true; } +// ttValidHolidays is used to check user input to validate holidays spec. +// To keep things simple, the format is a comma-separated list of dates: +// ****-01-01,****-12-31,2019-04-20 +// The above means Jan 1 and Dec 31 are holidays in all years, while Apr 20 is only in 2019. +function ttValidHolidays($val) +{ + $val = trim($val); + if (strlen($val) == 0) return true; + + $dates = explode(',', $val); + foreach ($dates as $date) { + if (!preg_match('/^[\d*]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/', $date)) + return false; + } + return true; +} + // ttAccessAllowed checks whether user is allowed access to a particular page. // It is used as an initial check on all publicly available pages // (except login.php, register.php, and others where we don't have to check). @@ -406,3 +427,14 @@ function ttDateToUserFormat($date) $o_date = new DateAndTime(DB_DATEFORMAT, $date); return $o_date->toString($user->date_format); } + +// ttRandomString generates a random alphanumeric string. +function ttRandomString($length = 32) { + $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + $charactersLength = strlen($characters); + $randomString = ''; + for ($i = 0; $i < $length; $i++) { + $randomString .= $characters[rand(0, $charactersLength - 1)]; + } + return $randomString; +}