Implemented ldap authentication

(closes #71)
This commit is contained in:
Sergio Brighenti 2020-03-31 15:21:01 +02:00
parent 6326f52bd1
commit 4e5c1a9675
8 changed files with 281 additions and 200 deletions

View file

@ -3,6 +3,7 @@
namespace App\Controllers\Auth; namespace App\Controllers\Auth;
use App\Controllers\Controller; use App\Controllers\Controller;
use App\Database\Queries\UserQuery;
use App\Web\ValidationChecker; use App\Web\ValidationChecker;
use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ServerRequestInterface as Request;
@ -52,6 +53,10 @@ class LoginController extends Controller
$username = param($request, 'username'); $username = param($request, 'username');
$user = $this->database->query('SELECT `id`, `email`, `username`, `password`,`is_admin`, `active`, `current_disk_quota`, `max_disk_quota` FROM `users` WHERE `username` = ? OR `email` = ? LIMIT 1', [$username, $username])->fetch(); $user = $this->database->query('SELECT `id`, `email`, `username`, `password`,`is_admin`, `active`, `current_disk_quota`, `max_disk_quota` FROM `users` WHERE `username` = ? OR `email` = ? LIMIT 1', [$username, $username])->fetch();
if ($this->config['ldap']['enabled'] && !$user) {
$this->ldapLogin($username, param($request, 'password'), $user);
}
$validator = ValidationChecker::make() $validator = ValidationChecker::make()
->rules([ ->rules([
'login' => $user && password_verify(param($request, 'password'), $user->password), 'login' => $user && password_verify(param($request, 'password'), $user->password),
@ -109,4 +114,67 @@ class LoginController extends Controller
return redirect($response, route('login.show')); return redirect($response, route('login.show'));
} }
/**
* @param string $username
* @param string $password
* @param $dbUser
* @return bool
*/
protected function ldapLogin(string $username, string $password, $dbUser)
{
if (!extension_loaded('ldap')) {
return false;
}
$server = ldap_connect($this->config['ldap']['host'], $this->config['ldap']['port']);
if (!$server) {
$this->session->alert(lang('ldap_cant_connect'), 'warning');
return false;
}
ldap_set_option($server, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($server, LDAP_OPT_REFERRALS, 0);
ldap_set_option($server, LDAP_OPT_NETWORK_TIMEOUT, 10);
$bindString = 'uid='.addslashes($username);
if ($this->config['ldap']['user_domain'] !== null) {
$bindString .= ','.$this->config['ldap']['user_domain'];
}
if ($this->config['ldap']['base_domain'] !== null) {
$bindString .= ','.$this->config['ldap']['base_domain'];
}
if (!@ldap_bind($server, $bindString, $password)) {
return false;
}
if (!$dbUser) {
make(UserQuery::class)->create(
filter_var($username, FILTER_VALIDATE_EMAIL) ? $username : $username.$this->config['ldap']['user_domain'],
$username,
$password,
0,
1,
(int) $this->getSetting('default_user_quota', -1)
);
return true;
}
if (!password_verify($password, $dbUser->password)) {
make(UserQuery::class)->update(
$dbUser->id,
$dbUser->email,
$username,
$password,
$dbUser->is_admin,
$dbUser->active,
$dbUser->max_disk_quota
);
}
return true;
}
} }

View file

@ -59,7 +59,7 @@ class RegisterController extends Controller
if ($recaptcha->success && $recaptcha->score < 0.5) { if ($recaptcha->success && $recaptcha->score < 0.5) {
$this->session->alert(lang('recaptcha_failed'), 'danger'); $this->session->alert(lang('recaptcha_failed'), 'danger');
return redirect($response, route('login')); return redirect($response, route('register.show'));
} }
} }

View file

@ -5,7 +5,6 @@ namespace App\Controllers;
use App\Database\Queries\TagQuery; use App\Database\Queries\TagQuery;
use App\Web\ValidationChecker; use App\Web\ValidationChecker;
use PDO;
use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Exception\HttpBadRequestException; use Slim\Exception\HttpBadRequestException;

View file

@ -41,6 +41,13 @@ $config = array_replace_recursive([
'driver' => 'local', 'driver' => 'local',
'path' => realpath(__DIR__.'/').DIRECTORY_SEPARATOR.'storage', 'path' => realpath(__DIR__.'/').DIRECTORY_SEPARATOR.'storage',
], ],
'ldap' => [
'enabled' => false,
'host' => null,
'port' => null,
'base_domain' => null,
'user_domain' => null,
],
], require BASE_DIR.'config.php'); ], require BASE_DIR.'config.php');
$builder = new ContainerBuilder(); $builder = new ContainerBuilder();

