PluginProbe
User Access Manager / 2.3.0
User Access Manager v2.3.0
2.3.20 2.3.19 2.3.18 2.3.17 2.3.16 2.3.15 2.3.14 2.3.13 trunk 0.6 0.6.1 0.6.2 0.7 0.7 Beta 0.7.0.1 0.8 0.8.0.1 0.8.0.2 0.9 0.9.1 0.9.1.1 0.9.1.2 0.9.1.3 0.9.1.4 1.0 All 136 releases
user-access-manager / src / Util / Util.php

Util.php in User Access Manager 2.3.0, at src/Util/Util.php

57 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace UserAccessManager\Util;
6
7 use Exception;
8 use UserAccessManager\Wrapper\Php;
9
10 class Util
11 {
12 public function __construct(private Php $php)
13 {
14 }
15
16 public function startsWith(string $haystack, string $needle): bool
17 {
18 return $needle === '' || str_starts_with($haystack, $needle);
19 }
20
21 public function endsWith(string $haystack, string $needle): bool
22 {
23 return $needle === '' || str_ends_with($haystack, $needle);
24 }
25
26 /**
27 * @throws Exception
28 */
29 public function getRandomPassword(int $length = 32): string
30 {
31 $bytes = $this->php->opensslRandomPseudoBytes($length + 1, $strong);
32
33 if ($bytes !== false && $strong === true) {
34 return substr(preg_replace('/[^a-zA-Z0-9]/', '', base64_encode($bytes)), 0, $length);
35 }
36
37 throw new Exception('Unable to generate secure token from OpenSSL.');
38 }
39
40 public function getCurrentUrl(): string
41 {
42 if (isset($_SERVER['REQUEST_URI']) === false) {
43 $serverRequestUri = $_SERVER['PHP_SELF'];
44 } else {
45 $serverRequestUri = $_SERVER['REQUEST_URI'];
46 }
47
48 $https = $_SERVER['HTTPS'] ?? '';
49 $secure = $https === 'on' ? 's' : '';
50 $protocols = explode('/', strtolower($_SERVER['SERVER_PROTOCOL']));
51 $protocol = $protocols[0] . $secure;
52 $port = ((int) $_SERVER['SERVER_PORT'] === 80) ? '' : (':' . $_SERVER['SERVER_PORT']);
53
54 return $protocol . '://' . $_SERVER['SERVER_NAME'] . $port . $serverRequestUri;
55 }
56 }
57