Merge branch 'develop' into patch-4

This commit is contained in:
Tim 2021-05-31 04:04:51 +02:00 committed by GitHub
commit d8535b07b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 1252 additions and 235 deletions

6
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "composer"
directory: "/"
schedule:
interval: "daily"

View File

@ -46,23 +46,24 @@ The following SMS gateways are currently available:
* Inetworx - <https://www.inetworx.ch>
* Messagebird - <https://www.messagebird.com>
* Mosms - <https://www.mosms.com>
* Smsglobal - <https://smsglobal.com/>
* SMSit - <https://www.smsit.dk/>
* Smsglobal - <https://smsglobal.com>
* SMSit - <https://www.smsit.dk>
* Spryng - <https://www.spryng.nl>
* Textmarketer - <https://www.textmarketer.co.uk>
* FreeVoipDeal - <https://www.freevoipdeal.com>
* Nexmo - <https://www.nexmo.com/>
* OctoPush - <https://www.octopush.com/>
* FreeMobile (FR) - <https://mobile.free.fr/>
* Nexmo - <https://www.nexmo.com>
* OctoPush - <https://www.octopush.com>
* FreeMobile (FR) - <https://mobile.free.fr>
* Twilio - <https://twilio.com>
* CM Telecom - <https://www.cm.com/>
* GatewayAPI - <https://gatewayapi.com/>
* SolutionsInfini - <https://solutionsinfini.com/>
* Plivo - <https://www.plivo.com/>
* Callr - <https://www.callr.com/>
* CM Telecom - <https://www.cm.com>
* GatewayAPI - <https://gatewayapi.com>
* SolutionsInfini - <https://solutionsinfini.com>
* Plivo - <https://www.plivo.com>
* Callr - <https://www.callr.com>
* SMSAPI - <https://www.smsapi.com/en>
* OVH SMS PRO - <https://www.ovhtelecom.fr/sms/>
* OVH SMS PRO - <https://www.ovhtelecom.fr/sms>
* PromoSMS - <https://promosms.com>
* Infobip - <https://www.infobip.com>
Please note: for these gateways you will need an account with sufficient credits.

View File

@ -9,7 +9,7 @@
"ext-json": "*",
"ext-pdo": "*",
"ext-xml": "*",
"phpmailer/phpmailer": ">=6.0.6 ~6.0",
"phpmailer/phpmailer": ">=6.4.1 ~6.0",
"symfony/config": "~3.4",
"symfony/dependency-injection": "~3.4",
"symfony/event-dispatcher": "~3.4",
@ -18,7 +18,8 @@
"php-pushover/php-pushover": "dev-master",
"paragonie/random_compat": "^2.0",
"twig/twig": "~1.35",
"jaxl/jaxl": "^3.1"
"jaxl/jaxl": "^3.1",
"viharm/psm-ldap-auth": "^1.1"
},
"autoload": {
"files": [

460
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "f78e950e2dfef7debe88d7b64e2b4aec",
"content-hash": "21bf20f2a7d6602e659723ca99c80d66",
"packages": [
{
"name": "jaxl/jaxl",
@ -80,17 +80,69 @@
"time": "2016-09-13T01:59:35+00:00"
},
{
"name": "paragonie/random_compat",
"version": "v2.0.18",
"name": "mnsami/composer-custom-directory-installer",
"version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/paragonie/random_compat.git",
"reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db"
"url": "https://github.com/mnsami/composer-custom-directory-installer.git",
"reference": "8cc82e0c5801cc3bf53ba452afdcaa5c6ff645a5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db",
"reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db",
"url": "https://api.github.com/repos/mnsami/composer-custom-directory-installer/zipball/8cc82e0c5801cc3bf53ba452afdcaa5c6ff645a5",
"reference": "8cc82e0c5801cc3bf53ba452afdcaa5c6ff645a5",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0",
"php": ">=5.3"
},
"type": "composer-plugin",
"extra": {
"class": [
"Composer\\CustomDirectoryInstaller\\LibraryPlugin",
"Composer\\CustomDirectoryInstaller\\PearPlugin",
"Composer\\CustomDirectoryInstaller\\PluginPlugin"
],
"branch-alias": {
"dev-master": "1.1.x-dev"
}
},
"autoload": {
"psr-0": {
"Composer\\CustomDirectoryInstaller": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Mina Nabil Sami",
"email": "mina.nsami@gmail.com"
}
],
"description": "A composer plugin, to help install packages of different types in custom paths.",
"keywords": [
"composer",
"composer-installer",
"composer-plugin"
],
"time": "2016-05-25T08:26:02+00:00"
},
{
"name": "paragonie/random_compat",
"version": "v2.0.20",
"source": {
"type": "git",
"url": "https://github.com/paragonie/random_compat.git",
"reference": "0f1f60250fccffeaf5dda91eea1c018aed1adc2a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/0f1f60250fccffeaf5dda91eea1c018aed1adc2a",
"reference": "0f1f60250fccffeaf5dda91eea1c018aed1adc2a",
"shasum": ""
},
"require": {
@ -126,7 +178,7 @@
"pseudorandom",
"random"
],
"time": "2019-01-03T20:59:08+00:00"
"time": "2021-04-17T09:33:01+00:00"
},
{
"name": "php-pushover/php-pushover",
@ -134,12 +186,12 @@
"source": {
"type": "git",
"url": "https://github.com/cschalenborgh/php-pushover.git",
"reference": "b2d060efacf48e4c6821427691b19db0315ccedd"
"reference": "ef1df985bf3acb17b1f1f8fe2df2c3c9a16bef32"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/cschalenborgh/php-pushover/zipball/b2d060efacf48e4c6821427691b19db0315ccedd",
"reference": "b2d060efacf48e4c6821427691b19db0315ccedd",
"url": "https://api.github.com/repos/cschalenborgh/php-pushover/zipball/ef1df985bf3acb17b1f1f8fe2df2c3c9a16bef32",
"reference": "ef1df985bf3acb17b1f1f8fe2df2c3c9a16bef32",
"shasum": ""
},
"type": "library",
@ -156,34 +208,38 @@
}
],
"description": "PHP class for the Pushover.net project",
"time": "2019-09-26T19:38:11+00:00"
"time": "2021-01-12T12:43:39+00:00"
},
{
"name": "phpmailer/phpmailer",
"version": "v6.1.6",
"version": "v6.4.1",
"source": {
"type": "git",
"url": "https://github.com/PHPMailer/PHPMailer.git",
"reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3"
"reference": "9256f12d8fb0cd0500f93b19e18c356906cbed3d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3",
"reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3",
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/9256f12d8fb0cd0500f93b19e18c356906cbed3d",
"reference": "9256f12d8fb0cd0500f93b19e18c356906cbed3d",
"shasum": ""
},
"require": {
"ext-ctype": "*",
"ext-filter": "*",
"ext-hash": "*",
"php": ">=5.5.0"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
"doctrine/annotations": "^1.2",
"friendsofphp/php-cs-fixer": "^2.2",
"phpunit/phpunit": "^4.8 || ^5.7"
"phpcompatibility/php-compatibility": "^9.3.5",
"roave/security-advisories": "dev-latest",
"squizlabs/php_codesniffer": "^3.5.6",
"yoast/phpunit-polyfills": "^0.2.0"
},
"suggest": {
"ext-mbstring": "Needed to send email in multibyte encoding charset",
"ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
"psr/log": "For optional PSR-3 debug logging",
@ -218,31 +274,26 @@
}
],
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
"time": "2020-05-27T12:24:03+00:00"
"time": "2021-04-29T12:25:04+00:00"
},
{
"name": "psr/container",
"version": "1.0.0",
"version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
"reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
"url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
"reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
"php": ">=7.2.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
@ -255,7 +306,7 @@
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common Container Interface (PHP FIG PSR-11)",
@ -267,20 +318,20 @@
"container-interop",
"psr"
],
"time": "2017-02-14T16:28:37+00:00"
"time": "2021-03-05T17:36:06+00:00"
},
{
"name": "symfony/config",
"version": "v3.4.36",
"version": "v3.4.47",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
"reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe"
"reference": "bc6b3fd3930d4b53a60b42fe2ed6fc466b75f03f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/config/zipball/a599a867d0e4a07c342b5f1e656b3915a540ddbe",
"reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe",
"url": "https://api.github.com/repos/symfony/config/zipball/bc6b3fd3930d4b53a60b42fe2ed6fc466b75f03f",
"reference": "bc6b3fd3930d4b53a60b42fe2ed6fc466b75f03f",
"shasum": ""
},
"require": {
@ -302,11 +353,6 @@
"symfony/yaml": "To use the yaml reference dumper"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Config\\": ""
@ -331,20 +377,20 @@
],
"description": "Symfony Config Component",
"homepage": "https://symfony.com",
"time": "2019-12-01T10:45:41+00:00"
"time": "2020-10-24T10:57:07+00:00"
},
{
"name": "symfony/dependency-injection",
"version": "v3.4.36",
"version": "v3.4.47",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
"reference": "0d201916bfb3af939fec3c0c8815ea16c60ac1a2"
"reference": "51d2a2708c6ceadad84393f8581df1dcf9e5e84b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0d201916bfb3af939fec3c0c8815ea16c60ac1a2",
"reference": "0d201916bfb3af939fec3c0c8815ea16c60ac1a2",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/51d2a2708c6ceadad84393f8581df1dcf9e5e84b",
"reference": "51d2a2708c6ceadad84393f8581df1dcf9e5e84b",
"shasum": ""
},
"require": {
@ -373,11 +419,6 @@
"symfony/yaml": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\DependencyInjection\\": ""
@ -402,20 +443,20 @@
],
"description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com",
"time": "2019-12-01T08:33:36+00:00"
"time": "2020-10-24T10:57:07+00:00"
},
{
"name": "symfony/event-dispatcher",
"version": "v3.4.36",
"version": "v3.4.47",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
"reference": "f9031c22ec127d4a2450760f81a8677fe8a10177"
"reference": "31fde73757b6bad247c54597beef974919ec6860"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f9031c22ec127d4a2450760f81a8677fe8a10177",
"reference": "f9031c22ec127d4a2450760f81a8677fe8a10177",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/31fde73757b6bad247c54597beef974919ec6860",
"reference": "31fde73757b6bad247c54597beef974919ec6860",
"shasum": ""
},
"require": {
@ -427,6 +468,7 @@
"require-dev": {
"psr/log": "~1.0",
"symfony/config": "~2.8|~3.0|~4.0",
"symfony/debug": "~3.4|~4.4",
"symfony/dependency-injection": "~3.3|~4.0",
"symfony/expression-language": "~2.8|~3.0|~4.0",
"symfony/stopwatch": "~2.8|~3.0|~4.0"
@ -436,11 +478,6 @@
"symfony/http-kernel": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\EventDispatcher\\": ""
@ -465,20 +502,20 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
"time": "2019-10-24T15:33:53+00:00"
"time": "2020-10-24T10:57:07+00:00"
},
{
"name": "symfony/filesystem",
"version": "v3.4.36",
"version": "v3.4.47",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
"reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2"
"reference": "e58d7841cddfed6e846829040dca2cca0ebbbbb3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/00cdad0936d06fab136944bc2342b762b1c3a4a2",
"reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/e58d7841cddfed6e846829040dca2cca0ebbbbb3",
"reference": "e58d7841cddfed6e846829040dca2cca0ebbbbb3",
"shasum": ""
},
"require": {
@ -486,11 +523,6 @@
"symfony/polyfill-ctype": "~1.8"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Filesystem\\": ""
@ -515,20 +547,20 @@
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
"time": "2019-11-25T16:36:22+00:00"
"time": "2020-10-24T10:57:07+00:00"
},
{
"name": "symfony/http-foundation",
"version": "v3.4.36",
"version": "v3.4.47",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
"reference": "d2d0cfe8e319d9df44c4cca570710fcf221d4593"
"reference": "b9885fcce6fe494201da4f70a9309770e9d13dc8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/d2d0cfe8e319d9df44c4cca570710fcf221d4593",
"reference": "d2d0cfe8e319d9df44c4cca570710fcf221d4593",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/b9885fcce6fe494201da4f70a9309770e9d13dc8",
"reference": "b9885fcce6fe494201da4f70a9309770e9d13dc8",
"shasum": ""
},
"require": {
@ -540,11 +572,6 @@
"symfony/expression-language": "~2.8|~3.0|~4.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\HttpFoundation\\": ""
@ -569,24 +596,24 @@
],
"description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com",
"time": "2019-11-28T12:52:59+00:00"
"time": "2020-10-24T10:57:07+00:00"
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.13.1",
"version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3"
"reference": "c6c942b1ac76c82448322025e084cadc56048b4e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3",
"reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e",
"reference": "c6c942b1ac76c82448322025e084cadc56048b4e",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
"php": ">=7.1"
},
"suggest": {
"ext-ctype": "For best performance"
@ -594,7 +621,11 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.13-dev"
"dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
@ -627,24 +658,24 @@
"polyfill",
"portable"
],
"time": "2019-11-27T13:56:44+00:00"
"time": "2021-01-07T16:49:33+00:00"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.13.1",
"version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "7b4aab9743c30be783b73de055d24a39cf4b954f"
"reference": "5232de97ee3b75b0360528dae24e73db49566ab1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f",
"reference": "7b4aab9743c30be783b73de055d24a39cf4b954f",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1",
"reference": "5232de97ee3b75b0360528dae24e73db49566ab1",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
"php": ">=7.1"
},
"suggest": {
"ext-mbstring": "For best performance"
@ -652,7 +683,11 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.13-dev"
"dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
@ -686,42 +721,34 @@
"portable",
"shim"
],
"time": "2019-11-27T14:18:11+00:00"
"time": "2021-01-22T09:19:47+00:00"
},
{
"name": "symfony/polyfill-php70",
"version": "v1.13.1",
"version": "v1.20.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php70.git",
"reference": "af23c7bb26a73b850840823662dda371484926c4"
"reference": "5f03a781d984aae42cebd18e7912fa80f02ee644"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/af23c7bb26a73b850840823662dda371484926c4",
"reference": "af23c7bb26a73b850840823662dda371484926c4",
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644",
"reference": "5f03a781d984aae42cebd18e7912fa80f02ee644",
"shasum": ""
},
"require": {
"paragonie/random_compat": "~1.0|~2.0|~9.99",
"php": ">=5.3.3"
"php": ">=7.1"
},
"type": "library",
"type": "metapackage",
"extra": {
"branch-alias": {
"dev-master": "1.13-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Php70\\": ""
"dev-main": "1.20-dev"
},
"files": [
"bootstrap.php"
],
"classmap": [
"Resources/stubs"
]
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@ -745,35 +772,34 @@
"portable",
"shim"
],
"time": "2019-11-27T13:56:44+00:00"
"time": "2020-10-23T14:02:19+00:00"
},
{
"name": "twig/twig",
"version": "v1.42.4",
"version": "v1.44.2",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152"
"reference": "138c493c5b8ee7cff3821f80b8896d371366b5fe"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/e587180584c3d2d6cb864a0454e777bb6dcb6152",
"reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/138c493c5b8ee7cff3821f80b8896d371366b5fe",
"reference": "138c493c5b8ee7cff3821f80b8896d371366b5fe",
"shasum": ""
},
"require": {
"php": ">=5.5.0",
"php": ">=7.2.5",
"symfony/polyfill-ctype": "^1.8"
},
"require-dev": {
"psr/container": "^1.0",
"symfony/debug": "^3.4|^4.2",
"symfony/phpunit-bridge": "^4.4@dev|^5.0"
"symfony/phpunit-bridge": "^4.4.9|^5.0.9"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.42-dev"
"dev-master": "1.44-dev"
}
},
"autoload": {
@ -797,7 +823,6 @@
},
{
"name": "Twig Team",
"homepage": "https://twig.symfony.com/contributors",
"role": "Contributors"
},
{
@ -811,7 +836,189 @@
"keywords": [
"templating"
],
"time": "2019-11-11T16:49:32+00:00"
"time": "2021-01-05T10:10:05+00:00"
},
{
"name": "viharm/php-db-auth",
"version": "v2.7.0",
"source": {
"type": "git",
"url": "https://bitbucket.org/viharm/phpdbauth.git",
"reference": "60c1b0a28d26178d5e4960d49185af85734643c6"
},
"dist": {
"type": "zip",
"url": "https://bitbucket.org/viharm/phpdbauth/get/60c1b0a28d26178d5e4960d49185af85734643c6.zip",
"reference": "60c1b0a28d26178d5e4960d49185af85734643c6",
"shasum": ""
},
"require": {
"mnsami/composer-custom-directory-installer": "1.1.*",
"php": ">=5.3.0",
"viharm/php-khelper": "^1.4.1"
},
"type": "library",
"extra": {
"installer-paths": {
"./Lib/phpKhelper": [
"viharm/php-khelper"
]
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Viharm",
"email": "viharm@malviya.net",
"homepage": "http://viharm.malviya.net",
"role": "Developer"
}
],
"description": "PHP library for looking up users in a database table field",
"homepage": "https://bitbucket.org/viharm/phpdbauth",
"keywords": [
"auth",
"database",
"php"
],
"time": "2020-01-05T11:48:12+00:00"
},
{
"name": "viharm/php-khelper",
"version": "v1.4.1",
"source": {
"type": "git",
"url": "https://gitlab.com/viharm/phpKhelper.git",
"reference": "92aea82d609d3c9dc39952c9e386578f532e7140"
},
"dist": {
"type": "zip",
"url": "https://gitlab.com/api/v4/projects/viharm%2FphpKhelper/repository/archive.zip?sha=92aea82d609d3c9dc39952c9e386578f532e7140",
"reference": "92aea82d609d3c9dc39952c9e386578f532e7140",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Viharm",
"email": "viharm@malviya.net",
"homepage": "http://viharm.malviya.net",
"role": "Developer"
}
],
"description": "A companion PHP library to accompany Kint (http://kint-php.github.io/kint/)",
"homepage": "https://gitlab.com/viharm/phpKhelper",
"keywords": [
"debug",
"kint",
"php"
],
"time": "2018-09-15T08:27:02+00:00"
},
{
"name": "viharm/php-ldap-auth",
"version": "v2.5.1",
"source": {
"type": "git",
"url": "https://bitbucket.org/viharm/phpldapauth.git",
"reference": "3a60e626bfb63eda786dad30f09bd75fd5172cb1"
},
"dist": {
"type": "zip",
"url": "https://bitbucket.org/viharm/phpldapauth/get/3a60e626bfb63eda786dad30f09bd75fd5172cb1.zip",
"reference": "3a60e626bfb63eda786dad30f09bd75fd5172cb1",
"shasum": ""
},
"require": {
"mnsami/composer-custom-directory-installer": "1.1.*",
"php": ">=5.3.0",
"viharm/php-khelper": "^1.4.1"
},
"type": "library",
"extra": {
"installer-paths": {
"./Lib/phpKhelper": [
"viharm/php-khelper"
]
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Viharm",
"email": "viharm@malviya.net",
"homepage": "http://viharm.malviya.net",
"role": "Developer"
}
],
"description": "PHP library for authenticating with a directory server",
"homepage": "https://bitbucket.org/viharm/phpldapauth",
"keywords": [
"ad",
"auth",
"ldap",
"openldap",
"php"
],
"time": "2020-11-24T21:56:47+00:00"
},
{
"name": "viharm/psm-ldap-auth",
"version": "v1.1.3",
"source": {
"type": "git",
"url": "https://gitlab.com/viharm/PsmLDAPauth.git",
"reference": "1addeb0403a19e457f2c622a67156f52568da308"
},
"dist": {
"type": "zip",
"url": "https://gitlab.com/api/v4/projects/viharm%2FPsmLDAPauth/repository/archive.zip?sha=1addeb0403a19e457f2c622a67156f52568da308",
"reference": "1addeb0403a19e457f2c622a67156f52568da308",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"viharm/php-db-auth": "^2.6.0",
"viharm/php-ldap-auth": "^2.4.0"
},
"type": "library",
"notification-url": "https://packagist.org/downloads/",
"license": [
"GPL-3.0-only"
],
"authors": [
{
"name": "Viharm",
"email": "viharm@malviya.net",
"homepage": "http://viharm.malviya.net",
"role": "Developer"
}
],
"description": "Module for authenticating PHP Server Monitor users against a directory",
"homepage": "https://gitlab.com/viharm/PsmLDAPauth",
"keywords": [
"ad",
"auth",
"ldap",
"openldap",
"php",
"php server monitor",
"psm"
],
"time": "2020-11-24T22:57:57+00:00"
}
],
"packages-dev": [],
@ -825,6 +1032,7 @@
"platform": {
"php": "^5.5.9|>=7.0.8",
"ext-curl": "*",
"ext-json": "*",
"ext-pdo": "*",
"ext-xml": "*"
},