186
composer.lock generated
View file

@ -8,16 +8,16 @@
"packages": [ "packages": [
{ {
"name": "aws/aws-sdk-php", "name": "aws/aws-sdk-php",
"version": "3.133.21", "version": "3.133.46",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/aws/aws-sdk-php.git", "url": "https://github.com/aws/aws-sdk-php.git",
"reference": "3501468a7ef894703141d1c4d68caa3b914cbd96" "reference": "98d359e61b365f3040ca61c66ae8883334cf5d74"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/3501468a7ef894703141d1c4d68caa3b914cbd96", "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/98d359e61b365f3040ca61c66ae8883334cf5d74",
"reference": "3501468a7ef894703141d1c4d68caa3b914cbd96", "reference": "98d359e61b365f3040ca61c66ae8883334cf5d74",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -88,27 +88,27 @@
"s3", "s3",
"sdk" "sdk"
], ],
"time": "2020-02-24T19:15:07+00:00" "time": "2020-03-27T18:15:32+00:00"
}, },
{ {
"name": "firebase/php-jwt", "name": "firebase/php-jwt",
"version": "v5.0.0", "version": "v5.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/firebase/php-jwt.git", "url": "https://github.com/firebase/php-jwt.git",
"reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e" "reference": "feb0e820b8436873675fd3aca04f3728eb2185cb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/9984a4d3a32ae7673d6971ea00bae9d0a1abba0e", "url": "https://api.github.com/repos/firebase/php-jwt/zipball/feb0e820b8436873675fd3aca04f3728eb2185cb",
"reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e", "reference": "feb0e820b8436873675fd3aca04f3728eb2185cb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.0" "php": ">=5.3.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": " 4.8.35" "phpunit/phpunit": ">=4.8 <=9"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -134,20 +134,24 @@
], ],
"description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
"homepage": "https://github.com/firebase/php-jwt", "homepage": "https://github.com/firebase/php-jwt",
"time": "2017-06-27T22:17:23+00:00" "keywords": [
"jwt",
"php"
],
"time": "2020-03-25T18:49:23+00:00"
}, },
{ {
"name": "google/auth", "name": "google/auth",
"version": "v1.7.1", "version": "v1.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/googleapis/google-auth-library-php.git", "url": "https://github.com/googleapis/google-auth-library-php.git",
"reference": "39e243a7d8320b1889ab8bb4cd6f98f7af83c582" "reference": "c7b295feb248f138f462a1e6b7d635e4244204c5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/39e243a7d8320b1889ab8bb4cd6f98f7af83c582", "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/c7b295feb248f138f462a1e6b7d635e4244204c5",
"reference": "39e243a7d8320b1889ab8bb4cd6f98f7af83c582", "reference": "c7b295feb248f138f462a1e6b7d635e4244204c5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -186,20 +190,20 @@
"google", "google",
"oauth2" "oauth2"
], ],
"time": "2020-02-12T20:54:50+00:00" "time": "2020-03-26T19:47:36+00:00"
}, },
{ {
"name": "google/cloud-core", "name": "google/cloud-core",
"version": "v1.35.0", "version": "v1.36.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/googleapis/google-cloud-php-core.git", "url": "https://github.com/googleapis/google-cloud-php-core.git",
"reference": "e24a49fb1df51d6cff38c97450feffae82661c2d" "reference": "4764850f256a43b7513226a54a04b349f8f385d8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/googleapis/google-cloud-php-core/zipball/e24a49fb1df51d6cff38c97450feffae82661c2d", "url": "https://api.github.com/repos/googleapis/google-cloud-php-core/zipball/4764850f256a43b7513226a54a04b349f8f385d8",
"reference": "e24a49fb1df51d6cff38c97450feffae82661c2d", "reference": "4764850f256a43b7513226a54a04b349f8f385d8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -247,20 +251,20 @@
"Apache-2.0" "Apache-2.0"
], ],
"description": "Google Cloud PHP shared dependency, providing functionality useful to all components.", "description": "Google Cloud PHP shared dependency, providing functionality useful to all components.",
"time": "2020-02-11T23:07:13+00:00" "time": "2020-03-25T23:00:37+00:00"
}, },
{ {
"name": "google/cloud-storage", "name": "google/cloud-storage",
"version": "v1.18.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/googleapis/google-cloud-php-storage.git", "url": "https://github.com/googleapis/google-cloud-php-storage.git",
"reference": "201b69aa6f24b60718dc0bd0c1bdc6963ade0e99" "reference": "49dc19608ebea54023c2b3910e72b91393235d82"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/googleapis/google-cloud-php-storage/zipball/201b69aa6f24b60718dc0bd0c1bdc6963ade0e99", "url": "https://api.github.com/repos/googleapis/google-cloud-php-storage/zipball/49dc19608ebea54023c2b3910e72b91393235d82",
"reference": "201b69aa6f24b60718dc0bd0c1bdc6963ade0e99", "reference": "49dc19608ebea54023c2b3910e72b91393235d82",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -298,7 +302,7 @@
"Apache-2.0" "Apache-2.0"
], ],
"description": "Cloud Storage Client for PHP", "description": "Cloud Storage Client for PHP",
"time": "2020-02-11T23:07:13+00:00" "time": "2020-03-25T23:00:37+00:00"
}, },
{ {
"name": "google/crc32", "name": "google/crc32",
@ -765,16 +769,16 @@
}, },
{ {
"name": "league/flysystem", "name": "league/flysystem",
"version": "1.0.64", "version": "1.0.66",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/flysystem.git", "url": "https://github.com/thephpleague/flysystem.git",
"reference": "d13c43dbd4b791f815215959105a008515d1a2e0" "reference": "021569195e15f8209b1c4bebb78bd66aa4f08c21"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/d13c43dbd4b791f815215959105a008515d1a2e0", "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/021569195e15f8209b1c4bebb78bd66aa4f08c21",
"reference": "d13c43dbd4b791f815215959105a008515d1a2e0", "reference": "021569195e15f8209b1c4bebb78bd66aa4f08c21",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -845,7 +849,7 @@
"sftp", "sftp",
"storage" "storage"
], ],
"time": "2020-02-05T18:14:17+00:00" "time": "2020-03-17T18:58:12+00:00"
}, },
{ {
"name": "league/flysystem-aws-s3-v3", "name": "league/flysystem-aws-s3-v3",
@ -1719,16 +1723,16 @@
}, },
{ {
"name": "psr/log", "name": "psr/log",
"version": "1.1.2", "version": "1.1.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/log.git", "url": "https://github.com/php-fig/log.git",
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1762,7 +1766,7 @@
"psr", "psr",
"psr-3" "psr-3"
], ],
"time": "2019-11-01T11:05:21+00:00" "time": "2020-03-23T09:12:05+00:00"
}, },
{ {
"name": "ralouphie/getallheaders", "name": "ralouphie/getallheaders",
@ -2098,16 +2102,16 @@
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"version": "v1.14.0", "version": "v1.15.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git", "url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38" "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/4719fa9c18b0464d399f1a63bf624b42b6fa8d14",
"reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2119,7 +2123,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.14-dev" "dev-master": "1.15-dev"
} }
}, },
"autoload": { "autoload": {
@ -2152,20 +2156,20 @@
"polyfill", "polyfill",
"portable" "portable"
], ],
"time": "2020-01-13T11:15:53+00:00" "time": "2020-02-27T09:26:54+00:00"
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"version": "v1.14.0", "version": "v1.15.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "34094cfa9abe1f0f14f48f490772db7a775559f2" "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2", "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac",
"reference": "34094cfa9abe1f0f14f48f490772db7a775559f2", "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2177,7 +2181,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.14-dev" "dev-master": "1.15-dev"
} }
}, },
"autoload": { "autoload": {
@ -2211,20 +2215,20 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2020-01-13T11:15:53+00:00" "time": "2020-03-09T19:04:49+00:00"
}, },
{ {
"name": "symfony/polyfill-php56", "name": "symfony/polyfill-php56",
"version": "v1.14.0", "version": "v1.15.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php56.git", "url": "https://github.com/symfony/polyfill-php56.git",
"reference": "16ec91cb06998b609501b55b7177b7d7c02badb3" "reference": "d51ec491c8ddceae7dca8dd6c7e30428f543f37d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/16ec91cb06998b609501b55b7177b7d7c02badb3", "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/d51ec491c8ddceae7dca8dd6c7e30428f543f37d",
"reference": "16ec91cb06998b609501b55b7177b7d7c02badb3", "reference": "d51ec491c8ddceae7dca8dd6c7e30428f543f37d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2234,7 +2238,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.14-dev" "dev-master": "1.15-dev"
} }
}, },
"autoload": { "autoload": {
@ -2267,20 +2271,20 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2020-01-13T11:15:53+00:00" "time": "2020-03-09T19:04:49+00:00"
}, },
{ {
"name": "symfony/polyfill-util", "name": "symfony/polyfill-util",
"version": "v1.14.0", "version": "v1.15.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-util.git", "url": "https://github.com/symfony/polyfill-util.git",
"reference": "ba3cfcea6d0192cae46c62041f61cbb704b526d3" "reference": "d8e76c104127675d0ea3df3be0f2ae24a8619027"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-util/zipball/ba3cfcea6d0192cae46c62041f61cbb704b526d3", "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/d8e76c104127675d0ea3df3be0f2ae24a8619027",
"reference": "ba3cfcea6d0192cae46c62041f61cbb704b526d3", "reference": "d8e76c104127675d0ea3df3be0f2ae24a8619027",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2289,7 +2293,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.14-dev" "dev-master": "1.15-dev"
} }
}, },
"autoload": { "autoload": {
@ -2319,7 +2323,7 @@
"polyfill", "polyfill",
"shim" "shim"
], ],
"time": "2020-01-13T11:15:53+00:00" "time": "2020-03-02T11:55:35+00:00"
}, },
{ {
"name": "twig/twig", "name": "twig/twig",
@ -2390,16 +2394,16 @@
"packages-dev": [ "packages-dev": [
{ {
"name": "composer/xdebug-handler", "name": "composer/xdebug-handler",
"version": "1.4.0", "version": "1.4.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/xdebug-handler.git", "url": "https://github.com/composer/xdebug-handler.git",
"reference": "cbe23383749496fe0f373345208b79568e4bc248" "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/xdebug-handler/zipball/cbe23383749496fe0f373345208b79568e4bc248", "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/1ab9842d69e64fb3a01be6b656501032d1b78cb7",
"reference": "cbe23383749496fe0f373345208b79568e4bc248", "reference": "1ab9842d69e64fb3a01be6b656501032d1b78cb7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2430,7 +2434,7 @@
"Xdebug", "Xdebug",
"performance" "performance"
], ],
"time": "2019-11-06T16:40:04+00:00" "time": "2020-03-01T12:26:26+00:00"
}, },
{ {
"name": "jean85/pretty-package-versions", "name": "jean85/pretty-package-versions",
@ -2695,16 +2699,16 @@
}, },
{ {
"name": "nette/neon", "name": "nette/neon",
"version": "v3.1.1", "version": "v3.1.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/neon.git", "url": "https://github.com/nette/neon.git",
"reference": "bf658bafcf56e36cfa0922f4866869927672cf2c" "reference": "3c3dcbc6bf6c80dc97b1fc4ba9a22ae67930fc0e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nette/neon/zipball/bf658bafcf56e36cfa0922f4866869927672cf2c", "url": "https://api.github.com/repos/nette/neon/zipball/3c3dcbc6bf6c80dc97b1fc4ba9a22ae67930fc0e",
"reference": "bf658bafcf56e36cfa0922f4866869927672cf2c", "reference": "3c3dcbc6bf6c80dc97b1fc4ba9a22ae67930fc0e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2753,7 +2757,7 @@
"nette", "nette",
"yaml" "yaml"
], ],
"time": "2020-02-12T11:15:48+00:00" "time": "2020-03-04T11:47:04+00:00"
}, },
{ {
"name": "nette/php-generator", "name": "nette/php-generator",
@ -2817,16 +2821,16 @@
}, },
{ {
"name": "nette/robot-loader", "name": "nette/robot-loader",
"version": "v3.2.2", "version": "v3.2.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/robot-loader.git", "url": "https://github.com/nette/robot-loader.git",
"reference": "38e8a270567a4ad9fe716b40fcda5a6580afa3c0" "reference": "726c462e73e739e965ec654a667407074cfe83c0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nette/robot-loader/zipball/38e8a270567a4ad9fe716b40fcda5a6580afa3c0", "url": "https://api.github.com/repos/nette/robot-loader/zipball/726c462e73e739e965ec654a667407074cfe83c0",
"reference": "38e8a270567a4ad9fe716b40fcda5a6580afa3c0", "reference": "726c462e73e739e965ec654a667407074cfe83c0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2876,7 +2880,7 @@
"nette", "nette",
"trait" "trait"
], ],
"time": "2020-02-20T22:17:50+00:00" "time": "2020-02-28T13:10:07+00:00"
}, },
{ {
"name": "nette/schema", "name": "nette/schema",
@ -3186,16 +3190,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v4.4.4", "version": "v4.4.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "f512001679f37e6a042b51897ed24a2f05eba656" "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/f512001679f37e6a042b51897ed24a2f05eba656", "url": "https://api.github.com/repos/symfony/console/zipball/10bb3ee3c97308869d53b3e3d03f6ac23ff985f7",
"reference": "f512001679f37e6a042b51897ed24a2f05eba656", "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3258,20 +3262,20 @@
], ],
"description": "Symfony Console Component", "description": "Symfony Console Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2020-01-25T12:44:29+00:00" "time": "2020-03-30T11:41:10+00:00"
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v4.4.4", "version": "v4.4.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "3a50be43515590faf812fbd7708200aabc327ec3" "reference": "5729f943f9854c5781984ed4907bbb817735776b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/3a50be43515590faf812fbd7708200aabc327ec3", "url": "https://api.github.com/repos/symfony/finder/zipball/5729f943f9854c5781984ed4907bbb817735776b",
"reference": "3a50be43515590faf812fbd7708200aabc327ec3", "reference": "5729f943f9854c5781984ed4907bbb817735776b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3307,20 +3311,20 @@
], ],
"description": "Symfony Finder Component", "description": "Symfony Finder Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2020-01-04T13:00:46+00:00" "time": "2020-03-27T16:54:36+00:00"
}, },
{ {
"name": "symfony/polyfill-php73", "name": "symfony/polyfill-php73",
"version": "v1.14.0", "version": "v1.15.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php73.git", "url": "https://github.com/symfony/polyfill-php73.git",
"reference": "5e66a0fa1070bf46bec4bea7962d285108edd675" "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/5e66a0fa1070bf46bec4bea7962d285108edd675", "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7",
"reference": "5e66a0fa1070bf46bec4bea7962d285108edd675", "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3329,7 +3333,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.14-dev" "dev-master": "1.15-dev"
} }
}, },
"autoload": { "autoload": {
@ -3365,7 +3369,7 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2020-01-13T11:15:53+00:00" "time": "2020-02-27T09:26:54+00:00"
}, },
{ {
"name": "symfony/service-contracts", "name": "symfony/service-contracts",

210
package-lock.json generated
View file

@ -3,9 +3,9 @@
"lockfileVersion": 1, "lockfileVersion": 1,
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-free": { "@fortawesome/fontawesome-free": {
"version": "5.12.1", "version": "5.13.0",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.12.1.tgz", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.0.tgz",
"integrity": "sha512-ZtjIIFplxncqxvogq148C3hBLQE+W3iJ8E4UvJ09zIJUgzwLcROsWwFDErVSXY2Plzao5J9KUYNHKHMEUYDMKw==" "integrity": "sha512-xKOeQEl5O47GPZYIMToj6uuA2syyFlq9EMSl2ui0uytjY9xbe8XS0pexNWmxrdcCyNGyDmLyYw5FtKsalBUeOg=="
}, },
"abbrev": { "abbrev": {
"version": "1.1.1", "version": "1.1.1",
@ -122,12 +122,6 @@
"concat-map": "0.0.1" "concat-map": "0.0.1"
} }
}, },
"builtin-modules": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
"dev": true
},
"bytes": { "bytes": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
@ -392,9 +386,9 @@
} }
}, },
"error-ex": { "error-ex": {
"version": "1.3.1", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
"integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
"dev": true, "dev": true,
"requires": { "requires": {
"is-arrayish": "^0.2.1" "is-arrayish": "^0.2.1"
@ -406,6 +400,12 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true "dev": true
}, },
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"eventemitter2": { "eventemitter2": {
"version": "0.4.14", "version": "0.4.14",
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
@ -554,15 +554,15 @@
} }
}, },
"graceful-fs": { "graceful-fs": {
"version": "4.1.11", "version": "4.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
"dev": true "dev": true
}, },
"grunt": { "grunt": {
"version": "1.0.4", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.4.tgz", "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.1.0.tgz",
"integrity": "sha512-PYsMOrOC+MsdGEkFVwMaMyc6Ob7pKmq+deg1Sjr+vvMWp35sztfwKE7qoN51V+UEtHsyNuMcGdgMLFkBHvMxHQ==", "integrity": "sha512-+NGod0grmviZ7Nzdi9am7vuRS/h76PcWDsV635mEXF0PEQMUV6Kb+OjTdsVxbi0PZmfQOjCMKb3w8CVZcqsn1g==",
"dev": true, "dev": true,
"requires": { "requires": {
"coffeescript": "~1.10.0", "coffeescript": "~1.10.0",
@ -576,20 +576,14 @@
"grunt-legacy-log": "~2.0.0", "grunt-legacy-log": "~2.0.0",
"grunt-legacy-util": "~1.1.1", "grunt-legacy-util": "~1.1.1",
"iconv-lite": "~0.4.13", "iconv-lite": "~0.4.13",
"js-yaml": "~3.13.0", "js-yaml": "~3.13.1",
"minimatch": "~3.0.2", "minimatch": "~3.0.2",
"mkdirp": "~0.5.1", "mkdirp": "~1.0.3",
"nopt": "~3.0.6", "nopt": "~3.0.6",
"path-is-absolute": "~1.0.0", "path-is-absolute": "~1.0.0",
"rimraf": "~2.6.2" "rimraf": "~2.6.2"
}, },
"dependencies": { "dependencies": {
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"grunt-cli": { "grunt-cli": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
@ -602,15 +596,11 @@
"resolve": "~1.1.0" "resolve": "~1.1.0"
} }
}, },
"js-yaml": { "resolve": {
"version": "3.13.1", "version": "1.1.7",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
"dev": true, "dev": true
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
}
} }
} }
}, },
@ -762,9 +752,9 @@
} }
}, },
"grunt-known-options": { "grunt-known-options": {
"version": "1.1.0", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz", "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
"integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=", "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==",
"dev": true "dev": true
}, },
"grunt-legacy-log": { "grunt-legacy-log": {
@ -884,9 +874,9 @@
"dev": true "dev": true
}, },
"hosted-git-info": { "hosted-git-info": {
"version": "2.6.0", "version": "2.8.8",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
"integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
"dev": true "dev": true
}, },
"htmlparser2": { "htmlparser2": {
@ -909,9 +899,9 @@
"dev": true "dev": true
}, },
"iconv-lite": { "iconv-lite": {
"version": "0.4.23", "version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true, "dev": true,
"requires": { "requires": {
"safer-buffer": ">= 2.1.2 < 3" "safer-buffer": ">= 2.1.2 < 3"
@ -948,23 +938,11 @@
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
"dev": true "dev": true
}, },
"is-builtin-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"dev": true,
"requires": {
"builtin-modules": "^1.0.0"
}
},
"is-finite": { "is-finite": {
"version": "1.0.2", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
"dev": true, "dev": true
"requires": {
"number-is-nan": "^1.0.0"
}
}, },
"is-utf8": { "is-utf8": {
"version": "0.2.1", "version": "0.2.1",
@ -989,6 +967,16 @@
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz",
"integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==" "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw=="
}, },
"js-yaml": {
"version": "3.13.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
}
},
"jszip": { "jszip": {
"version": "2.5.0", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/jszip/-/jszip-2.5.0.tgz", "resolved": "https://registry.npmjs.org/jszip/-/jszip-2.5.0.tgz",
@ -1141,27 +1129,16 @@
} }
}, },
"minimist": { "minimist": {
"version": "1.2.0", "version": "1.2.5",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true "dev": true
}, },
"mkdirp": { "mkdirp": {
"version": "0.5.1", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==",
"dev": true,
"requires": {
"minimist": "0.0.8"
},
"dependencies": {
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true "dev": true
}
}
}, },
"ms": { "ms": {
"version": "2.0.0", "version": "2.0.0",
@ -1191,13 +1168,13 @@
} }
}, },
"normalize-package-data": { "normalize-package-data": {
"version": "2.4.0", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true, "dev": true,
"requires": { "requires": {
"hosted-git-info": "^2.1.4", "hosted-git-info": "^2.1.4",
"is-builtin-module": "^1.0.0", "resolve": "^1.10.0",
"semver": "2 || 3 || 4 || 5", "semver": "2 || 3 || 4 || 5",
"validate-npm-package-license": "^3.0.1" "validate-npm-package-license": "^3.0.1"
} }
@ -1292,6 +1269,12 @@
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
"dev": true "dev": true
}, },
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"dev": true
},
"path-type": { "path-type": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
@ -1444,10 +1427,13 @@
} }
}, },
"resolve": { "resolve": {
"version": "1.1.7", "version": "1.15.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
"integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
"dev": true "dev": true,
"requires": {
"path-parse": "^1.0.6"
}
}, },
"resolve-from": { "resolve-from": {
"version": "2.0.0", "version": "2.0.0",
@ -1465,12 +1451,28 @@
} }
}, },
"rimraf": { "rimraf": {
"version": "2.6.2", "version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"dev": true, "dev": true,
"requires": { "requires": {
"glob": "^7.0.5" "glob": "^7.1.3"
},
"dependencies": {
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
}
} }
}, },
"safe-json-parse": { "safe-json-parse": {
@ -1491,9 +1493,9 @@
"integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0="
}, },
"semver": { "semver": {
"version": "5.5.0", "version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true "dev": true
}, },
"shelljs": { "shelljs": {
@ -1503,9 +1505,9 @@
"dev": true "dev": true
}, },
"signal-exit": { "signal-exit": {
"version": "3.0.2", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
"dev": true "dev": true
}, },
"source-map": { "source-map": {
@ -1515,9 +1517,9 @@
"dev": true "dev": true
}, },
"spdx-correct": { "spdx-correct": {
"version": "3.0.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
"integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"spdx-expression-parse": "^3.0.0", "spdx-expression-parse": "^3.0.0",
@ -1541,9 +1543,9 @@
} }
}, },
"spdx-license-ids": { "spdx-license-ids": {
"version": "3.0.3", "version": "3.0.5",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
"integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==", "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
"dev": true "dev": true
}, },
"sprintf-js": { "sprintf-js": {
@ -1667,9 +1669,9 @@
"dev": true "dev": true
}, },
"validate-npm-package-license": { "validate-npm-package-license": {
"version": "3.0.3", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
"dev": true, "dev": true,
"requires": { "requires": {
"spdx-correct": "^3.0.0", "spdx-correct": "^3.0.0",

View file

@ -1,6 +1,6 @@
{ {
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-free": "^5.12.1", "@fortawesome/fontawesome-free": "^5.13.0",
"bootstrap": "^4.4.1", "bootstrap": "^4.4.1",
"bootstrap4-toggle": "^3.6.1", "bootstrap4-toggle": "^3.6.1",
"clipboard": "^2.0.6", "clipboard": "^2.0.6",
@ -12,7 +12,7 @@
"tooltip.js": "^1.3.3" "tooltip.js": "^1.3.3"
}, },
"devDependencies": { "devDependencies": {
"grunt": "^1.0.4", "grunt": "^1.1.0",
"grunt-contrib-copy": "^1.0.0", "grunt-contrib-copy": "^1.0.0",
"grunt-contrib-cssmin": "^3.0.0", "grunt-contrib-cssmin": "^3.0.0",
"grunt-contrib-jshint": "^2.1.0", "grunt-contrib-jshint": "^2.1.0",

View file

@ -151,4 +151,5 @@ return [
'mail.new_account_text_with_reset' => "Hi %s!\na new account was created for you on %s (%s), click on the following link to set a password and activate it:\n\n%s", 'mail.new_account_text_with_reset' => "Hi %s!\na new account was created for you on %s (%s), click on the following link to set a password and activate it:\n\n%s",
'mail.new_account_text_with_pw' => "Hi %s!\na new account was created for you on %s (%s), with the following credentials:\n\nUsername: %s\nPassword: %s\n\nClick on the following link to go to the login page:\n%s", 'mail.new_account_text_with_pw' => "Hi %s!\na new account was created for you on %s (%s), with the following credentials:\n\nUsername: %s\nPassword: %s\n\nClick on the following link to go to the login page:\n%s",
'user_create_password' => 'If leaved empty, you might want to send a notification to the user email.', 'user_create_password' => 'If leaved empty, you might want to send a notification to the user email.',
'ldap_cant_connect' => 'Can\'t connect to the LDAP auth server.',
]; ];