View File

@ -7,3 +7,4 @@ define('PSM_DB_HOST', 'localhost');
define('PSM_DB_PORT', '3306'); //3306 is the default port for MySQL. If no specfic port is used, leave it empty.
define('PSM_BASE_URL', '');
define('PSM_WEBCRON_KEY', '');
define('PSM_PUBLIC', false);

View File

@ -93,6 +93,10 @@ The following people have contributed to the development of PHP Server Monitor:
* Discord webhook support
* Łukasz Szczepański - https://github.com/NixNotCastey
* PromoSMS gateway
Translators
+++++++++++

View File

@ -10,7 +10,7 @@ Users
What are the differences between the user levels?
-------------------------------------------------
There are 2 user levels available: regular user and administrator.
There are 3 user levels available: anonymous, regular user and administrator.
Administrators:
@ -24,6 +24,16 @@ Regular users:
* View the history and logs of their assigned servers.
* Run the updater on their assigned servers.
Anonymous:
Only meant for user '__PUBLIC__' and can't be assigned to any other user.
* View the status of their assigned servers without password.
I removed user '__PUBLIC__', what now?
--------------------------------------
* Go to users -> create new user.
* Set the username to '__PUBLIC__', level to 'anonymous' and the rest is up to you.
Servers
+++++++
@ -101,6 +111,14 @@ After upgrading, my email stopped working.
Run 'php composer.phar update' and you should be good to go!
Setting up a public page.
-------------------------
1. Set PSM_PUBLIC to true in config.php.
2. If not yet existing, create a user with username '__PUBLIC__'. See Users -> "I removed user '__PUBLIC__', what now?" for help.
3. Add servers to user '__PUBLIC__'.
4. Go to /public.php.
Notifications
+++++++++++++

40
public.php Normal file
View File

@ -0,0 +1,40 @@
<?php
/**
* PHP Server Monitor
* Monitor your servers and websites.
*
* This file is part of PHP Server Monitor.
* PHP Server Monitor is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* PHP Server Monitor is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
*
* @package phpservermon
* @author Tim Zandbergen <Tim@Xervion.nl>
* @copyright Copyright (c) 2008-2017 Pepijn Over <pep@mailbox.org>
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
* @version Release: @package_version@
* @link http://www.phpservermonitor.org/
* @since phpservermon 3.6.0
**/
namespace {
define('PSM_PUBLIC_PAGE', true);
require __DIR__ . '/src/bootstrap.php';
$router->run('server_status');
// By destroying the session the login will show when going to another page
session_destroy();
}

View File

@ -108,6 +108,19 @@ namespace {
}
}
// check for a public page var
// This should be defined in the config
if (!defined('PSM_PUBLIC')) {
define('PSM_PUBLIC', false);
}
// check for a public page
// This variable is for internal use
// and should not be changed by the user manualy
if (!defined('PSM_PUBLIC_PAGE')) {
define('PSM_PUBLIC_PAGE', false);
}
$lang = psm_get_conf('language', 'en_US');
psm_load_lang($lang);
}

View File

@ -419,6 +419,7 @@ namespace {
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_CERTINFO, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, '');
if (!empty($request_method)) {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request_method);
@ -755,6 +756,9 @@ namespace {
case 'smsglobal':
$sms = new \psm\Txtmsg\Smsglobal();
break;
case 'infobip':
$sms = new \psm\Txtmsg\Infobip();
break;
case 'freevoipdeal':
$sms = new \psm\Txtmsg\FreeVoipDeal();
break;
@ -799,6 +803,9 @@ namespace {
case 'smsapi':
$sms = new \psm\Txtmsg\SMSAPI();
break;
case 'promosms':
$sms = new \psm\Txtmsg\PromoSMS();
break;
}
// copy login information from the config file
@ -1068,23 +1075,22 @@ namespace {
{
protected $url;
protected $json;
protected $message;
/**
* Send Webhook
*
* @return bool|string
* @var string $message
* @var array $replacements an array of the replacements
*
*/
public function sendWebhook($message)
public function sendWebhook($replacements)
{
$error = "";
$success = 1;
$this->setMessage($message);
$jsonMessage = strtr($this->json, array('#message' => $this->message));
$replacements['#message'] = $this->stripTagsFromMessage($replacements['#message']);
$jsonMessage = strtr($this->json, $replacements);
$curl = curl_init($this->url);
curl_setopt($curl, CURLOPT_POST, 1);
@ -1160,7 +1166,7 @@ namespace {
* @var string $message
*
*/
public function setMessage($message)
public function stripTagsFromMessage($message)
{
$message = str_replace("<ul>", "", $message);
$message = str_replace("</ul>", "\n", $message);
@ -1171,7 +1177,7 @@ namespace {
$message = str_replace("<b>", "", $message);
$message = str_replace("<b/>", "", $message);
$message = strip_tags($message);
$this->message = (string)$message;
return (string)$message;
}
}
}

View File

@ -59,7 +59,7 @@ $sm_lang = array(
'long_day_format' => '%B %e, %Y',
'yesterday_format' => 'Gestern um %k:%M Uhr',
'other_day_format' => '%A um %k:%M Uhr',
'never' => 'Never',
'never' => 'Nie',
'hours_ago' => 'vor %d Stunden',
'an_hour_ago' => 'vor über einer Stunde',
'minutes_ago' => 'vor %d Minuten',
@ -125,10 +125,10 @@ $sm_lang = array(
'email' => 'E-Mail',
'sms' => 'SMS',
'pushover' => 'Pushover',
'no_logs' => 'Keine Logs vorhanden.',
'clear' => 'Protokoll Logs',
'delete_title' => 'Protokoll Logs',
'delete_message' => 'Bist du sicher, dass du <b>alle</b> logs löschen möchtest?',
'no_logs' => 'Keine Protokolle vorhanden.',
'clear' => 'Protokoll löschen',
'delete_title' => 'Protokoll löschen',
'delete_message' => 'Bist du sicher, dass du <b>alle</b> Protokolle löschen möchtest?',
),
'servers' => array(
'server' => 'Server',
@ -196,14 +196,15 @@ $sm_lang = array(
'general' => 'Allgemein',
'language' => 'Sprache',
'show_update' => 'Wöchentlich auf Aktualisierungen prüfen?',
'email_add_url' => 'Server URL an E-Mail anhängen?',
'email_status' => 'E-Mail-Versand erlauben?',
'email_from_email' => 'Absenderadresse',
'email_from_name' => 'Name des Absenders',
'email_smtp' => 'SMTP-Versand aktivieren',
'email_smtp_host' => 'SMTP Server/Host',
'email_smtp_port' => 'SMTP Port',
'email_smtp_security' => 'SMTP security',
'email_smtp_security_none' => 'None',
'email_smtp_security' => 'SMTP Authentifizierung',
'email_smtp_security_none' => 'Keine',
'email_smtp_username' => 'SMTP Benutzername',
'email_smtp_password' => 'SMTP Passwort',
'email_smtp_noauth' => 'Feld leer lassen, bei fehlender Authentifizierung',
@ -221,6 +222,9 @@ $sm_lang = array(
'pushover_api_token_description' => 'Bevor Sie Pushover verwenden können, müssen Sie Ihre <a href="%1$s"
target="_blank" rel="noopener">Anwendung hier registrieren</a> und Ihren
Anwendungs-API-Token hier eingeben.',
'telegram_status' => 'Telegram Nachrichten erlauben?',
'telegram_add_url' => 'Server URL an Nachricht anhängen?',
'jabber_status' => 'Allow sending Jabber (XMPP) messages',
'alert_type' => 'Wann möchten Sie benachrichtigt werden?',
'alert_type_description' => '<b>Status geändert:</b> ... wenn sich der Status ändert<br>z. B. online ->
offline oder offline -> online.<br><br><b>Offline: </b>Sie bekommen eine
@ -237,6 +241,7 @@ $sm_lang = array(
'log_email' => 'E-Mail-Versand protokollieren?',
'log_sms' => 'SMS-Versand protokollieren?',
'log_pushover' => 'Pushover-Versand protokollieren?',
'log_telegram' => 'Telegram-Versand protokollieren?',
'updated' => 'Die Einstellungen wurden gespeichert.',
'tab_email' => 'E-Mail',
'tab_sms' => 'SMS',
@ -286,14 +291,14 @@ $sm_lang = array(
'off_pushover_message' => 'Kann keine funktionierende Verbindung zum Dienst bzw. der Webseite
aufbauen:<br><br>Dienst/Webseite: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Fehler:
%ERROR%<br>Datum: %DATE% Uhr',
'on_sms' => 'Dienst/Webseite \'%LABEL%\' ist wieder online: ip=%IP%, port=%PORT%, it was down for
'on_sms' => 'Dienst/Webseite \'%LABEL%\' ist wieder online: ip=%IP%, port=%PORT%, offline r
%LAST_OFFLINE_DURATION%',
'on_email_subject' => 'Hinweis: Dienst/Webseite \'%LABEL%\' ist wieder online.',
'on_email_body' => 'Dienst/Webseite \'%LABEL%\' ist wieder erreichbar, it was down for
'on_email_body' => 'Dienst/Webseite \'%LABEL%\' ist wieder erreichbar, offline r
%LAST_OFFLINE_DURATION%:<br><br>Server: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Datum:
%DATE% Uhr',
'on_pushover_title' => 'Dienst/Webseite \'%LABEL%\' ist wieder online.',
'on_pushover_message' => 'Dienst/Webseite \'%LABEL%\' ist wieder erreichbar, it was down for
'on_pushover_message' => 'Dienst/Webseite \'%LABEL%\' ist wieder erreichbar, offline r
%LAST_OFFLINE_DURATION%:<br><br>Server: %LABEL%<br>IP: %IP%<br>Port:
%PORT%<br>Datum: %DATE% Uhr',
),
@ -313,7 +318,7 @@ $sm_lang = array(
'password_reset' => 'Passwort zurücksetzen',
'password_reset_email_subject' => 'Setzen Sie Ihr Zugangspasswort für den Server Monitor',
'password_reset_email_body' => 'Benutzen Sie bitte den folgenden Link, um Ihr Zugangspasswort zurückzusetzen.
Bitte beachten Sie: Der Link verfällt in 1 Stunde.<br><br>%link%',
Bitte beachten Sie: Der Link verfällt in einer Stunde.<br><br>%link%',
'error_user_incorrect' => 'Der angegebene Benutzername konnte nicht gefunden werden.',
'error_login_incorrect' => 'Die angegebenen Informationen sind leider nicht korrekt.',
'error_login_passwords_nomatch' => 'Die angegebenen Passwörter stimmen nicht überein.',

View File

@ -106,7 +106,10 @@ $sm_lang = array(
'level' => 'Level',
'level_10' => 'Administrator',
'level_20' => 'User',
'level_description' => '<b>Administrators</b> have full access: they can manage servers, users and edit the global configuration.<br><b>Users</b> can only view and run the updater for the servers that have been assigned to them.',
'level_30' => 'Anonymous',
'level_description' => '<b>Administrators</b> have full access: they can manage servers, users and edit the
global configuration.<br><b>Users</b> can only view and run the updater for the
servers that have been assigned to them.',
'mobile' => 'Mobile',
'email' => 'Email',
'pushover' => 'Pushover',
@ -131,12 +134,11 @@ $sm_lang = array(
'jabber_label' => 'Jabber',
'jabber_description' => 'You Jabber account',
'webhook' => 'Webhook',
'webhook_description' => 'Send a json webhook to a certain endpoint. <br/> The json can be customized, e.g. {
"text":"servermon: #message"}',
'webhook_description' => 'Send a json webhook to a certain endpoint.',
'webhook_url' => 'Webhook Url',
'webhook_url_description' => 'Webhook public endpoint url, should start with https://.',
'webhook_json' => 'Webhook JSON',
'webhook_json_description' => 'Define a custom json, use #message as message variable.',
'webhook_json_description' => 'Define a custom json, e.g. {"username": "servermon: #server_label" "text": "#server_ip is **#status**"}.<br>Available variables: #message, #server_error, #server_ip, #server_label, #server_last_offline_duration and #status',
'delete_title' => 'Delete User',
'delete_message' => 'Are you sure you want to delete user \'%1\'?',
'deleted' => 'User deleted.',
@ -154,6 +156,7 @@ $sm_lang = array(
'error_user_password_invalid' => 'The entered password is invalid.',
'error_user_password_no_match' => 'The entered passwords do not match.',
'error_user_admin_cant_be_deleted' => 'You can\'t remove the last administrator.',
'error_user_cant_be_anonymous' => 'Only user \'__public__\' can have the level anonymous.'
),
'log' => array(
'title' => 'Log entries',
@ -293,6 +296,7 @@ $sm_lang = array(
'proxy_user' => 'Proxy username',
'proxy_password' => 'Proxy password',
'email_status' => 'Allow sending email',
'email_add_url' => 'Add url to the monitor in email',
'email_from_email' => 'Email from address',
'email_from_name' => 'Email from name',
'email_smtp' => 'Enable SMTP',
@ -315,13 +319,14 @@ $sm_lang = array(
'webhook_url' => 'Webhook Url',
'webhook_url_description' => 'Url to webhook endpoint',
'webhook_json' => 'Webhook Json',
'webhook_json_description' => 'Customized Json, use #message as message variable.',
'webhook_json_description' => 'Define a custom json. Available variables: #message, #server_error, #server_ip, #server_label, #server_last_offline_duration and #status',
'pushover_status' => 'Allow sending Pushover messages',
'pushover_description' => 'Pushover is a service that makes it easy to get real-time notifications. See <a href="https://pushover.net/" target="_blank">their website</a> for more info.',
'pushover_clone_app' => 'Click here to create your Pushover app',
'pushover_api_token' => 'Pushover App API Token',
'pushover_api_token_description' => 'Before you can use Pushover, you need to <a href="%1$s" target="_blank" rel="noopener">register an App</a> at their website and enter the App API Token here.',
'telegram_status' => 'Allow sending Telegram messages',
'telegram_add_url' => 'Add url to the monitor in the message',
'telegram_description' => '<a href="https://telegram.org/" target="_blank">Telegram</a> is a chat app that makes it easy to get real-time notifications. Visit the <a href="http://docs.phpservermonitor.org/" target="_blank">documentation</a> for more info and an install guide.',
'telegram_api_token' => 'Telegram API Token',
'telegram_api_token_description' => 'Before you can use Telegram, you need to get a API token. Visit the <a href="http://docs.phpservermonitor.org/" target="_blank">documentation</a> for help.',
@ -338,6 +343,53 @@ $sm_lang = array(
'jabber_password' => 'Password',
'jabber_password_description' => 'Fill only to set or change.',
'jabber_check' => 'Check your Jabber account if message was received.',
'dirauth_status' => 'Authenticate with directory service',
'authdir_host_locn' => 'Directory host',
'authdir_host_port' => 'Directory port',
'authdir_type' => 'Service type',
'authdir_type_description' => 'OpenLDAP: Directory is an OpenLDAP service.<br>AD
DS: Directory is an Active Directory Domain Service.<br>AD
LDS: Directory is an Active Directory Lightweight Directory
Service.',
'authdir_type_openldap' => 'OpenLDAP',
'authdir_type_adds' => 'AD DS',
'authdir_type_adlds' => 'AD LDS',
'authdir_userdomain' => 'Active Directory domain',
'authdir_userdomain_description' => 'User domain for Active Directory. This is typically the NETBIOS domain
for AD DS and the DNS domain for AD LDS. Not used for OpenLDAP
directories.',
'authdir_ldapver' => 'LDAP protocol version',
'authdir_ldapver_description' => 'Version of the LDAP specification. This is typically Version 3 (default).
Version 2 was deprecated in 2003 (RFC3494).',
'authdir_ldapfollowref' => 'Follow referrals',
'authdir_ldapfollowref_description' => 'Follow referrals if the specified server refers to another server for
the required information. Leave unchecked if you are unaware of this
functionality.',
'authdir_basedn' => 'Base DN*',
'authdir_basedn_description' => 'Base distinguished name (DN) of the directory service. E.g.,
dc=domain,dc=tld. This is a required field.',
'authdir_usernameattrib' => 'Username attribute',
'authdir_usernameattrib_description' => 'Attribute used by the directory service to refer to the username of
the user.',
'authdir_groupnameattrib' => 'Group name attribute',
'authdir_groupnameattrib_description' => 'Attribute used by the directory service to refer to the group name
of a group. This is used to check for group membership.',
'authdir_groupmemattrib' => 'Group member attribute',
'authdir_groupmemattrib_description' => 'Attribute used by the directory service to refer to the group(s) of
which the user is a member. This is used to check for group
membership.',
'authdir_usercontainerrdn' => 'User container RDN',
'authdir_usercontainerrdn_description' => 'Relative distinguished name of the users container in the
directory. E.g., ou=Users',
'authdir_groupcontainerrdn' => 'Group container RDN',
'authdir_groupcontainerrdn_description' => 'Relative distinguished name of the groups container in the
directory. E.g., ou=Groups',
'authdir_groupname' => 'Authorised directory group',
'authdir_groupname_description' => 'Directory group authorised to access application. Directory users not
members of this group will not be authenticated (currently not available
for AD).',
'authdir_defaultrole' => 'Default role',
'authdir_defaultrole_description' => 'Default role to be assigned to users logging in for the first time.',
'alert_type' => 'Select when you\'d like to be notified.',
'alert_type_description' => '<b>Status change:</b> You will receive a notification when a server has a change in status. So from online -> offline or offline -> online.<br><br><b>Offline:</b> You will receive a notification when a server goes offline for the *FIRST TIME ONLY*. For example, your cronjob is every 15 minutes and your server goes down at 1 am and stays down till 6 am. You will get 1 notification at 1 am and that\'s it.<br><br><b>Always:</b> You will receive a notification every time the script runs and a site is down, even if the site has been offline for hours.',
'alert_type_status' => 'Status change',
@ -364,6 +416,7 @@ $sm_lang = array(
'tab_webhook' => 'Webhook',
'tab_telegram' => 'Telegram',
'tab_jabber' => 'Jabber',
'tab_auth' => 'Authentication',
'settings_email' => 'Email settings',
'settings_sms' => 'Text message settings',
'settings_discord' => 'Discord settings',
@ -374,6 +427,7 @@ $sm_lang = array(
'settings_notification' => 'Notification settings',
'settings_log' => 'Log settings',
'settings_proxy' => 'Proxy settings',
'settings_dirauth' => 'LDAP settings',
'auto_refresh' => 'Auto-refresh',
'auto_refresh_description' => 'Auto-refresh servers page.<br><span class="small">Time in seconds, if 0 the page won\'t refresh.</span>',
'test' => 'Test',
@ -409,8 +463,8 @@ $sm_lang = array(
'telegram_error' => 'An error has occurred while sending the Telegram notification: %s',
'telegram_error_notoken' => 'Unable to send test notification: no Telegram API token found in the global configuration.',
'telegram_error_noid' => 'Unable to send test notification: no chat id found in your profile.',
'jabber_sent' => 'Telegram notification sent',
'jabber_error' => 'An error has occurred while sending the Telegram notification: %s',
'jabber_sent' => 'Jabber notification sent',
'jabber_error' => 'An error has occurred while sending the Jabber notification: %s',
'jabber_error_noconfig' => 'Unable to send test notification: no Jabber account set in the global configuration.',
'jabber_error_noaccount' => 'Unable to send test notification: no Jabber account found in your profile.',
'log_retention_period' => 'Log retention period',

View File

@ -136,7 +136,7 @@ $sm_lang = array(
rel="noopener"><button class="btn btn-primary">Étape suivante</button></a>
<br>Cela va ouvrir une conversation avec le BOT. Vous devez appuyer sur
\'/start\' ou le saisir.',
'telegram_bot_username_error_token' => '<b>401 - Unauthorized</b>. Assuez-vous que le Token API soit valide.',
'telegram_bot_username_error_token' => '<b>401 - Unauthorized</b>. Assurez-vous que le Token API soit valide.',
'telegram_bot_error' => 'Une erreur s\'est produite en tentant d\'activer les notifications Telegram&nbsp;: %s',
'delete_title' => 'Supprimer un utilisateur',
'delete_message' => 'Êtes-vous sûr de vouloir supprimer l\'utilisateur \'%1\'&nbsp;?',
@ -194,7 +194,7 @@ $sm_lang = array(
'custom_request_method' => 'Type de requête personalisée',
'popular_request_methods' => 'Type de requête prédéfinie',
'post_field' => 'Champ POST',
'post_field_description' => 'Les données qui seront envoyés en utilisant le type de requête choisi.',
'post_field_description' => 'Les données qui seront envoyées en utilisant le type de requête choisi.',
'please_select' => 'Veuillez choisir',
'type' => 'Type',
'type_website' => 'Site Web',
@ -209,14 +209,14 @@ $sm_lang = array(
site, le serveur sera considéré hors-ligne.',
'redirect_check' => 'La redirection vers un autre domaine est',
'redirect_check_description' => 'Une redirection vers un autre domaine est généralement mauvais signe.',
'allow_http_status' => 'Autoriser les codes de status HTTP',
'allow_http_status_description' => 'Marquer le serveur en ligne. Les codes de status HTTP inférieur à 400
sont considérés comme en ligne par défaut. Séparés les valeurs avec
'allow_http_status' => 'Autoriser Les codes de statuts HTTP',
'allow_http_status_description' => 'Marquer le serveur en ligne. Les codes de statuts HTTP inférieur à 400
sont considérés comme en ligne par défaut. Séparer les valeurs avec
|.',
'header_name' => 'Nom d\'en-têtes',
'header_value' => 'Valeur d\'en-tête',
'header_name_description' => 'Sensible à la casse.',
'header_value_description' => 'Les expréssions régulières sont autorisées.',
'header_value_description' => 'Les expressions régulières sont autorisées.',
'last_check' => 'Dernière vérification',
'last_online' => 'Dernière fois OK',
'last_offline' => 'Dernière fois hors-ligne',
@ -277,11 +277,10 @@ $sm_lang = array(
'general' => 'Général',
'language' => 'Langue',
'show_update' => 'Vérifier les nouvelles mises à jour chaque semaine',
'password_encrypt_key' => 'Clée de cryptage des mots de passe',
'password_encrypt_key_note' => 'Cette clée est utilisée pour crypter les mots de passe qui sont enregistrés
dans la base de donnée pour les serveurs qui requiert une authentification.
Si la clé est modifié, les mots de passe enregistré ne seront plus
valide&nbsp;!',
'password_encrypt_key' => 'Clé de chiffrement des mots de passe',
'password_encrypt_key_note' => 'Cette clé est utilisée pour chiffrer les mots
de passe qui sont enregistrés dans la base de données pour les serveurs qui requierent une authentification. Si la clé
est modifiée, les mots de passe enregistrés ne seront plus valide&nbsp;!',
'proxy' => 'Activer le proxy',
'proxy_url' => 'URL du proxy',
'proxy_user' => 'Nom d\'utilisateur du proxy',
@ -358,8 +357,8 @@ $sm_lang = array(
'settings_notification' => 'Configuration des notifications',
'settings_log' => 'Configuration des événements',
'settings_proxy' => 'Configuration du proxy',
'auto_refresh' => 'Auto-rachaîchissement',
'auto_refresh_description' => 'Auto-rachaîchissement de la page serveurs.<br><span class="small">Temps en
'auto_refresh' => 'Auto-rafraîchissement',
'auto_refresh_description' => 'Auto-rafraîchissement de la page serveurs.<br><span class="small">Temps en
secondes. Si 0, la page n\'est pas rafraîchie.</span>',
'test' => 'Tester',
'test_email' => 'Un email va vous être envoyé à l\'adresse définie dans votre profil utilisateur.',
@ -385,9 +384,9 @@ $sm_lang = array(
définie dans votre profil.',
'telegram_sent' => 'Notification Telegram envoyée',
'telegram_error' => 'Une erreur s\'est produite lors de l\'envoi de la notification&nbsp;: %s',
'telegram_error_notoken' => 'Impossible d\'envoyé la notification de test&nbsp;: aucun token APII token
'telegram_error_notoken' => 'Impossible d\'envoyer la notification de test&nbsp;: aucun token APII token
trouvé dans la configuration.',
'telegram_error_noid' => 'Impossible d\'envoyé la notification de test&nbsp;: aucun ID de conversation
'telegram_error_noid' => 'Impossible d\'envoyer la notification de test&nbsp;: aucun ID de conversation
trouvé dans votre profil utilisateur.',
'log_retention_period' => 'Durée de conservation',
'log_retention_period_description' => 'Nombre de jours de conservation des événements envoyés et des temps
@ -416,7 +415,7 @@ $sm_lang = array(
'on_pushover_message' => 'Le Serveur \'%LABEL%\' est de nouveau OK, il était hors-ligne pendant
%LAST_OFFLINE_DURATION%:<br><br>Serveur: %LABEL%<br>IP: %IP%<br>Port:
%PORT%<br>Date: %DATE%',
'on_telegram_message' => 'Server \'%LABEL%\' is running again, it was down for:
'on_telegram_message' => 'Server \'%LABEL%\' est de nouveau OK, il était hors-ligne pendant:
%LAST_OFFLINE_DURATION%<br><br>Server: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Date:
%DATE%',
'combi_off_email_message' => '<ul><li>Serveur&nbsp;: %LABEL%</li><li>IP&nbsp;: %IP%</li><li>Port&nbsp;:
@ -433,15 +432,15 @@ $sm_lang = array(
%DATE%</li></ul>',
'combi_on_telegram_message' => '- Serveur&nbsp;: %LABEL%<br>- IP: %IP%<br>- Port&nbsp;: %PORT%<br>-
Durée&nbsp;: %LAST_OFFLINE_DURATION%<br>- Date&nbsp;: %DATE%<br><br>',
'combi_email_subject' => 'IMPORTANT&nbsp;: \'%UP%\' serveurs de nouveaux en ligne, \'%DOWN%\' serveurs
'combi_email_subject' => 'IMPORTANT&nbsp;: \'%UP%\' serveur(s) de nouveau en ligne, \'%DOWN%\'
hors-ligne',
'combi_pushover_subject' => '\'%UP%\' serveurs de nouveaux en ligne, \'%DOWN%\' serveurs hors-ligne',
'combi_email_message' => '<b>Les serveurs suivants sont hors-ligne&nbsp;:</b><br>%DOWN_SERVERS%<br><b>Les
serveurs suivants sont en ligne&nbsp;:</b><br>%UP_SERVERS%',
'combi_pushover_message' => '<b>Les serveurs suivants sont hors-ligne&nbsp;:</b><br>%DOWN_SERVERS%<br><b>Les
serveurs suivants sont en ligne&nbsp;:</b><br>%UP_SERVERS%',
'combi_telegram_message' => '<b>Les serveurs suivants sont hors-ligne&nbsp;:</b><br>%DOWN_SERVERS%<br><b>Les
serveurs suivants sont en ligne&nbsp;:</b><br>%UP_SERVERS%',
'combi_pushover_subject' => '\'%UP%\' serveur(s) de nouveaux en ligne, \'%DOWN%\' serveur(s) hors-ligne',
'combi_email_message' => '<b>Le(s) serveur(s) suivant(s) hors-ligne&nbsp;:</b><br>%DOWN_SERVERS%<br><b>Le(s)
serveur(s) suivant(s) en ligne&nbsp;:</b><br>%UP_SERVERS%',
'combi_pushover_message' => '<b>Le(s) serveur(s) suivant(s) hors-ligne&nbsp;:</b><br>%DOWN_SERVERS%<br><b>Le(s)
serveur(s) suivant(s) en ligne&nbsp;:</b><br>%UP_SERVERS%',
'combi_telegram_message' => '<b>Le(s) serveur(s) suivant(s) hors-ligne&nbsp;:</b><br>%DOWN_SERVERS%<br><b>Le(s)
serveur(s) suivant(s) en ligne&nbsp;:</b><br>%UP_SERVERS%',
),
'login' => array(
'welcome_usermenu' => 'Bonjour %user_name%',

View File

@ -250,6 +250,7 @@ $sm_lang = array(
'language' => 'Taal',
'show_update' => 'Controleer wekelijks voor updates?',
'email_status' => 'Sta email berichten toe?',
'email_add_url' => 'Voeg url van de monitor toe aan de email',
'email_from_email' => 'Email van adres',
'email_from_name' => 'Email van naam',
'email_smtp' => 'SMTP gebruiken',
@ -275,6 +276,7 @@ $sm_lang = array(
target="_blank" rel="noopener">App registreren</a> via hun website, en
daarvan de App API Token hier invullen.',
'telegram_status' => 'Sta Telegram berichten toe?',
'telegram_add_url' => 'voeg url van de monitor toe aan het bericht',
'telegram_api_token' => 'Telegram API Token',
'alert_type' => 'Selecteer wanneer je een notificatie wilt',
'alert_type_description' => '<b>Status verandert:</b> Je ontvangt alleen bericht wanneer een server van status

View File

@ -22,7 +22,7 @@
* @author Arkadiusz Klenczar <a.klenczar@gmail.com>
* @copyright Copyright (c) 2008-2017 Pepijn Over <pep@mailbox.org>
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
* @version Release: @package_version@
* @version Release: v3.5.2
* @link http://www.phpservermonitor.org/
**/
@ -43,6 +43,7 @@ $sm_lang = array(
'save' => 'Zapisz',
'edit' => 'Edycja',
'delete' => 'Usuń',
'view' => 'Zobacz',
'date' => 'Data',
'message' => 'Wiadomość',
'yes' => 'Tak',
@ -54,8 +55,11 @@ $sm_lang = array(
rel="noopener">http://www.phpservermonitor.org</a>.',
'back_to_top' => 'Do góry',
'go_back' => 'Wstecz',
'ok' => 'OK',
'ok' => 'pożądane',
'bad' => 'niepożądane',
'cancel' => 'Anuluj',
'none' => 'Brak',
'activate' => 'Aktywny',
'short_day_format' => '%B %e',
'long_day_format' => '%B %e, %Y',
'yesterday_format' => 'Wczoraj o %k:%M',
@ -67,7 +71,23 @@ $sm_lang = array(
'a_minute_ago' => 'minutę temu',
'seconds_ago' => '%d sekund temu',
'a_second_ago' => 'sekundę temu',
'seconds' => 'sekund',
'year' => 'rok',
'years' => 'lata',
'month' => 'miesiąc',
'months' => 'miesiące',
'day' => 'dzień',
'days' => 'dni',
'hour' => 'godzina',
'hours' => 'godziny',
'minute' => 'minuta',
'minutes' => 'minut',
'second' => 'sekunda',
'seconds' => 'sekundy',
'millisecond' => 'milisekunka',
'milliseconds' => 'milisekundy',
'current' => 'aktualnie',
'settings' => 'Ustawienia',
'search' => 'Szukaj',
),
'menu' => array(
'config' => 'Konfiguracja',
@ -101,6 +121,39 @@ $sm_lang = array(
'pushover_device' => 'Urządzenie dla Pushover',
'pushover_device_description' => 'Nazwa urządzenia do którego wysłać powiadomienie. Pozostaw puste aby
wysłać do wszystkich urządzeń.',
'discord' => 'Discord',
'discord_label' => 'Discord',
'discord_description' => 'Podaj swoje <a href="https://discordjs.guide/popular-topics/webhooks.html"
target="_blank">webhook</a> tutaj.',
'telegram' => 'Telegram',
'telegram_description' => '<a href="https://telegram.org/" target="_blank">Telegram</a> jest komunikatorem
internetowym, który umożliwa notyfikacje w czasie rzeczywistym. Odwiedź stronę
z <a href="http://docs.phpservermonitor.org/" target="_blank">documentacja</a> aby
uzyskać więcej informacji.',
'telegram_chat_id' => 'Telegram chat id',
'telegram_chat_id_description' => 'Wiadomość zostanie wysłana do odpowiedniej rozmowy.',
'telegram_get_chat_id' => 'Kliknij tutaj żeby otrzywać swój chat id',
'activate_telegram' => 'Aktywuj notyfikacje Telegram',
'activate_telegram_description' => 'Zezwól na wysyłanie notyfikacji Telegram do podanego chat id. Bez tej
zgodny Telegram nie zezwoli na wysyłanie notyfikacji do Ciebie.',
'telegram_bot_username_found' => 'Bot został odnaleziony!<br><a href="%s" target="_blank"
rel="noopener"><button class="btn btn-primary">Następny krok</button></a>
<br>Następnie otworzy się okno rozmowy z botem. Musisz nacisnąć start
lub wpisać /start.',
'telegram_bot_username_error_token' => '401 - Błąd autoryzacji. Proszę sprawdzić czy API token jest
prawidłowy.',
'telegram_bot_error' => 'Wystąpił błąd podczas aktywowania notyfikacji Telegram: %s',
'jabber' => 'Jabber',
'jabber_label' => 'Jabber',
'jabber_description' => 'Twoje konto Jabber',
'webhook' => 'Webhook',
'webhook_description' => 'Wyślij json webhook do wybranego endpoint. <br/>Zapytanie json może być dowolnie
dostosowane np. {"text":"servermon: #message"}',
'webhook_url' => 'Webhook URL',
'webhook_url_description' => 'Publiczne webhook endpoint URL powinny się zaczynać od https://.',
'webhook_json' => 'Webhook JSON',
'webhook_json_description' => 'Zdefiniuj niestandardowy json, użyj #message jak zmienną z treścią
wiadomości.',
'delete_title' => 'Usuń użytkownika',
'delete_message' => 'Czy jesteś pewny że chcesz usunąć użytkownika \'%1\'?',
'deleted' => 'Użytkownik usunięty.',
@ -118,6 +171,7 @@ $sm_lang = array(
'error_user_no_match' => 'Użytkownik nie został odnaleziony.',
'error_user_password_invalid' => 'Wprowadzone hasło jest nieprawidłowe.',
'error_user_password_no_match' => 'Wprowadzone hasła są różne.',
'error_user_admin_cant_be_deleted' => 'Nie można usunąć jedynego konta administratora.',
),
'log' => array(
'title' => 'Logi',
@ -125,7 +179,11 @@ $sm_lang = array(
'status' => 'Status',
'email' => 'Email',
'sms' => 'SMS',
'discord' => 'Discord',
'pushover' => 'Pushover',
'webhook' => 'Webhook',
'telegram' => 'Telegram',
'jabber' => 'Jabber',
'no_logs' => 'Brak logów',
'clear' => 'Wyczyść log',
'delete_title' => 'Wyczyść log',
@ -138,23 +196,70 @@ $sm_lang = array(
'domain' => 'Domena/IP',
'timeout' => 'Timeout',
'timeout_description' => 'Liczba sekund do odczekania na odpowiedź serwera.',
'authentication_settings' => 'Ustawienia uwierzytelniania',
'optional' => 'Opcjonalne',
'website_username' => 'Nazwa użytkownika',
'website_username_description' => 'Nazwa użytkownika z dostępem do strony (tylko uwierzytelnianie Apache
jest wspierana).',
'website_password' => 'Hasło',
'website_password_description' => 'Hasło dostęput do strony. Hasło zostanie zaszyfrowane i zapisane w
badzie danych.',
'fieldset_monitoring' => 'Monitoring',
'fieldset_permissions' => 'Uprawnienia',
'permissions' => 'Serwer będzie widoczny dla następujących użytkowników',
'port' => 'Port',
'custom_port' => 'Niestandardowy port',
'popular_ports' => 'Popularne porty',
'request_method' => 'Metoda HTTP',
'custom_request_method' => 'Niestandardowe metoda HTTP',
'popular_request_methods' => 'Popularne metody HTTP',
'post_field' => 'Pole Post',
'post_field_description' => 'Dane zostaną wysłane za pomocą wyżej wybranej metody.',
'please_select' => 'Proszę wybrać',
'type' => 'Typ',
'type_website' => 'Strona',
'type_service' => 'Usługa',
'type_ping' => 'Ping',
'pattern' => 'Wyszukiwane wyrażenie/wzorzec',
'pattern_description' => 'Jeśli wzorzec nie zostanie odnaleziony, status zostanie ustawiony na offline.
Wyrażenia regularne dozwolone.',
'pattern_description' => 'Jeśli wzorzec nie zostanie odnaleziony, status zostanie zmieniony. Dozwolone
wyrażenia regularne.',
'pattern_online' => 'Wykrycie wzorca oznacza, że strona jest',
'pattern_online_description' => 'Online: jeżeli wzorzec zostanie wykryty na stronie to server zostanie
oznaczony jako online. Offline: jeżeli wzorzec nie zostanie wykryty na
stronie to serwer zostanie oznaczony jako offline.',
'redirect_check' => 'Przekierowanie na inną domenę jest',
'redirect_check_description' => 'Przekierowanie na inną domenę zazwyczaj jest niepożądanym zachowaniem.',
'allow_http_status' => 'Dozwolone kody odpowiedzi HTTP',
'allow_http_status_description' => 'Podaj listę dozwolonych kodów odpowiedzi HTTP, kolejne wartości
oddzielone za pomocą |. Domyślnie odpowiedzi o wartości poniżej 400
zostaną uznane jako prawidłowe.',
'header_name' => 'Nazwa nagłówka',
'header_value' => 'Wartość nagłówka',
'header_name_description' => 'Wielkość liter ma znaczenie.',
'header_value_description' => 'Dozwolone są wyrażenia regularne.',
'last_check' => 'Ostatnie sprawdzenie',
'last_online' => 'Ostatnio online',
'last_offline' => 'Ostatnio offline',
'last_output' => 'Ostatni prawidłowy wynik',
'last_error' => 'Ostatni bląd',
'last_error_output' => 'Ostatni wynik blądu',
'output' => 'Wynik',
'monitoring' => 'Monitorowany',
'no_monitoring' => 'Brak monitoringu',
'email' => 'Email',
'send_email' => 'Wyślij Email',
'sms' => 'SMS',
'send_sms' => 'Wyślij SMS',
'discord' => 'Discord',
'send_discord' => 'Wyślij powiadomienie Discord',
'webhook' => 'Webook',
'send_webhook' => 'Wyślij powiadomienie Webhook',
'pushover' => 'Pushover',
'send_pushover' => 'Wyślij powiadomienie Pushover',
'telegram' => 'Telegram',
'send_telegram' => 'Wyślij powiadomienie Telegram',
'jabber' => 'Jabber',
'send_jabber' => 'Wyślij powiadomienie Jabber',
'users' => 'Użytkownicy',
'delete_title' => 'Usuń serwer',
'delete_message' => 'Czy jesteś pewny że chcesz usunąć serwer \'%1\'?',
@ -165,6 +270,8 @@ $sm_lang = array(
'latency_max' => 'Opóźnienie (maksymalne)',
'latency_min' => 'Opóźnienie (minimalne)',
'latency_avg' => 'Opóźnienie (średnie)',
'online' => 'online',
'offline' => 'offline',
'uptime' => 'Czas dostępności',
'year' => 'Rok',
'month' => 'Miesiąc',
@ -173,6 +280,12 @@ $sm_lang = array(
'hour' => 'Godzina',
'warning_threshold' => 'Próg ostrzeżeń',
'warning_threshold_description' => 'Ilość wymaganych niepowodzeń przed oznaczeniem serwera jako offline.',
'ssl_cert_expiry_days' => 'Ważność certyfikatu SSL',
'ssl_cert_expiry_days_description' => 'Minimalna ilość dni, których certyfikat SSL musi być ważny.
Ustawienie wartości 0 spowoduje, że ważność certyfikatu nie
będzie sprawdzana.',
'ssl_cert_expired' => 'Certyfikat SSL wygasł',
'ssl_cert_expiring' => 'Certyfikat SSL wygaśnie:',
'chart_last_week' => 'Ostatni tydzień',
'chart_history' => 'Historia',
'chart_day_format' => '%Y-%m-%d',
@ -181,7 +294,11 @@ $sm_lang = array(
'chart_short_time_format' => '%H:%M',
'warning_notifications_disabled_sms' => 'Powiadomienia SMS są wyłączone.',
'warning_notifications_disabled_email' => 'Powiadomienia Email są wyłączone.',
'warning_notifications_disabled_discord' => 'Powiadomienia Discord są wyłączone.',
'warning_notifications_disabled_webhook' => 'Powiadomienia Webhook są wyłączone.',
'warning_notifications_disabled_pushover' => 'Powiadomienia Pushover są wyłączone.',
'warning_notifications_disabled_telegram' => 'Powiadomienia Telegram są wyłączone.',
'warning_notifications_disabled_jabber' => 'Powiadomienia Jabber są wyłączone.',
'error_server_no_match' => 'Nie odnaleziono serwera.',
'error_server_label_bad_length' => 'Etykieta musi mieć pomiędzy 1 a 255 znaków.',
'error_server_ip_bad_length' => 'Domena/IP musi mieć pomiędzy 1 a 255 znaków.',
@ -189,12 +306,22 @@ $sm_lang = array(
'error_server_ip_bad_website' => 'Adres URL jest nieprawidłowy.',
'error_server_type_invalid' => 'Wybrany typ serwera jest nieprawidłowy.',
'error_server_warning_threshold_invalid' => 'Próg ostrzeżeń musi być liczbą całkowitą większą od 0.',
'error_server_ssl_cert_expiry_days' => 'Minimalna ilość dla ważności certyfikatu SSL musi być liczbą
całkowitą większą lub równą 0.',
),
'config' => array(
'general' => 'Ogólne',
'site_title' => 'Tytuł strony',
'language' => 'Język',
'show_update' => 'Sprawdzić aktualizacje?',
'password_encrypt_key' => 'Klucz szyfrowania haseł',
'password_encrypt_key_note' => 'Klucz będzie użyty do szyfrowania haseł, które zapisane w ustawieniach
serwerów żeby mieć dostęp do stron. Jeżeli klucz zostanie zmienione to
zapisane hasła będą nieprawidłowe!',
'proxy' => 'Włącz proxy',
'proxy_url' => 'Proxy ULR',
'proxy_user' => 'Użytkownik proxy',
'proxy_password' => 'Hasło proxy',
'email_status' => 'Pozwól na wysyłkę email',
'email_from_email' => 'Email z adresu',
'email_from_name' => 'Email od(nazwa)',
@ -205,13 +332,24 @@ $sm_lang = array(
'email_smtp_security_none' => 'None',
'email_smtp_username' => 'SMTP login',
'email_smtp_password' => 'SMTP hasło',
'email_smtp_noauth' => 'Pozostaw puste dla braku autentykacji',
'email_smtp_noauth' => 'Pozostaw puste dla braku uwierzytelniania',
'sms_status' => 'Pozwól na wysyłkę SMS',
'sms_gateway' => 'Bramka SMS',
'sms_gateway_username' => 'Login do bramki',
'sms_gateway_password' => 'Hasło do bramki',
'sms_from' => 'Numer nadawcy',
'pushover_status' => 'Pozwól na wysyłkę notyfikacji Pushover',
'discord_status' => 'Zezwól na wysyłanie powiadomień Discord',
'discord_description' => 'Discord jest serwisem, który umożliwia wysyłania powiadomień w czasie
rzeczywistym. Odwiedź <a href="https://discord.com/" target="_blank">stronę
serwisu</a> żeby otrzymać więcej informacji.',
'webhook_status' => 'Zezwól na wysyłanie powiadomień webhooks.',
'webhook_description' => 'Zezwól na wysyłanie powiadomień webhooks do serwisów takich jak Slack. Endpoint
dla payload wiadomości jest zdefiniowany w ustawieniach profilu użytkownika.',
'webhook_url' => 'Webhook URL',
'webhook_url_description' => 'URL dla webhook endpoint',
'webhook_json' => 'Webhook Json',
'webhook_json_description' => 'Niestandardowsy Json, użyj #message jak zmienną z treścią wiadomości.',
'pushover_status' => 'Zezwól na wysyłanie powiadomień Pushover',
'pushover_description' => 'Pushover jest usługą ułatwiającą otrzymywanie powiadomień w czasie
rzeczywistym. Sprawdź <a href="https://pushover.net/" target="_blank">ich
stronę</a> aby uzyskać więcej informacji.',
@ -220,6 +358,30 @@ $sm_lang = array(
'pushover_api_token_description' => 'Zanim zaczniesz używać Pushover, musisz <a href="%1$s" target="_blank"
rel="noopener"> zarejestrować aplikację</a> na ich stronie internetowej
i wpisać tutaj App API Token.',
'telegram_status' => 'Zezwól na wysyłanie powiadomień Telegram',
'telegram_description' => '<a href="https://telegram.org/" target="_blank">Telegram</a> jest komunikatorem
internetowym, który umożliwa notyfikacje w czasie rzeczywistym. Odwiedź stronę
z <a href="http://docs.phpservermonitor.org/" target="_blank">documentacja</a> aby
uzyskać więcej informacji.',
'telegram_api_token' => 'Telegram API Token',
'telegram_api_token_description' => 'Zanim zaczniesz używać Telegram, potrzebujesz uzyskać API Token.
Odwiedź strone z <a href="http://docs.phpservermonitor.org/"
target="_blank">dokumentacją</a> żeby uzyskać pomocy.',
'jabber_status' => 'Zezwól na wysyłanie powiadomień Jabber (XMPP)',
'jabber_description' => 'Odwiedź stronę <a href="http://docs.phpservermonitor.org/">dokumentacją</a> aby
uzyskać więcej informaji oraz przewodnik po instalacji.',
'jabber_host' => 'Host',
'jabber_host_description' => 'Adres host dostawcy Twojego konta Jabber. Dla konta Google użyj
talk.google.com.',
'jabber_port' => 'Port',
'jabber_port_description' => 'Port Twojego dostawcy Jabber. Domyślnie 5222. Dla konta Google użyj 5223.',
'jabber_username' => 'Nazwa użytkownika',
'jabber_username_description' => 'Dla konta Google użyj razem z domeną np. example@google.com.',
'jabber_domain' => 'Domena',
'jabber_domain_description' => 'Domena Twojego dostawy Jabber. Zostaw puste dla konta Google.',
'jabber_password' => 'Hasło',
'jabber_password_description' => 'Wypełnij tylko żeby ustawić lub zmienić.',
'jabber_check' => 'Sprawdź swoje konto Jabber czy powiadomienie zostało odebrane.',
'alert_type' => 'Wybierz kiedy chcesz być powiadomiony.',
'alert_type_description' => '<b>Zmiana statusu:</b> Otrzymasz powiadomienie gdy serwer zmieni status. Z online
-> offline lub offline -> online.<br><br /><b>Offline:</b> Otrzymasz
@ -231,29 +393,53 @@ $sm_lang = array(
'alert_type_status' => 'Zmiana statusu',
'alert_type_offline' => 'Offline',
'alert_type_always' => 'Zawsze',
'combine_notifications' => 'Scalanie powiadomień',
'combine_notifications_description' => 'Ogranicza ilość wysyłanych powiadomień poprzez scalanie wszystkich
powiadomień w jedną wiadomość (nie dotyczy powiadomień SMS).',
'alert_proxy' => 'Jeżeli włączone to proxy nigdy nie bedzie użyte dla serwisów',
'alert_proxy_url' => 'Fomat: host:port',
'log_status' => 'Status logowania',
'log_status_description' => 'Jeśli status logowania ustawiony jest na TRUE, monitor będzie logował
wydarzenia.',
'log_email' => 'Emaile wysłane przez skrypt',
'log_sms' => 'SMS wysłane przez skrypt',
'log_discord' => 'Notyfikacje Discord wysłane przez skrypt',
'log_pushover' => 'Notyfikacje Pushover wysłane przez skrypt',
'log_webhook' => 'Notyfikacje Webhook wysłane przez skrypt',
'log_telegram' => 'Notyfikacje Telegram wysłane przez skrypt',
'log_jabber' => 'Notyfikacje Jabber wysłane przez skrypt',
'updated' => 'Konfiguracja została zaktualizowana.',
'tab_email' => 'Email',
'tab_sms' => 'SMS',
'tab_discord' => 'Discord',
'tab_pushover' => 'Pushover',
'tab_webhook' => 'Webhook',
'tab_telegram' => 'Telegram',
'tab_jabber' => 'Jabber',
'settings_email' => 'Ustawienia Email',
'settings_sms' => 'Ustawienia SMS',
'settings_discord' => 'Ustawienie Discord',
'settings_pushover' => 'Ustawienia Pushover',
'settings_webhook' => 'Ustawienia Webhook',
'settings_telegram' => 'Ustawienia Telegram',
'settings_jabber' => 'Ustawienia Jabber',
'settings_notification' => 'Ustawienia powiadomień',
'settings_log' => 'Ustawienia Logowania',
'settings_proxy' => 'Ustawienia serwera Proxy',
'auto_refresh' => 'Auto-odświeżanie',
'auto_refresh_description' => 'Auto-odświeżanie strony serwera.<br><span class="small">Czas w sekundach, dla
czasu 0 strona nie będzie odświeżana.</span>',
'test' => 'Test',
'test_email' => 'Email zostanie wysłany na adres podany w Twoim profilu.',
'test_sms' => 'SMS zostanie wysłany na numer podany w Twoim profilu.',
'test_pushover' => 'Powiadomienie Pushover zostanie wysłany na klucz użytkownika/urządzenie podane w Twoim
profilu..',
'test_discord' => 'Powiadomienie Discord zostanie wysłane do webhook, który został podany w Twoim profilu
użytkownika.',
'test_pushover' => 'Powiadomienie Pushover zostanie wysłane na klucz użytkownika/urządzenie podane w Twoim
profilu użytkownika.',
'test_webhook' => 'Powiadomienia Webhook zostanie wysłane do endpoint o podanym URL.',
'test_telegram' => 'Powiadomienie Telegram zostanie wysłane na chat id podane w Twoim profilu użytkownika.',
'test_jabber' => 'Powiadomienie Telegram zostanie wysłane na konto Jabber podane w Twoim profilu
użytkownika.',
'send' => 'Wyślij',
'test_subject' => 'Test',
'test_message' => 'Testowa wiadomość',
@ -262,38 +448,123 @@ $sm_lang = array(
'sms_sent' => 'Sms wysłany',
'sms_error' => 'Błąd podczas wysyłania sms. %s',
'sms_error_nomobile' => 'Nie udało się wysłać testowego SMS: brak poprawnego telefonu w Twoim profilu.',
'discord_sent' => 'Powiadomienie Discord wysłane',
'discord_error' => 'Błąd podczas wysyłania powiadomienia Pushover: %s',
'discord_error_nowebhook' => 'Błąd podczas wysyłania powiadomienia Discord: brak prawidłowego Discord
webhook w profilu użytkownika.',
'webhook_sent' => 'Powiadomienie Webhook wysłane',
'webhook_error' => 'Błąd podczas wysyłania powiadomienia Webhook: %s',
'webhook_error_nourl' => 'Błąd podczas wysyłania testowego powiadomienia: brak Webhook URL w profilu
użytkownika.',
'webhook_error_nojson' => 'Błąd podczas wysyłania testowego powiadomienia: brak json w profilu
użytkownika.',
'pushover_sent' => 'Powiadomienie Pushover wysłane.',
'pushover_error' => 'Błąd podczas wysyłania powiadomienia Pushover: %s',
'pushover_error_noapp' => 'Błąd podczas wysyłania testowego powiadomienia: brak Pushover App API token w
konfuguracji globalnej.',
konfiguracji globalnej.',
'pushover_error_nokey' => 'Błąd podczas wysyłania testowego powiadomienia: brak Pushover key na Twoim
profilu.',
'telegram_sent' => 'Powiadomienie Telegram zostało wysłane',
'telegram_error' => 'Wystąpił błąd podczas wysyłania powiadomienia Telegram: %s',
'telegram_error_notoken' => 'Nie można wysłać testowego powiadomienia: brak Telegram API token w głównych
ustawieniach systemu.',
'telegram_error_noid' => 'Nie można wysłać testowego powiadomienia: brak chat id w ustawieniach profilu
Twojego użytkownika.',
'jabber_sent' => 'Powiadomienie Jabber zostało wysłane',
'jabber_error' => 'Wystąpił błąd podczas wysyłania powiadomienia Jabber: %s',
'jabber_error_noconfig' => 'Nie można wysłać testowego powiadomienia: brak konfiguracji konta Jabber w
głównych ustawieniach systemu.',
'jabber_error_noaccount' => 'Nie można wysłać testowego powiadomienia: brak konfiguracji konta Jabber w
ustawieniach profilu Twojego użytkownika.',
'log_retention_period' => 'Czas rotacji logów',
'log_retention_period_description' => 'Liczba dni przez którą należy przetrzymywać logi powiadomień i
archiwizować uptime serwera. Wpisz 0 aby wyłączyć czyszczenie
logów.',
'log_retention_days' => 'dni',
'user_agent' => 'User Agent',
'user_agent_key_note' => 'Nazwa używana przez monitoring do identyfikacji ze sprawdzaną usługą.',
'user_agent_key_note' => 'Niestandardowy user agent używany przez monitor do komunikacji z zewnętrznymi
serwisami.',
),
'notifications' => array(
'off_sms' => 'Serwer \'%LABEL%\' przestał odpowiadać: ip=%IP%, port=%PORT%. Błąd=%ERROR%',
'off_email_subject' => 'Uwaga: Serwer \'%LABEL%\' nie odpowiada',
'off_email_body' => 'Błąd połączenia do serwera:<br><br>Serwer: %LABEL%<br>IP: %IP%<br>Port:
%PORT%<br>Błąd: %ERROR%<br>Data: %DATE%',
'off_discord_message' => 'Błąd połączenia do serwera:<br><br>Serwer: %LABEL%<br>IP: %IP%<br>Port:
%PORT%<br>Błąd: %ERROR%<br>Data: %DATE%',
'off_webhook_title' => 'Serwer \'%LABEL%\' nie odpowiada',
'off_webhook_message' => 'Błąd połączenia do serwera:<br><br>Serwer: %LABEL%<br>IP: %IP%<br>Port:
%PORT%<br>Błąd: %ERROR%<br>Data: %DATE%',
'off_pushover_title' => 'Serwer \'%LABEL%\' nie odpowiada',
'off_pushover_message' => 'Błąd połączenia do serwera:<br><br>Serwer: %LABEL%<br>IP: %IP%<br>Port:
%PORT%<br>Błąd: %ERROR%<br>Data: %DATE%',
'off_telegram_message' => 'Błąd połączenia do serwera:<br><br>Serwer: %LABEL%<br>IP: %IP%<br>Port:
%PORT%<br>Błąd: %ERROR%<br>Data: %DATE%',
'off_jabber_message' => 'Błąd połączenia do serwera:<br><br>Serwer: %LABEL%<br>IP: %IP%<br>Port:
%PORT%<br>Błąd: %ERROR%<br>Data: %DATE%',
'on_sms' => 'Serwer \'%LABEL%\' działa poprawnie: ip=%IP%, port=%PORT%, it was down for
%LAST_OFFLINE_DURATION%',
'on_email_subject' => 'Uwaga: Serwer \'%LABEL%\' działa poprawnie',
'on_email_body' => 'Serwer \'%LABEL%\' znów odpowiada, it was down for
'on_email_body' => 'Serwer \'%LABEL%\' znów odpowiada, był offline przez
%LAST_OFFLINE_DURATION%:<br><br>Serwer: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Data:
%DATE%',
'on_discord_message' => 'Serwer \'%LABEL%\' znów odpowiada, był offline przez
%LAST_OFFLINE_DURATION%:<br><br>Serwer: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Data:
%DATE%',
'on_webhook_title' => 'Serwer \'%LABEL%\' działa poprawnie',
'on_webhook_message' => 'Serwer \'%LABEL%\' znów odpowiada, był offline przez
%LAST_OFFLINE_DURATION%:<br><br>Serwer: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Data:
%DATE%',
'on_pushover_title' => 'Serwer \'%LABEL%\' działa poprawnie',
'on_pushover_message' => 'Serwer \'%LABEL%\' znów działa poprawnie, it was down for
'on_pushover_message' => 'Serwer \'%LABEL%\' znów działa poprawnie, był offline przez
%LAST_OFFLINE_DURATION%:<br><br>Serwer: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Data:
%DATE%',
'on_telegram_message' => 'Serwer \'%LABEL%\' znów działa poprawnie, był offline przez
%LAST_OFFLINE_DURATION%:<br><br>Serwer: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Data:
%DATE%',
'on_jabber_message' => 'Serwer \'%LABEL%\' znów działa poprawnie, był offline przez
%LAST_OFFLINE_DURATION%:<br><br>Serwer: %LABEL%<br>IP: %IP%<br>Port: %PORT%<br>Data:
%DATE%',
'combi_off_email_message' => '<ul><li>Server: %LABEL%</li><li>IP: %IP%</li><li>Port: %PORT%</li><li>Error:
%ERROR%</li><li>Date: %DATE%</li></ul>',
'combi_off_discord_message' => '- Server: %LABEL%<br>- IP: %IP%<br>- Port: %PORT%<br>- Error: %ERROR%<br>-
Date: %DATE%<br><br>',
'combi_off_webhook_message' => '<ul><li>Server: %LABEL%</li><li>IP: %IP%</li><li>Port: %PORT%</li><li>Error:
%ERROR%</li><li>Date: %DATE%</li></ul>',
'combi_off_pushover_message' => '<ul><li>Server: %LABEL%</li><li>IP: %IP%</li><li>Port: %PORT%</li><li>Error:
%ERROR%</li><li>Date: %DATE%</li></ul>',
'combi_off_telegram_message' => '- Server: %LABEL%<br>- IP: %IP%<br>- Port: %PORT%<br>- Error: %ERROR%<br>-
Date: %DATE%<br><br>',
'combi_off_jabber_message' => '- Server: %LABEL%<br>- IP: %IP%<br>- Port: %PORT%<br>- Error: %ERROR%<br>-
Date: %DATE%<br><br>',
'combi_on_email_message' => '<ul><li>Server: %LABEL%</li><li>IP: %IP%</li><li>Port: %PORT%</li><li>Downtime:
%LAST_OFFLINE_DURATION%</li><li>Date: %DATE%</li></ul>',
'combi_on_webhook_message' => '<ul><li>Server: %LABEL%</li><li>IP: %IP%</li><li>Port: %PORT%</li><li>Downtime:
%LAST_OFFLINE_DURATION%</li><li>Date: %DATE%</li></ul>',
'combi_on_discord_message' => '- Server: %LABEL%<br>- IP: %IP%<br>- Port: %PORT%<br>- Downtime:
%LAST_OFFLINE_DURATION%<br>- Date: %DATE%<br><br>',
'combi_on_pushover_message' => '<ul><li>Server: %LABEL%</li><li>IP: %IP%</li><li>Port:
%PORT%</li><li>Downtime: %LAST_OFFLINE_DURATION%</li><li>Date:
%DATE%</li></ul>',
'combi_on_telegram_message' => '- Server: %LABEL%<br>- IP: %IP%<br>- Port: %PORT%<br>- Downtime:
%LAST_OFFLINE_DURATION%<br>- Date: %DATE%<br><br>',
'combi_on_jabber_message' => '- Server: %LABEL%<br>- IP: %IP%<br>- Port: %PORT%<br>- Downtime:
%LAST_OFFLINE_DURATION%<br>- Date: %DATE%<br><br>',
'combi_email_subject' => 'WAŻNE: \'%UP%\' serverów znowu ONLINE, \'%DOWN%\' serverów jest OFFLINE',
'combi_webhook_subject' => '\'%UP%\' serverów jest znowu ONLINE UP, \'%DOWN%\' serverów jest OFFLINE',
'combi_pushover_subject' => '\'%UP%\' serverów jest znowu ONLINE UP, \'%DOWN%\' serverów jest OFFLINE',
'combi_email_message' => '<b>Następujące serwery offline:</b><br>%DOWN_SERVERS%<br><b>Następujące
serwery znowu online:</b><br>%UP_SERVERS%',
'combi_discord_message' => '<b>Następujące serwery offline:</b><br>%DOWN_SERVERS%<br><b>Następujące
serwery znowu online:</b><br>%UP_SERVERS%',
'combi_webhook_message' => '<b>Następujące serwery offline:</b><br>%DOWN_SERVERS%<br><b>Następujące
serwery znowu online:</b><br>%UP_SERVERS%',
'combi_pushover_message' => '<b>Następujące serwery offline:</b><br>%DOWN_SERVERS%<br><b>Następujące
serwery znowu online:</b><br>%UP_SERVERS%',
'combi_telegram_message' => '<b>Następujące serwery offline:</b><br>%DOWN_SERVERS%<br><b>Następujące
serwery znowu online:</b><br>%UP_SERVERS%',
'combi_jabber_message' => '<b>Następujące serwery offline:</b><br>%DOWN_SERVERS%<br><b>Następujące
serwery znowu online:</b><br>%UP_SERVERS%',
),
'login' => array(
'welcome_usermenu' => 'Witaj, %user_name%',

View File

@ -124,7 +124,7 @@ abstract class AbstractController implements ControllerInterface
* @var int $user_level_required
* @see setMinUserLevelRequired()
*/
protected $user_level_required = PSM_USER_USER;
protected $user_level_required = (PSM_PUBLIC && PSM_PUBLIC_PAGE) ? PSM_USER_ANONYMOUS : PSM_USER_USER;
/**
* Required user level for certain actions

View File

@ -41,12 +41,14 @@ class ConfigController extends AbstractController
protected $checkboxes = array(
'proxy',
'email_status',
'email_add_url',
'email_smtp',
'sms_status',
'discord_status',
'pushover_status',
'webhook_status',
'telegram_status',
'telegram_add_url',
'jabber_status',
'log_status',
'log_email',
@ -58,6 +60,8 @@ class ConfigController extends AbstractController
'log_jabber',
'show_update',
'combine_notifications',
'dirauth_status',
'authdir_ldapfollowref',
);
/**
@ -85,7 +89,18 @@ class ConfigController extends AbstractController
'jabber_username',
'jabber_domain',
'user_agent',
'site_title'
'site_title',
'authdir_host_locn',
'authdir_host_port',
'authdir_userdomain',
'authdir_ldapver',
'authdir_basedn',
'authdir_usernameattrib',
'authdir_groupnameattrib',
'authdir_groupmemattrib',
'authdir_usercontainerrdn',
'authdir_groupcontainerrdn',
'authdir_groupname',
);
/**
@ -162,6 +177,20 @@ class ConfigController extends AbstractController
);
}
foreach (array("20", "10") as $authdir_defaultrole) {
$tpl_data['authdir_defaultroles'][] = array(
'value' => $authdir_defaultrole,
'label' => psm_get_lang('users', 'level_' . $authdir_defaultrole),
);
}
foreach (array("openldap", "adds", "adlds") as $authdir_type) {
$tpl_data['authdir_type'][] = array(
'value' => $authdir_type,
'label' => psm_get_lang('config', 'authdir_type_' . $authdir_type),
);
}
$tpl_data['email_smtp_security'] = array(
array(
'value' => '',
@ -181,6 +210,10 @@ class ConfigController extends AbstractController
$config['sms_gateway'] : current($sms_gateways);
$tpl_data['alert_type_selected'] = isset($config['alert_type']) ?
$config['alert_type'] : '';
$tpl_data['authdir_type_selected'] = isset($config['authdir_type']) ?
$config['authdir_type'] : '';
$tpl_data['authdir_defaultrole_selected'] = isset($config['authdir_defaultrole']) ?
$config['authdir_defaultrole'] : '20';
$tpl_data['email_smtp_security_selected'] = isset($config['email_smtp_security']) ?
$config['email_smtp_security'] : '';
$tpl_data['auto_refresh_servers'] = isset($config['auto_refresh_servers']) ?
@ -244,6 +277,8 @@ class ConfigController extends AbstractController
'site_title' => $_POST['site_title'],
'sms_gateway' => $_POST['sms_gateway'],
'alert_type' => $_POST['alert_type'],
'authdir_defaultrole' => $_POST['authdir_defaultrole'],
'authdir_type' => $_POST['authdir_type'],
'email_smtp_security' =>
in_array($_POST['email_smtp_security'], array('', 'ssl', 'tls'))
? $_POST['email_smtp_security']
@ -296,6 +331,8 @@ class ConfigController extends AbstractController
if (isset($_POST['general_submit'])) {
$this->default_tab = 'general';
} elseif (isset($_POST['auth_submit'])) {
$this->default_tab = 'auth';
} elseif (isset($_POST['email_submit']) || !empty($_POST['test_email'])) {
$this->default_tab = 'email';
} elseif (isset($_POST['sms_submit']) || !empty($_POST['test_sms'])) {
@ -546,6 +583,7 @@ class ConfigController extends AbstractController
'label_tab_webhook' => psm_get_lang('config', 'tab_webhook'),
'label_tab_telegram' => psm_get_lang('config', 'tab_telegram'),
'label_tab_jabber' => psm_get_lang('config', 'tab_jabber'),
'label_tab_auth' => psm_get_lang('config', 'tab_auth'),
'label_settings_email' => psm_get_lang('config', 'settings_email'),
'label_settings_sms' => psm_get_lang('config', 'settings_sms'),
'label_settings_discord' => psm_get_lang('config', 'settings_discord'),
@ -553,6 +591,7 @@ class ConfigController extends AbstractController
'label_settings_pushover' => psm_get_lang('config', 'settings_pushover'),
'label_settings_telegram' => psm_get_lang('config', 'settings_telegram'),
'label_settings_jabber' => psm_get_lang('config', 'settings_jabber'),
'label_settings_dirauth' => psm_get_lang('config', 'settings_dirauth'),
'label_settings_notification' => psm_get_lang('config', 'settings_notification'),
'label_settings_log' => psm_get_lang('config', 'settings_log'),
'label_settings_proxy' => psm_get_lang('config', 'settings_proxy'),
@ -565,6 +604,7 @@ class ConfigController extends AbstractController
'label_proxy_url' => psm_get_lang('config', 'proxy_url'),
'label_proxy_user' => psm_get_lang('config', 'proxy_user'),
'label_proxy_password' => psm_get_lang('config', 'proxy_password'),
'label_email_add_url' => psm_get_lang('config', 'email_add_url'),
'label_email_status' => psm_get_lang('config', 'email_status'),
'label_email_from_email' => psm_get_lang('config', 'email_from_email'),
'label_email_from_name' => psm_get_lang('config', 'email_from_name'),
@ -599,6 +639,7 @@ class ConfigController extends AbstractController
),
'label_telegram_description' => psm_get_lang('config', 'telegram_description'),
'label_telegram_status' => psm_get_lang('config', 'telegram_status'),
'label_telegram_add_url' => psm_get_lang('config', 'telegram_add_url'),
'label_telegram_api_token' => psm_get_lang('config', 'telegram_api_token'),
'label_telegram_api_token_description' => psm_get_lang('config', 'telegram_api_token_description'),
'label_jabber_status' => psm_get_lang('config', 'jabber_status'),
@ -613,6 +654,36 @@ class ConfigController extends AbstractController
'label_jabber_domain_description' => psm_get_lang('config', 'jabber_domain_description'),
'label_jabber_password' => psm_get_lang('config', 'jabber_password'),
'label_jabber_password_description' => psm_get_lang('config', 'jabber_password_description'),
'label_dirauth_status' => psm_get_lang('config', 'dirauth_status'),
'label_authdir_host_locn' => psm_get_lang('config', 'authdir_host_locn'),
'label_authdir_host_port' => psm_get_lang('config', 'authdir_host_port'),
'label_authdir_type' => psm_get_lang('config', 'authdir_type'),
'label_authdir_type_description' => psm_get_lang('config', 'authdir_type_description'),
'label_authdir_userdomain' => psm_get_lang('config', 'authdir_userdomain'),
'label_authdir_userdomain_description' => psm_get_lang('config', 'authdir_userdomain_description'),
'label_authdir_ldapver' => psm_get_lang('config', 'authdir_ldapver'),
'label_authdir_ldapver_description' => psm_get_lang('config', 'authdir_ldapver_description'),
'label_authdir_ldapfollowref' => psm_get_lang('config', 'authdir_ldapfollowref'),
'label_authdir_ldapfollowref_description' => psm_get_lang('config', 'authdir_ldapfollowref_description'),
'label_authdir_basedn' => psm_get_lang('config', 'authdir_basedn'),
'label_authdir_basedn_description' => psm_get_lang('config', 'authdir_basedn_description'),
'label_authdir_usernameattrib' => psm_get_lang('config', 'authdir_usernameattrib'),
'label_authdir_usernameattrib_description' => psm_get_lang('config', 'authdir_usernameattrib_description'),
'label_authdir_groupnameattrib' => psm_get_lang('config', 'authdir_groupnameattrib'),
'label_authdir_groupnameattrib_description' =>
psm_get_lang('config', 'authdir_groupnameattrib_description'),
'label_authdir_groupmemattrib' => psm_get_lang('config', 'authdir_groupmemattrib'),
'label_authdir_groupmemattrib_description' => psm_get_lang('config', 'authdir_groupmemattrib_description'),
'label_authdir_usercontainerrdn' => psm_get_lang('config', 'authdir_usercontainerrdn'),
'label_authdir_usercontainerrdn_description' =>
psm_get_lang('config', 'authdir_usercontainerrdn_description'),
'label_authdir_groupcontainerrdn' => psm_get_lang('config', 'authdir_groupcontainerrdn'),
'label_authdir_groupcontainerrdn_description' =>
psm_get_lang('config', 'authdir_groupcontainerrdn_description'),
'label_authdir_groupname' => psm_get_lang('config', 'authdir_groupname'),
'label_authdir_groupname_description' => psm_get_lang('config', 'authdir_groupname_description'),
'label_authdir_defaultrole' => psm_get_lang('config', 'authdir_defaultrole'),
'label_authdir_defaultrole_description' => psm_get_lang('config', 'authdir_defaultrole_description'),
'label_alert_type' => psm_get_lang('config', 'alert_type'),
'label_alert_type_description' => psm_get_lang('config', 'alert_type_description'),
'label_combine_notifications' => psm_get_lang('config', 'combine_notifications'),

View File

@ -306,6 +306,7 @@ class InstallController extends AbstractController
'webhook_url' => '',
'webhook_json' => '',
'telegram_id' => '',
'discord' => '',
'jabber' => ''
);

View File

@ -282,12 +282,25 @@ class UserController extends AbstractController
$user_validator->username($clean['user_name'], $user_id);
$user_validator->email($clean['email']);
$user_validator->level($clean['level']);
// Won't allow anonymous level for users other than __PUBLIC__
if ($clean['user_name'] !== "__PUBLIC__" && (int) $clean['level'] === (int) PSM_USER_ANONYMOUS) {
$this->addMessage(psm_get_lang('users', 'error_user_cant_be_anonymous'), 'error');
$clean['level'] = PSM_USER_USER;
}
// always validate password for new users,
// but only validate it for existing users when they change it.
if ($user_id == 0 || ($user_id > 0 && $clean['password'] != '')) {
if (($user_id == 0 || ($user_id > 0 && $clean['password'] != '')) && $clean['user_name'] != '__PUBLIC__') {
$user_validator->password($clean['password'], $clean['password_repeat']);
}
// Auto generate password for __PUBLIC__ user
if ($clean['user_name'] === '__PUBLIC__') {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%&*_";
$clean['password'] = substr(str_shuffle($chars), 0, 24);
}
if ($user_id > 0) {
$user_validator->userId($user_id);
}

View File

@ -100,6 +100,17 @@ class User
}
$this->session = $session;
if (PSM_PUBLIC === true && PSM_PUBLIC_PAGE === true) {
$query_user = $this->db_connection->prepare('SELECT * FROM ' .
PSM_DB_PREFIX . 'users WHERE user_name = :user_name and level = :level');
$query_user->bindValue(':user_name', "__PUBLIC__", \PDO::PARAM_STR);
$query_user->bindValue(':level', PSM_USER_ANONYMOUS, \PDO::PARAM_STR);
$query_user->execute();
// get result row (as an object)
$this->setUserLoggedIn($query_user->fetchObject()->user_id);
}
if ((!defined('PSM_INSTALL') || !PSM_INSTALL)) {
// check the possible login actions:
// 1. login via session data (happens each time user opens a page on your php project AFTER
@ -219,20 +230,51 @@ class User
{
$user_name = trim($user_name);
$user_password = trim($user_password);
$ldapauthstatus = false;
if (empty($user_name) && empty($user_password)) {
return false;
}
$dirauthconfig = psm_get_conf('dirauth_status');
// LDAP auth enabled
if ($dirauthconfig === '1') {
$ldaplibpath = realpath(
PSM_PATH_SRC . '..' . DIRECTORY_SEPARATOR .
'vendor' . DIRECTORY_SEPARATOR .
'viharm' . DIRECTORY_SEPARATOR .
'psm-ldap-auth' . DIRECTORY_SEPARATOR .
'psmldapauth.php'
);
// If the library is found
if ($ldaplibpath) {
// Delegate the authentication to the PsmLDAPauth module.
// If LDAP auth fails or if library not found, fall back to native auth
include_once($ldaplibpath);
$ldapauthstatus = psmldapauth($user_name, $user_password, $GLOBALS['sm_config'], $this->db_connection);
}
}
$user = $this->getUserByUsername($user_name);
// using PHP 5.5's password_verify() function to check if the provided passwords
// fits to the hash of that user's password
if (!isset($user->user_id)) {
password_verify($user_password, 'dummy_call_against_timing');
return false;
} elseif (!password_verify($user_password, $user->password)) {
return false;
}
// Authenticated
if ($ldapauthstatus === true) {
// Remove password to prevent it from being saved in the DB.
// Otherwise, user may still be authenticated if LDAP is disabled later.
$user_password = null;
@fn_Debug('Authenticated', $user);
} else {
// using PHP 5.5's password_verify() function to check if the provided passwords
// fits to the hash of that user's password
if (!isset($user->user_id)) {
password_verify($user_password, 'dummy_call_against_timing');
return false;
} elseif (!password_verify($user_password, $user->password)) {
return false;
}
} // not authenticated
$this->setUserLoggedIn($user->user_id, true);

View File

@ -0,0 +1,91 @@
<?php
/**
* PHP Server Monitor
* Monitor your servers and websites.
*
* This file is part of PHP Server Monitor.
* PHP Server Monitor is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* PHP Server Monitor is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
*
* @package phpservermon
* @author Victor Macko
* @copyright Copyright (c) 2008-2017 Pepijn Over <pep@mailbox.org>
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
* @version Release: @package_version@
* @link http://www.phpservermonitor.org/
* @since phpservermon 3.6.0
**/
namespace psm\Txtmsg;
class Infobip extends Core
{
/**
* Send sms using the infobip.com API
*
* @var string $message
* @var string $this->password
* @var array $this->recipients
* @var array $this->originator
* @var string $recipients
*
* @var resource $curl
* @var string $err
* @var mixed $result
*
* @var int $success
* @var string $error
*
* @return bool|string
*/
public function sendSMS($message)
{
$success = 1;
$error = '';
foreach ($this->recipients as $recipient) {
$ch = curl_init();
curl_setopt(
$ch,
CURLOPT_URL,
"https://api.infobip.com/sms/1/text/query?username=" . $this->username .
"&password=" . $this->password .
"&to=" . $recipient .
"&text=" . urlencode($message) .
//add your sender id here
"&from="
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$headers = array();
$headers[] = "Content-Type: application/x-www-form-urlencoded";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
curl_close($ch);
// Check for errors
if (is_numeric(strpos($result, "FAILED"))) {
$error = $result;
$success = 0;
}
}
if ($success == 1) {
return 1;
}
return $error;
}
}

View File

@ -59,7 +59,7 @@ class Octopush extends Core
{
$error = "";
$success = 1;
$smsType = "XXX"; //FR = premium, WWW = world, XXX = Low cost
$smsType = "FR"; //FR = premium, WWW = world, XXX = Low cost
$recipients = join(',', $this->recipients);

View File

@ -74,7 +74,7 @@ class Plivo extends Core
array(
"src" => $this->originator,
"dst" => $recipients,
"text" => urlencode($message)
"text" => $message
)
),
CURLOPT_HTTPHEADER => array(

View File

@ -0,0 +1,93 @@
<?php
/**
* PHP Server Monitor
* Monitor your servers and websites.
*
* This file is part of PHP Server Monitor.
* PHP Server Monitor is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* PHP Server Monitor is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with PHP Server Monitor. If not, see <http://www.gnu.org/licenses/>.
*
* @package phpservermon
* @author Łukasz Szczepański <l.szczepanski@webd.pl>
* @copyright Copyright (c) 2008-2017 Pepijn Over <pep@mailbox.org>
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
* @version Release: @package_version@
* @link http://www.phpservermonitor.org/
* @since phpservermon 3.5
**/
namespace psm\Txtmsg;
class PromoSMS extends Core
{
/**
* Send sms using the PromoSMS API
*
* @var string $message
* @var string $this->password
* @var array $this->recipients
* @var array $headers
*
* @var resource $curl
* @var string $err
* @var int $success
* @var string $error
*
* @return bool|string
*/
public function sendSMS($message)
{
$error = "";
$success = 1;
$headers = array();
$headers[] = "Content-Type: application/x-www-form-urlencoded";
$headers[] = "Accept: text/json";
$headers[] = 'Authorization: Basic ' . base64_encode($this->username . ':' . $this->password);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://promosms.com/api/rest/v3_2/sms",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => http_build_query(array(
'text' => htmlspecialchars($message),
'type' => 1,
'recipients' => $this->recipients,
))
));
$result = curl_exec($curl);
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$err = curl_errno($curl);
if ($err != 0 || ($httpcode != '200' && $httpcode != '201' && $httpcode != '202' && $result != "1")) {
$success = 0;
$error = "HTTP_code: " . $httpcode . ".\ncURL error (" . $err . "): " .
curl_strerror($err) . ". Result: " . $result . "";
}
curl_close($curl);
if ($success) {
return 1;
}
return $error;
}
}

View File

@ -147,6 +147,7 @@ class Installer
('proxy_user', ''),
('proxy_password', ''),
('email_status', '1'),
('email_add_url', '0'),
('email_from_email', 'monitor@example.org'),
('email_from_name', 'Server Monitor'),
('email_smtp', ''),
@ -164,6 +165,7 @@ class Installer
('pushover_status', '0'),
('pushover_api_token', ''),
('telegram_status', '0'),
('telegram_add_url', '0'),
('telegram_api_token', ''),
('jabber_status', '1'),
('jabber_host', ''),
@ -724,7 +726,6 @@ class Installer
('jabber_username', ''),
('jabber_domain', ''),
('jabber_password', '');";
$this->execSQL($queries);
}
@ -754,6 +755,11 @@ class Installer
ADD `discord` VARCHAR( 255 ) NOT NULL AFTER `mobile`;";
$queries[] = "ALTER TABLE `" . PSM_DB_PREFIX . "servers`
ADD `discord` ENUM( 'yes','no' ) NOT NULL DEFAULT 'yes' AFTER `sms`;";
$queries[] = "INSERT INTO `" . PSM_DB_PREFIX . "users` (
`user_name`, `level`, `name`, `email`)
VALUES ('__PUBLIC__', 30, 'Public page', 'publicpage@psm.psm')";
$this->execSQL($queries);
$this->log('Public page is now available. Added user \'__PUBLIC__\'. See documentation for more info.');
}
}

View File

@ -287,7 +287,7 @@ class StatusNotifier
$this->combine ? $this->setCombi('telegram') : $this->notifyByTelegram($users);
}
if ($this->send_jabber && $this->server['jaber'] == 'yes') {
if ($this->send_jabber && $this->server['jabber'] == 'yes') {
$this->combine ? $this->setCombi('jabber') : $this->notifyByJabber($users);
}
@ -316,7 +316,7 @@ class StatusNotifier
}
return;
}
$this->combiNotification['notifications'][$method][$status][$this->server_id] =
psm_parse_msg($this->status_new, $method . '_message', $this->server, true);
}
@ -426,7 +426,8 @@ class StatusNotifier
$body = key_exists('message', $combi) ?
$combi['message'] :
psm_parse_msg($this->status_new, 'email_body', $this->server);
psm_parse_msg($this->status_new, 'email_body', $this->server);
if ((bool)psm_get_conf('email_add_url')) $body .= PHP_EOL.PHP_EOL.'<a href="'.PSM_BASE_URL.'">'.PSM_BASE_URL.'</a>';
$mail->Body = $body;
$mail->AltBody = str_replace('<br/>', "\n", $body);
@ -631,7 +632,14 @@ class StatusNotifier
}
$webhook->setUrl($user['webhook_url']);
$webhook->setJson($user['webhook_json']);
$webhook->sendWebhook($message);
$webhook->sendWebhook([
'#message' => $message,
'#server_ip' => $this->server['ip'],
'#server_label' => $this->server['label'],
'#server_error' => $this->server['error'],
'#server_last_offline_duration' => $this->status_new ? $this->server['last_offline_duration'] : '',
'#status' => $this->status_new ? 'online' : 'offline'
]);
}
}
/**
@ -695,14 +703,15 @@ class StatusNotifier
$message = key_exists('message', $combi) ?
$combi['message'] :
psm_parse_msg($this->status_new, 'telegram_message', $this->server);
if ((bool)psm_get_conf('telegram_add_url')) $message .= '<br>'.PSM_BASE_URL;
$telegram = psm_build_telegram();
$telegram->setMessage($message);
// Log
if (psm_get_conf('log_telegram')) {
$log_id = psm_add_log($this->server_id, 'telegram', $message);
}
foreach ($users as $user) {
// Log
if (!empty($log_id)) {

View File

@ -331,19 +331,19 @@ class StatusUpdater
list ($key, $value) = explode(': ', $line);
// Header found (case-insensitive)
if (strcasecmp($key, $this->server['header_name']) == 0) {
// The value doesn't match what we needed
if (!preg_match("/{$this->server['header_value']}/i", $value)) {
$result = false;
} else {
// The value matches what we need, everything is fine
if (preg_match("/{$this->server['header_value']}/i", $value)) {
$header_flag = true;
break; // No need to go further
break; // The correct header is found, we leave the loop
}
}
}
}
if (!$header_flag) {
// Header was not present
// Header was not present, set error message and $result variable
$this->error = 'HEADER ERROR : Header "' . $this->server['header_name'] .
'" not found or does not match "/' . $this->server['header_value'] . '/i".';
$result = false;
}
}
@ -447,7 +447,7 @@ class StatusUpdater
socket_send($socket, $package, strLen($package), 0);
// socket_read returns a string or false
$status = socket_read($socket, 255) !== false ? true : false;
if ($status) {
$this->header = "Success.";
} else {

View File

@ -39,7 +39,7 @@ class UserValidator
* Available editable user levels
* @var array $user_levels
*/
protected $user_levels = array(PSM_USER_ADMIN, PSM_USER_USER);
protected $user_levels = array(PSM_USER_ADMIN, PSM_USER_USER, PSM_USER_ANONYMOUS);
/**
* User service

View File

@ -7,6 +7,11 @@
role="tab" aria-controls="config-general" aria-selected="{% if general_active %}true{% else %}false{% endif %}">{{
label_general }}</a>
</li>
<li class="nav-item">
<a class="nav-link {{ auth_active }}" id="config-auth-tab" data-toggle="tab" href="#config-auth" role="tab"
aria-controls="config-auth" aria-selected="{% if auth_active %}true{% else %}false{% endif %}">{{
label_tab_auth }}</a>
</li>
<li class="nav-item">
<a class="nav-link {{ email_active }}" id="config-email-tab" data-toggle="tab" href="#config-email" role="tab"
aria-controls="config-email" aria-selected="{% if email_active %}true{% else %}false{% endif %}">{{
@ -93,6 +98,43 @@
{{ macro.button_save("general_submit", label_save) }}
</fieldset>
</div>
<div class="tab-pane {{ auth_active }}" id="config-auth" role="tabpanel" aria-labelledby="config-auth-tab">
<!-- Auth settings -->
<fieldset>
<legend>{{ label_settings_dirauth }}</legend>
<!-- enable ldap -->
{{ macro.input_checkbox("dirauth_status", "dirauth_status[]", label_dirauth_status, dirauth_status_checked) }}
<!-- Directory host -->
{{ macro.input_field("text", "authdir_host_locn", null, "authdir_host_locn", label_authdir_host_locn, authdir_host_locn, label_authdir_host_locn, "100") }}
<!-- smtp security -->
{{ macro.input_select("authdir_type", "authdir_type", label_authdir_type, authdir_type, authdir_type_selected, "authdir_type_help", label_authdir_type_description) }}
<!-- Directory port -->
{{ macro.input_field("text", "authdir_host_port", null, "authdir_host_port", label_authdir_host_port, authdir_host_port, label_authdir_host_port, "10") }}
<!-- Active Directory domain -->
{{ macro.input_field("text", "authdir_userdomain", null, "authdir_userdomain", label_authdir_userdomain, authdir_userdomain, label_authdir_userdomain, "100", "authdir_userdomain_help", label_authdir_userdomain_description) }}
<!-- LDAP protecol version -->
{{ macro.input_field("text", "authdir_ldapver", null, "authdir_ldapver", label_authdir_ldapver, authdir_ldapver, label_authdir_ldapver, "100", "authdir_ldapver_help", label_authdir_ldapver_description) }}
<!-- Follow referrals -->
{{ macro.input_checkbox("authdir_ldapfollowref", "authdir_ldapfollowref[]", label_authdir_ldapfollowref, authdir_ldapfollowref_checked, "authdir_ldapfollowref_help", label_authdir_ldapfollowref_description) }}
<!-- Base DN* -->
{{ macro.input_field("text", "authdir_basedn", null, "authdir_basedn", label_authdir_basedn, authdir_basedn, "dc=domain,dc=tld", "100", "authdir_basedn_help", label_authdir_basedn_description) }}
<!-- Username attribute -->
{{ macro.input_field("text", "authdir_usernameattrib", null, "authdir_usernameattrib", label_authdir_usernameattrib, authdir_usernameattrib, label_authdir_usernameattrib, "100", "authdir_usernameattrib_help", label_authdir_usernameattrib_description) }}
<!-- Group name attribute -->
{{ macro.input_field("text", "authdir_groupnameattrib", null, "authdir_groupnameattrib", label_authdir_groupnameattrib, authdir_groupnameattrib, label_authdir_groupnameattrib, "100", "authdir_groupnameattrib_help", label_authdir_groupnameattrib_description) }}
<!-- Group member attribute -->
{{ macro.input_field("text", "authdir_groupmemattrib", null, "authdir_groupmemattrib", label_authdir_groupmemattrib, authdir_groupmemattrib, label_authdir_groupmemattrib, "100", "authdir_groupmemattrib_help", label_authdir_groupmemattrib_description) }}
<!-- User container RDN -->
{{ macro.input_field("text", "authdir_usercontainerrdn", null, "authdir_usercontainerrdn", label_authdir_usercontainerrdn, authdir_usercontainerrdn, "ou=Users", "100", "authdir_usercontainerrdn_help", label_authdir_usercontainerrdn_description) }}
<!-- Group container RDN -->
{{ macro.input_field("text", "authdir_groupcontainerrdn", null, "authdir_groupcontainerrdn", label_authdir_groupcontainerrdn, authdir_groupcontainerrdn, "ou=Groups", "100", "authdir_groupcontainerrdn_help", label_authdir_groupcontainerrdn_description) }}
<!-- Authorised directory group -->
{{ macro.input_field("text", "authdir_groupname", null, "authdir_groupname", label_authdir_groupname, authdir_groupname, label_authdir_groupname, "100", "authdir_groupname_help", label_authdir_groupname_description) }}
<!-- Default role -->
{{ macro.input_select("authdir_defaultrole", "authdir_defaultrole", label_authdir_defaultrole, authdir_defaultroles, authdir_defaultrole_selected, "authdir_defaultrole_help", label_authdir_defaultrole_description) }}
{{ macro.button_save("auth_submit", label_save) }}
</fieldset>
</div>
<div class="tab-pane {{ email_active }}" id="config-email" role="tabpanel" aria-labelledby="config-email-tab">
<fieldset>
<legend>{{ label_settings_email }}</legend>
@ -100,6 +142,8 @@
{{ macro.input_checkbox("email_status", "email_status[]", label_email_status, email_status_checked) }}
<!-- enable email log -->
{{ macro.input_checkbox("log_email", "log_email[]", label_log_email, log_email_checked) }}
<!-- enable adding url to email -->
{{ macro.input_checkbox("email_add_url", "email_add_url[]", label_email_add_url, email_add_url_checked) }}
<!-- email name -->
{{ macro.input_field("text", "email_from_name", null, "email_from_name", label_email_from_name, email_from_name, label_email_from_name, "255") }}
<!-- email address -->
@ -180,6 +224,8 @@
{{ macro.input_checkbox("telegram_status", "telegram_status[]", label_telegram_status, telegram_status_checked) }}
<!-- enable telegram log -->
{{ macro.input_checkbox("log_telegram", "log_telegram[]", label_log_telegram, log_telegram_checked) }}
<!-- enable adding url to telegram -->
{{ macro.input_checkbox("telegram_add_url", "telegram_add_url[]", label_telegram_add_url, telegram_add_url_checked) }}
<!-- telegram key -->
{{ macro.input_field("text", "telegram_api_token", null, "telegram_api_token", label_telegram_api_token, telegram_api_token, label_telegram_api_token, "255", "telegram_api_token_help", label_telegram_api_token_description) }}
{{ macro.button_test("testTelegram", label_test) }}

View File

@ -37,7 +37,7 @@
<a class="btn btn-primary mb-2" href="{{ telegram_get_chat_id_url }}">{{ label_telegram_get_chat_id }}</a>
</div>
{{ macro.input_field("text", "telegram_id", null, "telegram_id", label_telegram_chat_id, telegram_id, label_telegram_chat_id, "255", "telegram_id_help", label_telegram_id_description) }}
<button class="btn btn-primary show-modal" data-toggle="modal" data-modal-id="activateTelegram">{{ label_activate_telegram }}</button>
<button type="button" class="btn btn-primary show-modal" data-toggle="modal" data-modal-id="activateTelegram">{{ label_activate_telegram }}</button>
{{ macro.input_hidden("activate_telegram", "0") }}
</fieldset>
<!-- Jabber settings -->

View File

@ -4,9 +4,9 @@
<legend>{{ titlemode }}</legend>
<div class="col">
<!-- Username -->
{{ macro.input_field("text", "user_name", null, "user_name", label_user_name, edit_value_user_name, null, "255", null, null, null, true, true) }}
{{ macro.input_field("text", "user_name", null, "user_name", label_user_name, edit_value_user_name, null, "255", null, null, null, null, true) }}
<!-- Name -->
{{ macro.input_field("text", "name", null, "name", label_name, edit_value_name, null, "255", null, null, null, true) }}
{{ macro.input_field("text", "name", null, "name", label_name, edit_value_name, null, "255", null, null, null, null, true) }}
<!-- Level -->
{{ macro.input_select("level", "level", label_level, levels, user_level) }}
<!-- Password -->
@ -17,7 +17,7 @@
{{ macro.input_field("email", "email", null, "email", label_email, edit_value_email, null, "255") }}
<!-- Mobile -->
{{ macro.input_field("tel", "mobile", null, "mobile", label_mobile, edit_value_mobile, null, "20") }}
<!-- Discord -->
<!-- Discord -->
{{ macro.input_field("text", "discord", null, "discord", label_discord, edit_value_discord, null, "255") }}
<!-- Webhook_url -->
{{ macro.input_field("text", "webhook_url", null, "webhook_url", label_webhook_url, edit_value_webhook_url, null, "255") }}

View File

@ -51,6 +51,7 @@ $().ready(function () {
}
$('#label').focus();
});
$("#type").change(function () {
switch ($("select#type option:checked").val()) {
case "website":
@ -103,6 +104,21 @@ $("select#popular_ports").change(function () {
}
}).change();
$("#user_name").change(function ()
{
switch ($("#user_name").val()) {
case "__PUBLIC__":
$('#password').parent().slideUp();
$('#password_repeat').parent().slideUp();
$("select#level").val('30');
$("#name").val('Public page');
break;
default:
$('#password').parent().slideDown();
$('#password_repeat').parent().slideDown();
}
}).change();
function psm_xhr(mod, params, method, on_complete, options) {
method = (typeof method === 'undefined') ? 'GET' : method;