From 0ea6861988b03d9c347d36536386640a0b573c9a Mon Sep 17 00:00:00 2001 From: imrcli-remediator Date: Sat, 18 Jul 2026 18:02:06 +0200 Subject: [PATCH] =?UTF-8?q?vanilla-restore:=20category=3Dmodified-benign?= =?UTF-8?q?=20(79=20f=C3=A1jl)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit vhost: www.archlinexp.eu rel_path: components/com_users/controller.php result: quarantined evidence_sha256: 2d0e5a25333180fc0976159ba409b32506d458b3239daa930474d8140a95bb92 timestamp: 20260718T160204Z finding_ref: 7252 vhost: www.archlinexp.eu rel_path: components/com_users/controllers/profile.json.php result: quarantined evidence_sha256: 14089aed5d01c80be03a7ff13f0b8f5b6a5fb5c37b7f8e72bf9ab98e5bbb976b timestamp: 20260718T160204Z finding_ref: 7257 vhost: www.archlinexp.eu rel_path: components/com_users/controllers/profile.php result: quarantined evidence_sha256: 0cef6b3e5fc0304afdb0005711b02d9a39d01fee0ce14903d4312f31a2fa540b timestamp: 20260718T160204Z finding_ref: 7258 vhost: www.archlinexp.eu rel_path: components/com_users/controllers/profile_base_json.php result: quarantined evidence_sha256: 11ec9184dddb0f201b18ec05c6a279f1d4b387813b80ed01dfe5040e00c93d4a timestamp: 20260718T160204Z finding_ref: 7259 vhost: www.archlinexp.eu rel_path: components/com_users/controllers/remind.php result: quarantined evidence_sha256: a6ef6d7b60043fa180e39c8efce1dcff804c8c2bbfa11d4e5e4d2ca36601972d timestamp: 20260718T160204Z finding_ref: 7255 vhost: www.archlinexp.eu rel_path: components/com_users/controllers/reset.php result: quarantined evidence_sha256: 224404ff37d78b3baf18f77b89e51e7599304b44b51fe6e4bf1ff9abf354ac0c timestamp: 20260718T160204Z finding_ref: 7256 vhost: www.archlinexp.eu rel_path: components/com_users/controllers/user.php result: quarantined evidence_sha256: d7472a9cb222592b7799229831d00ed6e728d082fd5ed5be616404edb8ad275c timestamp: 20260718T160204Z finding_ref: 7254 vhost: www.archlinexp.eu rel_path: components/com_users/helpers/html/users.php result: quarantined evidence_sha256: cb229ad16ba915a20aa22c49f2b5863cb4079cb5ce5fb3975b07b5caa161e786 timestamp: 20260718T160204Z finding_ref: 7283 vhost: www.archlinexp.eu rel_path: components/com_users/helpers/legacyrouter.php result: quarantined evidence_sha256: e25f6683f53657c5f1f0f03e80126eb3acbc3b270dd26f3bcd8e16fc72f72343 timestamp: 20260718T160204Z finding_ref: 7281 vhost: www.archlinexp.eu rel_path: components/com_users/helpers/route.php result: quarantined evidence_sha256: 2f2d92b287b854fc6ad31c8168badc5938e39bec1f8b6202d4df348cd23a23f0 timestamp: 20260718T160204Z finding_ref: 7282 vhost: www.archlinexp.eu rel_path: components/com_users/layouts/joomla/form/renderfield.php result: quarantined evidence_sha256: 767cc86103a71d15914e028fc231d5b48ffb5cdc5bf6ab8ecc3e22bb73d9190b timestamp: 20260718T160204Z finding_ref: 7284 vhost: www.archlinexp.eu rel_path: components/com_users/models/forms/profile.xml result: quarantined evidence_sha256: 6f217de7628ab4c162bef301a62851bd90557bc43062783410df850901f536ba timestamp: 20260718T160204Z finding_ref: 7278 vhost: www.archlinexp.eu rel_path: components/com_users/models/forms/registration.xml result: quarantined evidence_sha256: d8d90d9badd444b08bd7243d3621f6af3feaee137523c212b5b883883f805b7e timestamp: 20260718T160204Z finding_ref: 7277 vhost: www.archlinexp.eu rel_path: components/com_users/models/login.php result: quarantined evidence_sha256: 1bd545c9d69235efbd0ca01aa8e3fee5c0416f9d7e57647314f029d01c7bcb75 timestamp: 20260718T160204Z finding_ref: 7272 vhost: www.archlinexp.eu rel_path: components/com_users/models/profile.php result: quarantined evidence_sha256: 9120583bc9b1fc6d5c5b7a81fdd14c2d18250715cc89c672b743038cd62f7682 timestamp: 20260718T160204Z finding_ref: 7276 vhost: www.archlinexp.eu rel_path: components/com_users/models/registration.php result: quarantined evidence_sha256: 36f98683f5d734fd65acabfd638da4bff54196ce0f4fc2574c23ab9ef9b66ba6 timestamp: 20260718T160204Z finding_ref: 7275 vhost: www.archlinexp.eu rel_path: components/com_users/models/remind.php result: quarantined evidence_sha256: 25d8b3522b7b6fc0456dda7a2cc346c94e9b3889f4180d32f3e3101998791f1a timestamp: 20260718T160204Z finding_ref: 7273 vhost: www.archlinexp.eu rel_path: components/com_users/models/reset.php result: quarantined evidence_sha256: f948b6a494c8fe051b43bff9f12801d462e4d22f37607da2c5b3b6a7886dcd72 timestamp: 20260718T160204Z finding_ref: 7274 vhost: www.archlinexp.eu rel_path: components/com_users/models/rules/loginuniquefield.php result: quarantined evidence_sha256: 70dfe2a0662c32f12e612c1d5785006673319ec19766651ab15aefb880a2c5f2 timestamp: 20260718T160204Z finding_ref: 7279 vhost: www.archlinexp.eu rel_path: components/com_users/models/rules/logoutuniquefield.php result: quarantined evidence_sha256: 9bc602cb398ce792eafb70d3cba2fa732d6bffeb2bf88afc05de9e507334c095 timestamp: 20260718T160204Z finding_ref: 7280 vhost: www.archlinexp.eu rel_path: components/com_users/router.php result: quarantined evidence_sha256: 2b9acf14b84908cd85f8ffface816d5c7124f3226088696dccec501054773253 timestamp: 20260718T160204Z finding_ref: 7253 vhost: www.archlinexp.eu rel_path: components/com_users/users.php result: quarantined evidence_sha256: 6ed1fd07fc85fc4f09fd85926ce729ad711577f7cc3ceaf551c748b07dd2ae5c timestamp: 20260718T160204Z finding_ref: 7251 vhost: www.archlinexp.eu rel_path: components/com_users/views/login/tmpl/default.php result: quarantined evidence_sha256: 8dac9ace51133f1eea7a524ca6dd8de9fc5effedd7c5bb2b5f5562ccd2257efc timestamp: 20260718T160204Z finding_ref: 7269 vhost: www.archlinexp.eu rel_path: components/com_users/views/login/tmpl/default.xml result: quarantined evidence_sha256: 1e40888b8d147a0130bca03085edf7f94e97da2ed09e2aa4b6dfe41282162ecc timestamp: 20260718T160204Z finding_ref: 7270 vhost: www.archlinexp.eu rel_path: components/com_users/views/login/tmpl/default_login.php result: quarantined evidence_sha256: f619bd9d8abc8c0b2766659057d744280be80ff87f1705b5c23c9e74a8f6d6ed timestamp: 20260718T160204Z finding_ref: 7271 vhost: www.archlinexp.eu rel_path: components/com_users/views/login/tmpl/default_logout.php result: quarantined evidence_sha256: 17b5b52ed420d182ca4d96cdc494e204f3dfe024955ae4d91eaf68537daf1f52 timestamp: 20260718T160204Z finding_ref: 7268 vhost: www.archlinexp.eu rel_path: components/com_users/views/login/view.html.php result: quarantined evidence_sha256: 81388b133b1d59d485333ab97724d1a1d3616606f055d863da72bc0a9f0fbea3 timestamp: 20260718T160204Z finding_ref: 7267 vhost: www.archlinexp.eu rel_path: components/com_users/views/profile/tmpl/default.php result: quarantined evidence_sha256: d4133100827716d2da1eb9c60343fb744f2183367c917139a1767681ac200b17 timestamp: 20260718T160204Z finding_ref: 7260 vhost: www.archlinexp.eu rel_path: components/com_users/views/profile/tmpl/default_core.php result: quarantined evidence_sha256: dc8e27c5cf90263c3221ac79542f92ac1e7571cedaa42e6d2a9ad8d99f288765 timestamp: 20260718T160204Z finding_ref: 7263 vhost: www.archlinexp.eu rel_path: components/com_users/views/profile/tmpl/default_custom.php result: quarantined evidence_sha256: 9f2af47de5012a4c1fd0b79ff93f806b85c9c96ba7ea7132f1fb0004a1cf751f timestamp: 20260718T160204Z finding_ref: 7261 vhost: www.archlinexp.eu rel_path: components/com_users/views/profile/tmpl/default_params.php result: quarantined evidence_sha256: b206251975c81b9896dabbdbd16f56225ed1fb582d1ae8053ce397dcbd3381f3 timestamp: 20260718T160204Z finding_ref: 7264 vhost: www.archlinexp.eu rel_path: components/com_users/views/registration/tmpl/default.php result: quarantined evidence_sha256: c362b87f0b31a19b551012f06fcde8b00d0eacda164c95a95b87f3f467426b6f timestamp: 20260718T160204Z finding_ref: 7265 vhost: www.archlinexp.eu rel_path: libraries/cms/html/behavior.php result: quarantined evidence_sha256: b7e3e5f1cba9c986a3624ff1bd80216bc8ae36c853cbe5c2f443499db4502951 timestamp: 20260718T160204Z finding_ref: 7201 vhost: www.archlinexp.eu rel_path: modules/mod_al_newsletter/helper.php result: quarantined evidence_sha256: b7956607a80914f9937904e84970f2e1e67774f4aba36604c4be02572ed61818 timestamp: 20260718T160204Z finding_ref: 7240 vhost: www.archlinexp.eu rel_path: modules/mod_al_newsletter/index.html result: quarantined evidence_sha256: 647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d timestamp: 20260718T160204Z finding_ref: 7238 vhost: www.archlinexp.eu rel_path: modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini result: quarantined evidence_sha256: b4c34415a7fef19b193d8f8cde917e276ca585c5fc43b0157c5428059a8a9796 timestamp: 20260718T160204Z finding_ref: 7245 vhost: www.archlinexp.eu rel_path: modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini result: quarantined evidence_sha256: 6aa67b1e7671a2e12d9eceea4dd8a01c9b053208d565b20ba961e0bb8a4d8793 timestamp: 20260718T160204Z finding_ref: 7244 vhost: www.archlinexp.eu rel_path: modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini result: quarantined evidence_sha256: 112d4cbd2f2bcc865926f7348639e346cb3d0fb8a5c3e4f005912ffa95c581d4 timestamp: 20260718T160204Z finding_ref: 7247 vhost: www.archlinexp.eu rel_path: modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini result: quarantined evidence_sha256: 6aa67b1e7671a2e12d9eceea4dd8a01c9b053208d565b20ba961e0bb8a4d8793 timestamp: 20260718T160204Z finding_ref: 7246 vhost: www.archlinexp.eu rel_path: modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini result: quarantined evidence_sha256: 1ee232c97d9600124baa334bd87c71b5103131e6ef29bf9aa145b28aeabb6e97 timestamp: 20260718T160204Z finding_ref: 7242 vhost: www.archlinexp.eu rel_path: modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini result: quarantined evidence_sha256: fe3e8aca75ff56194b30ab42b861b09a22a2ca313624d1ae62e18b10cfefd368 timestamp: 20260718T160204Z finding_ref: 7243 vhost: www.archlinexp.eu rel_path: modules/mod_al_newsletter/mod_al_newsletter.php result: quarantined evidence_sha256: 9eaa9a68edd1e4498587bcb45e83748e0644206df67207146c15db9762edd19e timestamp: 20260718T160204Z finding_ref: 7241 vhost: www.archlinexp.eu rel_path: modules/mod_al_newsletter/mod_al_newsletter.xml result: quarantined evidence_sha256: 63093cd4600619b21a0b611c46f598ec3074df45ec183860c0ff6119897ea0ce timestamp: 20260718T160204Z finding_ref: 7239 vhost: www.archlinexp.eu rel_path: modules/mod_al_newsletter/tmpl/default.php result: quarantined evidence_sha256: 647148d53fa91736b4f4e5afa5e5f90987320636c0e8dbf132e02af872714b6e timestamp: 20260718T160204Z finding_ref: 7249 vhost: www.archlinexp.eu rel_path: modules/mod_al_newsletter/tmpl/index.html result: quarantined evidence_sha256: 647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d timestamp: 20260718T160204Z finding_ref: 7248 vhost: www.archlinexp.eu rel_path: modules/mod_al_vote/helper.php result: quarantined evidence_sha256: 0b5c924a705ef20a151755d51cc1ec0f6a14259dc95fe8275999c9fd5ccef384 timestamp: 20260718T160204Z finding_ref: 7218 vhost: www.archlinexp.eu rel_path: modules/mod_al_vote/index.html result: quarantined evidence_sha256: 647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d timestamp: 20260718T160204Z finding_ref: 7216 vhost: www.archlinexp.eu rel_path: modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.ini result: quarantined evidence_sha256: b14f757d445fe29447b213ad3834a6485924704e56e103c95a0ddcf6a5d86b9b timestamp: 20260718T160204Z finding_ref: 7223 vhost: www.archlinexp.eu rel_path: modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.sys.ini result: quarantined evidence_sha256: 6aa67b1e7671a2e12d9eceea4dd8a01c9b053208d565b20ba961e0bb8a4d8793 timestamp: 20260718T160204Z finding_ref: 7222 vhost: www.archlinexp.eu rel_path: modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini result: quarantined evidence_sha256: b14f757d445fe29447b213ad3834a6485924704e56e103c95a0ddcf6a5d86b9b timestamp: 20260718T160204Z finding_ref: 7225 vhost: www.archlinexp.eu rel_path: modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini result: quarantined evidence_sha256: 6aa67b1e7671a2e12d9eceea4dd8a01c9b053208d565b20ba961e0bb8a4d8793 timestamp: 20260718T160204Z finding_ref: 7224 vhost: www.archlinexp.eu rel_path: modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini result: quarantined evidence_sha256: 5d8093e15f311eb8a3e44cd1710baaa1d347c423b5e2c9ff07fb0ea1876cd0de timestamp: 20260718T160204Z finding_ref: 7221 vhost: www.archlinexp.eu rel_path: modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini result: quarantined evidence_sha256: fe3e8aca75ff56194b30ab42b861b09a22a2ca313624d1ae62e18b10cfefd368 timestamp: 20260718T160204Z finding_ref: 7220 vhost: www.archlinexp.eu rel_path: modules/mod_al_vote/mod_al_vote.php result: quarantined evidence_sha256: 176fd1c778009daba61f1e1289363e5b657a9ac6f558f21f9bc3723c14659135 timestamp: 20260718T160204Z finding_ref: 7219 vhost: www.archlinexp.eu rel_path: modules/mod_al_vote/mod_al_vote.xml result: quarantined evidence_sha256: 1ed8c27095489f0a0011b846d9a5434f5d1900b1e445dd3af1e1ae84d67ee5b5 timestamp: 20260718T160204Z finding_ref: 7217 vhost: www.archlinexp.eu rel_path: modules/mod_al_vote/tmpl/default.php result: quarantined evidence_sha256: 5bff3f42b1a1627e018b8c2ca635a83435f8504e9ff43e995bbbccbc401b548e timestamp: 20260718T160204Z finding_ref: 7227 vhost: www.archlinexp.eu rel_path: modules/mod_al_vote/tmpl/index.html result: quarantined evidence_sha256: 647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d timestamp: 20260718T160204Z finding_ref: 7226 vhost: www.archlinexp.eu rel_path: modules/mod_alusers/assets/css/images/index.html result: quarantined evidence_sha256: 647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d timestamp: 20260718T160204Z finding_ref: 7214 vhost: www.archlinexp.eu rel_path: modules/mod_alusers/assets/css/index.html result: quarantined evidence_sha256: 647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d timestamp: 20260718T160204Z finding_ref: 7211 vhost: www.archlinexp.eu rel_path: modules/mod_alusers/assets/css/newstyle.css result: quarantined evidence_sha256: d70abf50ed939eb2e298de25d32af4f33a54815c9b90c4d0118c20ba498ffa32 timestamp: 20260718T160204Z finding_ref: 7212 vhost: www.archlinexp.eu rel_path: modules/mod_alusers/assets/css/style.css result: quarantined evidence_sha256: 34722adf5908c18835675b48bf1f7108c208216ce2ae7056455c1e160a86e887 timestamp: 20260718T160204Z finding_ref: 7213 vhost: www.archlinexp.eu rel_path: modules/mod_alusers/assets/index.html result: quarantined evidence_sha256: 647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d timestamp: 20260718T160204Z finding_ref: 7210 vhost: www.archlinexp.eu rel_path: modules/mod_alusers/assets/js/index.html result: quarantined evidence_sha256: 647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d timestamp: 20260718T160204Z finding_ref: 7215 vhost: www.archlinexp.eu rel_path: modules/mod_alusers/helper.php result: quarantined evidence_sha256: f32a272853a5e3b28097863308241216bf9ca011cf6dafe4ac4ccb63aeb8d7ae timestamp: 20260718T160204Z finding_ref: 7206 vhost: www.archlinexp.eu rel_path: modules/mod_alusers/index.html result: quarantined evidence_sha256: 647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d timestamp: 20260718T160204Z finding_ref: 7204 vhost: www.archlinexp.eu rel_path: modules/mod_alusers/mod_alusers.php result: quarantined evidence_sha256: b3a03c1a602038b8d04ed872392111f716c34c5d602a192d4960aa9830ed95b5 timestamp: 20260718T160204Z finding_ref: 7207 vhost: www.archlinexp.eu rel_path: modules/mod_alusers/mod_alusers.xml result: quarantined evidence_sha256: 6c84ae2988438c5b40555e8862b72fce0d349b203dfcf54a58f3f9ba1ebf289e timestamp: 20260718T160204Z finding_ref: 7205 vhost: www.archlinexp.eu rel_path: modules/mod_alusers/tmpl/default.php result: quarantined evidence_sha256: 1fa3716d8853febb7a6630ffa262cd2dd2e3c9cdbf04b7fa107b4fafe7afa990 timestamp: 20260718T160204Z finding_ref: 7209 vhost: www.archlinexp.eu rel_path: modules/mod_alusers/tmpl/index.html result: quarantined evidence_sha256: 647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d timestamp: 20260718T160204Z finding_ref: 7208 vhost: www.archlinexp.eu rel_path: modules/mod_course_list/helper.php result: quarantined evidence_sha256: 7b74a823c28f5516bbc785b36d16beafb6d01d229db1af93561488d67911fd27 timestamp: 20260718T160204Z finding_ref: 7230 vhost: www.archlinexp.eu rel_path: modules/mod_course_list/index.html result: quarantined evidence_sha256: 647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d timestamp: 20260718T160204Z finding_ref: 7228 vhost: www.archlinexp.eu rel_path: modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini result: quarantined evidence_sha256: 4289718b100745f12113baff97d577817d0ad7fca3ed8a7d37360bd06b95d0ed timestamp: 20260718T160204Z finding_ref: 7235 vhost: www.archlinexp.eu rel_path: modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini result: quarantined evidence_sha256: 4289718b100745f12113baff97d577817d0ad7fca3ed8a7d37360bd06b95d0ed timestamp: 20260718T160204Z finding_ref: 7234 vhost: www.archlinexp.eu rel_path: modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini result: quarantined evidence_sha256: 4289718b100745f12113baff97d577817d0ad7fca3ed8a7d37360bd06b95d0ed timestamp: 20260718T160204Z finding_ref: 7232 vhost: www.archlinexp.eu rel_path: modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini result: quarantined evidence_sha256: 4289718b100745f12113baff97d577817d0ad7fca3ed8a7d37360bd06b95d0ed timestamp: 20260718T160204Z finding_ref: 7233 vhost: www.archlinexp.eu rel_path: modules/mod_course_list/mod_course_list.php result: quarantined evidence_sha256: 7ad520f80ac058de97c4942710890f49f62e7962bae0dc699694ddddc98961ac timestamp: 20260718T160204Z finding_ref: 7229 vhost: www.archlinexp.eu rel_path: modules/mod_course_list/mod_course_list.xml result: quarantined evidence_sha256: 2de45f9fb95060b6131cfba8e5a46bbd3f6027cbd11a97026966fbf948c0c89a timestamp: 20260718T160204Z finding_ref: 7231 vhost: www.archlinexp.eu rel_path: modules/mod_course_list/tmpl/default.php result: quarantined evidence_sha256: 7c7e3eec8538662acb59cbd9173f748aead4c052a1e10271c2216389983c83a2 timestamp: 20260718T160204Z finding_ref: 7237 vhost: www.archlinexp.eu rel_path: modules/mod_course_list/tmpl/index.html result: quarantined evidence_sha256: 647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d timestamp: 20260718T160204Z finding_ref: 7236 --- .../www/components/com_users/controller.php | 136 +++ .../com_users/controller.php.evidence.json | 15 + .../com_users/controllers/profile.json.php | 21 + .../profile.json.php.evidence.json | 15 + .../com_users/controllers/profile.php | 260 +++++ .../controllers/profile.php.evidence.json | 15 + .../controllers/profile_base_json.php | 53 + .../profile_base_json.php.evidence.json | 15 + .../com_users/controllers/remind.php | 59 + .../controllers/remind.php.evidence.json | 15 + .../com_users/controllers/reset.php | 190 ++++ .../controllers/reset.php.evidence.json | 15 + .../components/com_users/controllers/user.php | 374 ++++++ .../controllers/user.php.evidence.json | 15 + .../com_users/helpers/html/users.php | 251 +++++ .../helpers/html/users.php.evidence.json | 15 + .../com_users/helpers/legacyrouter.php | 309 +++++ .../helpers/legacyrouter.php.evidence.json | 15 + .../components/com_users/helpers/route.php | 199 ++++ .../com_users/helpers/route.php.evidence.json | 15 + .../layouts/joomla/form/renderfield.php | 60 + .../joomla/form/renderfield.php.evidence.json | 15 + .../com_users/models/forms/profile.xml | 92 ++ .../models/forms/profile.xml.evidence.json | 15 + .../com_users/models/forms/registration.xml | 99 ++ .../forms/registration.xml.evidence.json | 15 + .../www/components/com_users/models/login.php | 112 ++ .../com_users/models/login.php.evidence.json | 15 + .../components/com_users/models/profile.php | 445 ++++++++ .../models/profile.php.evidence.json | 15 + .../com_users/models/registration.php | 773 +++++++++++++ .../models/registration.php.evidence.json | 15 + .../components/com_users/models/remind.php | 198 ++++ .../com_users/models/remind.php.evidence.json | 15 + .../www/components/com_users/models/reset.php | 523 +++++++++ .../com_users/models/reset.php.evidence.json | 15 + .../models/rules/loginuniquefield.php | 56 + .../rules/loginuniquefield.php.evidence.json | 15 + .../models/rules/logoutuniquefield.php | 56 + .../rules/logoutuniquefield.php.evidence.json | 15 + .../www/components/com_users/router.php | 89 ++ .../com_users/router.php.evidence.json | 15 + .../www/components/com_users/users.php | 16 + .../com_users/users.php.evidence.json | 15 + .../com_users/views/login/tmpl/default.php | 23 + .../login/tmpl/default.php.evidence.json | 15 + .../com_users/views/login/tmpl/default.xml | 166 +++ .../login/tmpl/default.xml.evidence.json | 15 + .../views/login/tmpl/default_login.php | 106 ++ .../tmpl/default_login.php.evidence.json | 15 + .../views/login/tmpl/default_logout.php | 49 + .../tmpl/default_logout.php.evidence.json | 15 + .../com_users/views/login/view.html.php | 131 +++ .../views/login/view.html.php.evidence.json | 15 + .../com_users/views/profile/tmpl/default.php | 34 + .../profile/tmpl/default.php.evidence.json | 15 + .../views/profile/tmpl/default_core.php | 49 + .../tmpl/default_core.php.evidence.json | 15 + .../views/profile/tmpl/default_custom.php | 70 ++ .../tmpl/default_custom.php.evidence.json | 15 + .../views/profile/tmpl/default_params.php | 40 + .../tmpl/default_params.php.evidence.json | 15 + .../views/registration/tmpl/default.php | 448 ++++++++ .../tmpl/default.php.evidence.json | 15 + .../www/libraries/cms/html/behavior.php | 1002 +++++++++++++++++ .../cms/html/behavior.php.evidence.json | 15 + .../www/modules/mod_al_newsletter/helper.php | 67 ++ .../helper.php.evidence.json | 15 + .../www/modules/mod_al_newsletter/index.html | 10 + .../index.html.evidence.json | 15 + .../de-DE/de-DE.mod_al_newsletter.ini | 8 + .../de-DE.mod_al_newsletter.ini.evidence.json | 15 + .../de-DE/de-DE.mod_al_newsletter.sys.ini | 7 + ...DE.mod_al_newsletter.sys.ini.evidence.json | 15 + .../en-GB/en-GB.mod_al_newsletter.ini | 8 + .../en-GB.mod_al_newsletter.ini.evidence.json | 15 + .../en-GB/en-GB.mod_al_newsletter.sys.ini | 7 + ...GB.mod_al_newsletter.sys.ini.evidence.json | 15 + .../hu-HU/hu-HU.mod_al_newsletter.ini | 8 + .../hu-HU.mod_al_newsletter.ini.evidence.json | 15 + .../hu-HU/hu-HU.mod_al_newsletter.sys.ini | 7 + ...HU.mod_al_newsletter.sys.ini.evidence.json | 15 + .../mod_al_newsletter/mod_al_newsletter.php | 19 + .../mod_al_newsletter.php.evidence.json | 15 + .../mod_al_newsletter/mod_al_newsletter.xml | 44 + .../mod_al_newsletter.xml.evidence.json | 15 + .../mod_al_newsletter/tmpl/default.php | 49 + .../tmpl/default.php.evidence.json | 15 + .../modules/mod_al_newsletter/tmpl/index.html | 10 + .../tmpl/index.html.evidence.json | 15 + .../www/modules/mod_al_vote/helper.php | 149 +++ .../mod_al_vote/helper.php.evidence.json | 15 + .../www/modules/mod_al_vote/index.html | 10 + .../mod_al_vote/index.html.evidence.json | 15 + .../language/de-DE/de-DE.mod_al_vote.ini | 4 + .../de-DE/de-DE.mod_al_vote.ini.evidence.json | 15 + .../language/de-DE/de-DE.mod_al_vote.sys.ini | 7 + .../de-DE.mod_al_vote.sys.ini.evidence.json | 15 + .../language/en-GB/en-GB.mod_al_vote.ini | 4 + .../en-GB/en-GB.mod_al_vote.ini.evidence.json | 15 + .../language/en-GB/en-GB.mod_al_vote.sys.ini | 7 + .../en-GB.mod_al_vote.sys.ini.evidence.json | 15 + .../language/hu-HU/hu-HU.mod_al_vote.ini | 4 + .../hu-HU/hu-HU.mod_al_vote.ini.evidence.json | 15 + .../language/hu-HU/hu-HU.mod_al_vote.sys.ini | 7 + .../hu-HU.mod_al_vote.sys.ini.evidence.json | 15 + .../www/modules/mod_al_vote/mod_al_vote.php | 18 + .../mod_al_vote/mod_al_vote.php.evidence.json | 15 + .../www/modules/mod_al_vote/mod_al_vote.xml | 42 + .../mod_al_vote/mod_al_vote.xml.evidence.json | 15 + .../www/modules/mod_al_vote/tmpl/default.php | 124 ++ .../tmpl/default.php.evidence.json | 15 + .../www/modules/mod_al_vote/tmpl/index.html | 10 + .../mod_al_vote/tmpl/index.html.evidence.json | 15 + .../mod_alusers/assets/css/images/index.html | 10 + .../css/images/index.html.evidence.json | 15 + .../modules/mod_alusers/assets/css/index.html | 10 + .../assets/css/index.html.evidence.json | 15 + .../mod_alusers/assets/css/newstyle.css | 6 + .../assets/css/newstyle.css.evidence.json | 15 + .../modules/mod_alusers/assets/css/style.css | 4 + .../assets/css/style.css.evidence.json | 15 + .../www/modules/mod_alusers/assets/index.html | 10 + .../assets/index.html.evidence.json | 15 + .../modules/mod_alusers/assets/js/index.html | 10 + .../assets/js/index.html.evidence.json | 15 + .../www/modules/mod_alusers/helper.php | 315 ++++++ .../mod_alusers/helper.php.evidence.json | 15 + .../www/modules/mod_alusers/index.html | 10 + .../mod_alusers/index.html.evidence.json | 15 + .../www/modules/mod_alusers/mod_alusers.php | 86 ++ .../mod_alusers/mod_alusers.php.evidence.json | 15 + .../www/modules/mod_alusers/mod_alusers.xml | 151 +++ .../mod_alusers/mod_alusers.xml.evidence.json | 15 + .../www/modules/mod_alusers/tmpl/default.php | 268 +++++ .../tmpl/default.php.evidence.json | 15 + .../www/modules/mod_alusers/tmpl/index.html | 10 + .../mod_alusers/tmpl/index.html.evidence.json | 15 + .../www/modules/mod_course_list/helper.php | 77 ++ .../mod_course_list/helper.php.evidence.json | 15 + .../www/modules/mod_course_list/index.html | 10 + .../mod_course_list/index.html.evidence.json | 15 + .../language/en-GB/en-GB.mod_course_list.ini | 4 + .../en-GB.mod_course_list.ini.evidence.json | 15 + .../en-GB/en-GB.mod_course_list.sys.ini | 4 + ...n-GB.mod_course_list.sys.ini.evidence.json | 15 + .../language/hu-HU/hu-HU.mod_course_list.ini | 4 + .../hu-HU.mod_course_list.ini.evidence.json | 15 + .../hu-HU/hu-HU.mod_course_list.sys.ini | 4 + ...u-HU.mod_course_list.sys.ini.evidence.json | 15 + .../mod_course_list/mod_course_list.php | 12 + .../mod_course_list.php.evidence.json | 15 + .../mod_course_list/mod_course_list.xml | 42 + .../mod_course_list.xml.evidence.json | 15 + .../modules/mod_course_list/tmpl/default.php | 328 ++++++ .../tmpl/default.php.evidence.json | 15 + .../modules/mod_course_list/tmpl/index.html | 10 + .../tmpl/index.html.evidence.json | 15 + 158 files changed, 9689 insertions(+) create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controller.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controller.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.json.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.json.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile_base_json.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile_base_json.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controllers/remind.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controllers/remind.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controllers/reset.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controllers/reset.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controllers/user.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/controllers/user.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/helpers/html/users.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/helpers/html/users.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/helpers/legacyrouter.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/helpers/legacyrouter.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/helpers/route.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/helpers/route.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/layouts/joomla/form/renderfield.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/layouts/joomla/form/renderfield.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/profile.xml create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/profile.xml.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/registration.xml create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/registration.xml.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/login.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/login.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/profile.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/profile.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/registration.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/registration.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/remind.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/remind.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/reset.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/reset.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/loginuniquefield.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/loginuniquefield.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/logoutuniquefield.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/logoutuniquefield.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/router.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/router.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/users.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/users.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.xml create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.xml.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_login.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_login.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_logout.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_logout.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/login/view.html.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/login/view.html.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_core.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_core.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_custom.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_custom.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_params.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_params.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/registration/tmpl/default.php create mode 100644 var/www/hosting/archlinexp.eu/www/components/com_users/views/registration/tmpl/default.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/libraries/cms/html/behavior.php create mode 100644 var/www/hosting/archlinexp.eu/www/libraries/cms/html/behavior.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/helper.php create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/helper.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/index.html create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/index.html.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.php create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.xml create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.xml.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/default.php create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/default.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/index.html create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/index.html.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/helper.php create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/helper.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/index.html create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/index.html.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.sys.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.sys.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.php create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.xml create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.xml.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/default.php create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/default.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/index.html create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/index.html.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/images/index.html create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/images/index.html.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/index.html create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/index.html.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/newstyle.css create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/newstyle.css.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/style.css create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/style.css.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/index.html create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/index.html.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/js/index.html create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/js/index.html.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/helper.php create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/helper.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/index.html create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/index.html.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.php create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.xml create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.xml.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/default.php create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/default.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/index.html create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/index.html.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/helper.php create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/helper.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/index.html create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/index.html.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.php create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.xml create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.xml.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/default.php create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/default.php.evidence.json create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/index.html create mode 100644 var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/index.html.evidence.json diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/controller.php b/var/www/hosting/archlinexp.eu/www/components/com_users/controller.php new file mode 100644 index 0000000..efd7965 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/controller.php @@ -0,0 +1,136 @@ +input->getCmd('view', 'login'); + $vFormat = $document->getType(); + $lName = $this->input->getCmd('layout', 'default'); + + if ($view = $this->getView($vName, $vFormat)) + { + // Do any specific processing by view. + switch ($vName) + { + case 'registration': + // If the user is already logged in, redirect to the profile page. + $user = JFactory::getUser(); + + if ($user->get('guest') != 1) + { + // Redirect to profile page. + $this->setRedirect(JRoute::_('index.php?option=com_users&view=profile', false)); + + return; + } + + // Check if user registration is enabled + if (JComponentHelper::getParams('com_users')->get('allowUserRegistration') == 0) + { + // Registration is disabled - Redirect to login page. + $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false)); + + return; + } + + // The user is a guest, load the registration model and show the registration page. + $model = $this->getModel('Registration'); + break; + + // Handle view specific models. + case 'profile': + + // If the user is a guest, redirect to the login page. + $user = JFactory::getUser(); + + if ($user->get('guest') == 1) + { + // Redirect to login page. + $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false)); + + return; + } + + $model = $this->getModel($vName); + break; + + // Handle the default views. + case 'login': + $model = $this->getModel($vName); + break; + + case 'reset': + // If the user is already logged in, redirect to the profile page. + $user = JFactory::getUser(); + + if ($user->get('guest') != 1) + { + // Redirect to profile page. + $this->setRedirect(JRoute::_('index.php?option=com_users&view=profile', false)); + + return; + } + + $model = $this->getModel($vName); + break; + + case 'remind': + // If the user is already logged in, redirect to the profile page. + $user = JFactory::getUser(); + + if ($user->get('guest') != 1) + { + // Redirect to profile page. + $this->setRedirect(JRoute::_('index.php?option=com_users&view=profile', false)); + + return; + } + + $model = $this->getModel($vName); + break; + + default: + $model = $this->getModel('Login'); + break; + } + + // Push the model into the view (as default). + $view->setModel($model, true); + $view->setLayout($lName); + + // Push document object into the view. + $view->document = $document; + + $view->display(); + } + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/controller.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/controller.php.evidence.json new file mode 100644 index 0000000..3c70200 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/controller.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7252", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/controller.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/controller.php)", + "original_sha256": "2d0e5a25333180fc0976159ba409b32506d458b3239daa930474d8140a95bb92", + "original_stat": { + "gid": 30037, + "mtime": 1552901205, + "size": 3467, + "uid": 12425 + }, + "rel_path": "components/com_users/controller.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.json.php b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.json.php new file mode 100644 index 0000000..fc29aa1 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.json.php @@ -0,0 +1,21 @@ + quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.json.php)", + "original_sha256": "14089aed5d01c80be03a7ff13f0b8f5b6a5fb5c37b7f8e72bf9ab98e5bbb976b", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 498, + "uid": 12425 + }, + "rel_path": "components/com_users/controllers/profile.json.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.php b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.php new file mode 100644 index 0000000..3175402 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.php @@ -0,0 +1,260 @@ +get('id'); + + // Get the previous user id (if any) and the current user id. + $previousId = (int) $app->getUserState('com_users.edit.profile.id'); + $userId = $this->input->getInt('user_id'); + + // Check if the user is trying to edit another users profile. + if ($userId != $loginUserId) + { + $app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'error'); + $app->setHeader('status', 403, true); + + return false; + } + + $cookieLogin = $user->get('cookieLogin'); + + // Check if the user logged in with a cookie + if (!empty($cookieLogin)) + { + // If so, the user must login to edit the password and other data. + $app->enqueueMessage(JText::_('JGLOBAL_REMEMBER_MUST_LOGIN'), 'message'); + $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false)); + + return false; + } + + // Set the user id for the user to edit in the session. + $app->setUserState('com_users.edit.profile.id', $userId); + + // Get the model. + $model = $this->getModel('Profile', 'UsersModel'); + + // Check out the user. + if ($userId) + { + $model->checkout($userId); + } + + // Check in the previous user. + if ($previousId) + { + $model->checkin($previousId); + } + + // Redirect to the edit screen. + $this->setRedirect(JRoute::_('index.php?option=com_users&view=profile&layout=edit', false)); + + return true; + } + + /** + * Method to save a user's profile data. + * + * @return void + * + * @since 1.6 + */ + public function save() + { + // Check for request forgeries. + $this->checkToken(); + + $app = JFactory::getApplication(); + $model = $this->getModel('Profile', 'UsersModel'); + $user = JFactory::getUser(); + $userId = (int) $user->get('id'); + + // Get the user data. + $requestData = $app->input->post->get('jform', array(), 'array'); + + // Force the ID to this user. + $requestData['id'] = $userId; + + // Validate the posted data. + $form = $model->getForm(); + + if (!$form) + { + JError::raiseError(500, $model->getError()); + + return false; + } + + // Send an object which can be modified through the plugin event + $objData = (object) $requestData; + $app->triggerEvent( + 'onContentNormaliseRequestData', + array('com_users.user', $objData, $form) + ); + $requestData = (array) $objData; + + // Validate the posted data. + $data = $model->validate($form, $requestData); + + // Check for errors. + if ($data === false) + { + // Get the validation messages. + $errors = $model->getErrors(); + + // Push up to three validation messages out to the user. + for ($i = 0, $n = count($errors); $i < $n && $i < 3; $i++) + { + if ($errors[$i] instanceof Exception) + { + $app->enqueueMessage($errors[$i]->getMessage(), 'warning'); + } + else + { + $app->enqueueMessage($errors[$i], 'warning'); + } + } + + // Unset the passwords. + unset($requestData['password1'], $requestData['password2']); + + // Save the data in the session. + $app->setUserState('com_users.edit.profile.data', $requestData); + + // Redirect back to the edit screen. + $userId = (int) $app->getUserState('com_users.edit.profile.id'); + $this->setRedirect(JRoute::_('index.php?option=com_users&view=profile&layout=edit&user_id=' . $userId, false)); + + return false; + } + + // Attempt to save the data. + $return = $model->save($data); + + // Check for errors. + if ($return === false) + { + // Save the data in the session. + $app->setUserState('com_users.edit.profile.data', $data); + + // Redirect back to the edit screen. + $userId = (int) $app->getUserState('com_users.edit.profile.id'); + $this->setMessage(JText::sprintf('COM_USERS_PROFILE_SAVE_FAILED', $model->getError()), 'warning'); + $this->setRedirect(JRoute::_('index.php?option=com_users&view=profile&layout=edit&user_id=' . $userId, false)); + + return false; + } + + // Redirect the user and adjust session state based on the chosen task. + switch ($this->getTask()) + { + case 'apply': + // Check out the profile. + $app->setUserState('com_users.edit.profile.id', $return); + $model->checkout($return); + + // Redirect back to the edit screen. + $this->setMessage(JText::_('COM_USERS_PROFILE_SAVE_SUCCESS')); + + $redirect = $app->getUserState('com_users.edit.profile.redirect'); + + // Don't redirect to an external URL. + if (!JUri::isInternal($redirect)) + { + $redirect = null; + } + + if (!$redirect) + { + $redirect = 'index.php?option=com_users&view=profile&layout=edit&hidemainmenu=1'; + } + + $this->setRedirect(JRoute::_($redirect, false)); + break; + + default: + // Check in the profile. + $userId = (int) $app->getUserState('com_users.edit.profile.id'); + + if ($userId) + { + $model->checkin($userId); + } + + // Clear the profile id from the session. + $app->setUserState('com_users.edit.profile.id', null); + + $redirect = $app->getUserState('com_users.edit.profile.redirect'); + + // Don't redirect to an external URL. + if (!JUri::isInternal($redirect)) + { + $redirect = null; + } + + if (!$redirect) + { + $redirect = 'index.php?option=com_users&view=profile&user_id=' . $return; + } + + // Redirect to the list screen. + $this->setMessage(JText::_('COM_USERS_PROFILE_SAVE_SUCCESS')); + $this->setRedirect(JRoute::_($redirect, false)); + break; + } + + // Flush the data from the session. + $app->setUserState('com_users.edit.profile.data', null); + } + + /** + * Function that allows child controller access to model data after the data has been saved. + * + * @param JModelLegacy $model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 3.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + $item = $model->getData(); + $tags = $validData['tags']; + + if ($tags) + { + $item->tags = new JHelperTags; + $item->tags->getTagIds($item->id, 'com_users.user'); + $item->metadata['tags'] = $item->tags; + } + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.php.evidence.json new file mode 100644 index 0000000..ed2dc03 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7258", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/controllers/profile.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.php)", + "original_sha256": "0cef6b3e5fc0304afdb0005711b02d9a39d01fee0ce14903d4312f31a2fa540b", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 6630, + "uid": 12425 + }, + "rel_path": "components/com_users/controllers/profile.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile_base_json.php b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile_base_json.php new file mode 100644 index 0000000..f1b5f9a --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile_base_json.php @@ -0,0 +1,53 @@ +close(); + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile_base_json.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile_base_json.php.evidence.json new file mode 100644 index 0000000..bb81bbd --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile_base_json.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7259", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/controllers/profile_base_json.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile_base_json.php)", + "original_sha256": "11ec9184dddb0f201b18ec05c6a279f1d4b387813b80ed01dfe5040e00c93d4a", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 1301, + "uid": 12425 + }, + "rel_path": "components/com_users/controllers/profile_base_json.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/remind.php b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/remind.php new file mode 100644 index 0000000..740c468 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/remind.php @@ -0,0 +1,59 @@ +checkToken('post'); + + $model = $this->getModel('Remind', 'UsersModel'); + $data = $this->input->post->get('jform', array(), 'array'); + + // Submit the password reset request. + $return = $model->processRemindRequest($data); + + // Check for a hard error. + if ($return == false) + { + // The request failed. + // Go back to the request form. + $message = JText::sprintf('COM_USERS_REMIND_REQUEST_FAILED', $model->getError()); + $this->setRedirect(JRoute::_('index.php?option=com_users&view=remind', false), $message, 'notice'); + + return false; + } + else + { + // The request succeeded. + // Proceed to step two. + $message = JText::_('COM_USERS_REMIND_REQUEST_SUCCESS'); + $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false), $message); + + return true; + } + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/remind.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/remind.php.evidence.json new file mode 100644 index 0000000..2f629c7 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/remind.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7255", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/controllers/remind.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/remind.php)", + "original_sha256": "a6ef6d7b60043fa180e39c8efce1dcff804c8c2bbfa11d4e5e4d2ca36601972d", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 1427, + "uid": 12425 + }, + "rel_path": "components/com_users/controllers/remind.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/reset.php b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/reset.php new file mode 100644 index 0000000..081be66 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/reset.php @@ -0,0 +1,190 @@ +checkToken('post'); + + $app = JFactory::getApplication(); + $model = $this->getModel('Reset', 'UsersModel'); + $data = $this->input->post->get('jform', array(), 'array'); + + // Submit the password reset request. + $return = $model->processResetRequest($data); + + // Check for a hard error. + if ($return instanceof Exception) + { + // Get the error message to display. + if ($app->get('error_reporting')) + { + $message = $return->getMessage(); + } + else + { + $message = JText::_('COM_USERS_RESET_REQUEST_ERROR'); + } + + // Go back to the request form. + $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset', false), $message, 'error'); + + return false; + } + elseif ($return === false) + { + // The request failed. + // Go back to the request form. + $message = JText::sprintf('COM_USERS_RESET_REQUEST_FAILED', $model->getError()); + $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset', false), $message, 'notice'); + + return false; + } + else + { + // The request succeeded. + // Proceed to step two. + $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=confirm', false)); + + return true; + } + } + + /** + * Method to confirm the password request. + * + * @return boolean + * + * @access public + * @since 1.6 + */ + public function confirm() + { + // Check the request token. + $this->checkToken('request'); + + $app = JFactory::getApplication(); + $model = $this->getModel('Reset', 'UsersModel'); + $data = $this->input->get('jform', array(), 'array'); + + // Confirm the password reset request. + $return = $model->processResetConfirm($data); + + // Check for a hard error. + if ($return instanceof Exception) + { + // Get the error message to display. + if ($app->get('error_reporting')) + { + $message = $return->getMessage(); + } + else + { + $message = JText::_('COM_USERS_RESET_CONFIRM_ERROR'); + } + + // Go back to the confirm form. + $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=confirm', false), $message, 'error'); + + return false; + } + elseif ($return === false) + { + // Confirm failed. + // Go back to the confirm form. + $message = JText::sprintf('COM_USERS_RESET_CONFIRM_FAILED', $model->getError()); + $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=confirm', false), $message, 'notice'); + + return false; + } + else + { + // Confirm succeeded. + // Proceed to step three. + $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=complete', false)); + + return true; + } + } + + /** + * Method to complete the password reset process. + * + * @return boolean + * + * @since 1.6 + */ + public function complete() + { + // Check for request forgeries + $this->checkToken('post'); + + $app = JFactory::getApplication(); + $model = $this->getModel('Reset', 'UsersModel'); + $data = $this->input->post->get('jform', array(), 'array'); + + // Complete the password reset request. + $return = $model->processResetComplete($data); + + // Check for a hard error. + if ($return instanceof Exception) + { + // Get the error message to display. + if ($app->get('error_reporting')) + { + $message = $return->getMessage(); + } + else + { + $message = JText::_('COM_USERS_RESET_COMPLETE_ERROR'); + } + + // Go back to the complete form. + $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=complete', false), $message, 'error'); + + return false; + } + elseif ($return === false) + { + // Complete failed. + // Go back to the complete form. + $message = JText::sprintf('COM_USERS_RESET_COMPLETE_FAILED', $model->getError()); + $this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=complete', false), $message, 'notice'); + + return false; + } + else + { + // Complete succeeded. + // Proceed to the login form. + $message = JText::_('COM_USERS_RESET_COMPLETE_SUCCESS'); + $this->setRedirect(JRoute::_('index.php?option=com_users&view=login', false), $message); + + return true; + } + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/reset.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/reset.php.evidence.json new file mode 100644 index 0000000..c077fff --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/reset.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7256", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/controllers/reset.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/reset.php)", + "original_sha256": "224404ff37d78b3baf18f77b89e51e7599304b44b51fe6e4bf1ff9abf354ac0c", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 4662, + "uid": 12425 + }, + "rel_path": "components/com_users/controllers/reset.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/user.php b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/user.php new file mode 100644 index 0000000..2efa8bd --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/user.php @@ -0,0 +1,374 @@ +checkToken('post'); + + $app = JFactory::getApplication(); + $input = $app->input->getInputForRequestMethod(); + + // Populate the data array: + $data = array(); + + $data['return'] = base64_decode($input->get('return', '', 'BASE64')); + $data['username'] = $input->get('username', '', 'USERNAME'); + $data['password'] = $input->get('password', '', 'RAW'); + $data['secretkey'] = $input->get('secretkey', '', 'RAW'); + + // Check for a simple menu item id + if (is_numeric($data['return'])) + { + if (JLanguageMultilang::isEnabled()) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('language') + ->from($db->quoteName('#__menu')) + ->where('client_id = 0') + ->where('id =' . $data['return']); + + $db->setQuery($query); + + try + { + $language = $db->loadResult(); + } + catch (RuntimeException $e) + { + return; + } + + if ($language !== '*') + { + $lang = '&lang=' . $language; + } + else + { + $lang = ''; + } + } + else + { + $lang = ''; + } + + $data['return'] = 'index.php?Itemid=' . $data['return'] . $lang; + } + else + { + // Don't redirect to an external URL. + if (!JUri::isInternal($data['return'])) + { + $data['return'] = ''; + } + } + + // Set the return URL if empty. + if (empty($data['return'])) + { + $data['return'] = 'index.php?option=com_users&view=profile'; + } + + // Set the return URL in the user state to allow modification by plugins + $app->setUserState('users.login.form.return', $data['return']); + + // Get the log in options. + $options = array(); + $options['remember'] = $this->input->getBool('remember', false); + $options['return'] = $data['return']; + + // Get the log in credentials. + $credentials = array(); + $credentials['username'] = $data['username']; + $credentials['password'] = $data['password']; + $credentials['secretkey'] = $data['secretkey']; + + // Perform the log in. + if (true !== $app->login($credentials, $options)) + { + // Login failed ! + // Clear user name, password and secret key before sending the login form back to the user. + $data['remember'] = (int) $options['remember']; + $data['username'] = ''; + $data['password'] = ''; + $data['secretkey'] = ''; + $app->setUserState('users.login.form.data', $data); + $uri = JFactory::getURI(); + $url = $uri->toString(); + $app->redirect(JRoute::_($url, false)); + //$app->redirect(JRoute::_('index.php?option=com_users&view=login', false)); //Eredeti + } + + // Success + if ($options['remember'] == true) + { + $app->setUserState('rememberLogin', true); + } + + $app->setUserState('users.login.form.data', array()); + $app->redirect(JRoute::_($app->getUserState('users.login.form.return'), false)); + } + + /** + * Method to log out a user. + * + * @return void + * + * @since 1.6 + */ + public function logout() + { + $this->checkToken('request'); + + $app = JFactory::getApplication(); + + // Prepare the logout options. + $options = array( + 'clientid' => $app->get('shared_session', '0') ? null : 0, + ); + + // Perform the log out. + $error = $app->logout(null, $options); + $input = $app->input->getInputForRequestMethod(); + + // Check if the log out succeeded. + if ($error instanceof Exception) + { + $app->redirect(JRoute::_('index.php?option=com_users&view=login', false)); + } + + // Get the return URL from the request and validate that it is internal. + $return = $input->get('return', '', 'BASE64'); + $return = base64_decode($return); + + // Check for a simple menu item id + if (is_numeric($return)) + { + if (JLanguageMultilang::isEnabled()) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('language') + ->from($db->quoteName('#__menu')) + ->where('client_id = 0') + ->where('id =' . $return); + + $db->setQuery($query); + + try + { + $language = $db->loadResult(); + } + catch (RuntimeException $e) + { + return; + } + + if ($language !== '*') + { + $lang = '&lang=' . $language; + } + else + { + $lang = ''; + } + } + else + { + $lang = ''; + } + + $return = 'index.php?Itemid=' . $return . $lang; + } + else + { + // Don't redirect to an external URL. + if (!JUri::isInternal($return)) + { + $return = ''; + } + } + + // In case redirect url is not set, redirect user to homepage + if (empty($return)) + { + $return = JUri::root(); + } + + // Redirect the user. + $app->redirect(JRoute::_($return, false)); + } + + /** + * Method to logout directly and redirect to page. + * + * @return void + * + * @since 3.5 + */ + public function menulogout() + { + // Get the ItemID of the page to redirect after logout + $app = JFactory::getApplication(); + $itemid = $app->getMenu()->getActive()->params->get('logout'); + + // Get the language of the page when multilang is on + if (JLanguageMultilang::isEnabled()) + { + if ($itemid) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('language') + ->from($db->quoteName('#__menu')) + ->where('client_id = 0') + ->where('id =' . $itemid); + + $db->setQuery($query); + + try + { + $language = $db->loadResult(); + } + catch (RuntimeException $e) + { + return; + } + + if ($language !== '*') + { + $lang = '&lang=' . $language; + } + else + { + $lang = ''; + } + + // URL to redirect after logout + $url = 'index.php?Itemid=' . $itemid . $lang; + } + else + { + // Logout is set to default. Get the home page ItemID + $lang_code = $app->input->cookie->getString(JApplicationHelper::getHash('language')); + $item = $app->getMenu()->getDefault($lang_code); + $itemid = $item->id; + + // Redirect to Home page after logout + $url = 'index.php?Itemid=' . $itemid; + } + } + else + { + // URL to redirect after logout, default page if no ItemID is set + $url = $itemid ? 'index.php?Itemid=' . $itemid : JUri::root(); + } + + // Logout and redirect + $this->setRedirect('index.php?option=com_users&task=user.logout&' . JSession::getFormToken() . '=1&return=' . base64_encode($url)); + } + + /** + * Method to request a username reminder. + * + * @return boolean + * + * @since 1.6 + */ + public function remind() + { + // Check the request token. + $this->checkToken('post'); + + $app = JFactory::getApplication(); + $model = $this->getModel('User', 'UsersModel'); + $data = $this->input->post->get('jform', array(), 'array'); + + // Submit the username remind request. + $return = $model->processRemindRequest($data); + + // Check for a hard error. + if ($return instanceof Exception) + { + // Get the error message to display. + $message = $app->get('error_reporting') + ? $return->getMessage() + : JText::_('COM_USERS_REMIND_REQUEST_ERROR'); + + // Get the route to the next page. + $itemid = UsersHelperRoute::getRemindRoute(); + $itemid = $itemid !== null ? '&Itemid=' . $itemid : ''; + $route = 'index.php?option=com_users&view=remind' . $itemid; + + // Go back to the complete form. + $this->setRedirect(JRoute::_($route, false), $message, 'error'); + + return false; + } + + if ($return === false) + { + // Complete failed. + // Get the route to the next page. + $itemid = UsersHelperRoute::getRemindRoute(); + $itemid = $itemid !== null ? '&Itemid=' . $itemid : ''; + $route = 'index.php?option=com_users&view=remind' . $itemid; + + // Go back to the complete form. + $message = JText::sprintf('COM_USERS_REMIND_REQUEST_FAILED', $model->getError()); + $this->setRedirect(JRoute::_($route, false), $message, 'notice'); + + return false; + } + + // Complete succeeded. + // Get the route to the next page. + $itemid = UsersHelperRoute::getLoginRoute(); + $itemid = $itemid !== null ? '&Itemid=' . $itemid : ''; + $route = 'index.php?option=com_users&view=login' . $itemid; + + // Proceed to the login form. + $message = JText::_('COM_USERS_REMIND_REQUEST_SUCCESS'); + $this->setRedirect(JRoute::_($route, false), $message); + + return true; + } + + /** + * Method to resend a user. + * + * @return void + * + * @since 1.6 + */ + public function resend() + { + // Check for request forgeries + // $this->checkToken('post'); + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/user.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/user.php.evidence.json new file mode 100644 index 0000000..6468cfd --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/user.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7254", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/controllers/user.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/controllers/user.php)", + "original_sha256": "d7472a9cb222592b7799229831d00ed6e728d082fd5ed5be616404edb8ad275c", + "original_stat": { + "gid": 30037, + "mtime": 1557908559, + "size": 8730, + "uid": 12425 + }, + "rel_path": "components/com_users/controllers/user.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/html/users.php b/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/html/users.php new file mode 100644 index 0000000..6dbe477 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/html/users.php @@ -0,0 +1,251 @@ +sites->site as $site) + { + if ((string) $site->attributes()->url == $value) + { + $text = (string) $site; + break; + } + } + } + + $value = htmlspecialchars($value, ENT_COMPAT, 'UTF-8'); + + if (strpos($value, 'http') === 0) + { + return '' . $text . ''; + } + + return '' . $text . ''; + } + + /** + * Get the sanitized template style + * + * @param mixed $value Value of the field + * + * @return mixed String/void + * + * @since 1.6 + */ + public static function templatestyle($value) + { + if (empty($value)) + { + return static::value($value); + } + else + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('title') + ->from('#__template_styles') + ->where('id = ' . $db->quote($value)); + $db->setQuery($query); + $title = $db->loadResult(); + + if ($title) + { + return htmlspecialchars($title, ENT_COMPAT, 'UTF-8'); + } + else + { + return static::value(''); + } + } + } + + /** + * Get the sanitized language + * + * @param mixed $value Value of the field + * + * @return mixed String/void + * + * @since 1.6 + */ + public static function admin_language($value) + { + if (empty($value)) + { + return static::value($value); + } + else + { + $file = JLanguageHelper::getLanguagePath(JPATH_ADMINISTRATOR, $value) . '/' . $value . '.xml'; + + $result = null; + + if (is_file($file)) + { + $result = JLanguageHelper::parseXMLLanguageFile($file); + } + + if ($result) + { + return htmlspecialchars($result['name'], ENT_COMPAT, 'UTF-8'); + } + else + { + return static::value(''); + } + } + } + + /** + * Get the sanitized language + * + * @param mixed $value Value of the field + * + * @return mixed String/void + * + * @since 1.6 + */ + public static function language($value) + { + if (empty($value)) + { + return static::value($value); + } + else + { + $file = JLanguageHelper::getLanguagePath(JPATH_SITE, $value) . '/' . $value . '.xml'; + + $result = null; + + if (is_file($file)) + { + $result = JLanguageHelper::parseXMLLanguageFile($file); + } + + if ($result) + { + return htmlspecialchars($result['name'], ENT_COMPAT, 'UTF-8'); + } + else + { + return static::value(''); + } + } + } + + /** + * Get the sanitized editor name + * + * @param mixed $value Value of the field + * + * @return mixed String/void + * + * @since 1.6 + */ + public static function editor($value) + { + if (empty($value)) + { + return static::value($value); + } + else + { + $db = JFactory::getDbo(); + $lang = JFactory::getLanguage(); + $query = $db->getQuery(true) + ->select('name') + ->from('#__extensions') + ->where('element = ' . $db->quote($value)) + ->where('folder = ' . $db->quote('editors')); + $db->setQuery($query); + $title = $db->loadResult(); + + if ($title) + { + $lang->load("plg_editors_$value.sys", JPATH_ADMINISTRATOR, null, false, true) + || $lang->load("plg_editors_$value.sys", JPATH_PLUGINS . '/editors/' . $value, null, false, true); + $lang->load($title . '.sys'); + + return JText::_($title); + } + else + { + return static::value(''); + } + } + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/html/users.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/html/users.php.evidence.json new file mode 100644 index 0000000..16d383b --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/html/users.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7283", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/helpers/html/users.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/html/users.php)", + "original_sha256": "cb229ad16ba915a20aa22c49f2b5863cb4079cb5ce5fb3975b07b5caa161e786", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 4500, + "uid": 12425 + }, + "rel_path": "components/com_users/helpers/html/users.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/legacyrouter.php b/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/legacyrouter.php new file mode 100644 index 0000000..18f89b3 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/legacyrouter.php @@ -0,0 +1,309 @@ +router = $router; + } + + /** + * Preprocess the route for the com_users component + * + * @param array &$query An array of URL arguments + * + * @return void + * + * @since 3.6 + * @deprecated 4.0 + */ + public function preprocess(&$query) + { + } + + /** + * Build the route for the com_users component + * + * @param array &$query An array of URL arguments + * @param array &$segments The URL arguments to use to assemble the subsequent URL. + * + * @return void + * + * @since 3.6 + * @deprecated 4.0 + */ + public function build(&$query, &$segments) + { + // Declare static variables. + static $items; + static $default; + static $registration; + static $profile; + static $login; + static $remind; + static $resend; + static $reset; + + // Get the relevant menu items if not loaded. + if (empty($items)) + { + // Get all relevant menu items. + $items = $this->router->menu->getItems('component', 'com_users'); + + // Build an array of serialized query strings to menu item id mappings. + foreach ($items as $item) + { + if (empty($item->query['view'])) + { + continue; + } + + // Check to see if we have found the resend menu item. + if (empty($resend) && $item->query['view'] === 'resend') + { + $resend = $item->id; + + continue; + } + + // Check to see if we have found the reset menu item. + if (empty($reset) && $item->query['view'] === 'reset') + { + $reset = $item->id; + + continue; + } + + // Check to see if we have found the remind menu item. + if (empty($remind) && $item->query['view'] === 'remind') + { + $remind = $item->id; + + continue; + } + + // Check to see if we have found the login menu item. + if (empty($login) && $item->query['view'] === 'login') + { + $login = $item->id; + + continue; + } + + // Check to see if we have found the registration menu item. + if (empty($registration) && $item->query['view'] === 'registration') + { + $registration = $item->id; + + continue; + } + + // Check to see if we have found the profile menu item. + if (empty($profile) && $item->query['view'] === 'profile') + { + $profile = $item->id; + } + } + + // Set the default menu item to use for com_users if possible. + if ($profile) + { + $default = $profile; + } + elseif ($registration) + { + $default = $registration; + } + elseif ($login) + { + $default = $login; + } + } + + if (!empty($query['view'])) + { + switch ($query['view']) + { + case 'reset': + if ($query['Itemid'] = $reset) + { + unset($query['view']); + } + else + { + $query['Itemid'] = $default; + } + break; + + case 'resend': + if ($query['Itemid'] = $resend) + { + unset($query['view']); + } + else + { + $query['Itemid'] = $default; + } + break; + + case 'remind': + if ($query['Itemid'] = $remind) + { + unset($query['view']); + } + else + { + $query['Itemid'] = $default; + } + break; + + case 'login': + if ($query['Itemid'] = $login) + { + unset($query['view']); + } + else + { + $query['Itemid'] = $default; + } + break; + + case 'registration': + if ($query['Itemid'] = $registration) + { + unset($query['view']); + } + else + { + $query['Itemid'] = $default; + } + break; + + default: + case 'profile': + if (!empty($query['view'])) + { + $segments[] = $query['view']; + } + + unset($query['view']); + + if ($query['Itemid'] = $profile) + { + unset($query['view']); + } + else + { + $query['Itemid'] = $default; + } + + // Only append the user id if not "me". + $user = JFactory::getUser(); + + if (!empty($query['user_id']) && ($query['user_id'] != $user->id)) + { + $segments[] = $query['user_id']; + } + + unset($query['user_id']); + + break; + } + } + + $total = count($segments); + + for ($i = 0; $i < $total; $i++) + { + $segments[$i] = str_replace(':', '-', $segments[$i]); + } + } + + /** + * Parse the segments of a URL. + * + * @param array &$segments The segments of the URL to parse. + * @param array &$vars The URL attributes to be used by the application. + * + * @return void + * + * @since 3.6 + * @deprecated 4.0 + */ + public function parse(&$segments, &$vars) + { + $total = count($segments); + + for ($i = 0; $i < $total; $i++) + { + $segments[$i] = preg_replace('/-/', ':', $segments[$i], 1); + } + + // Only run routine if there are segments to parse. + if (count($segments) < 1) + { + return; + } + + // Get the package from the route segments. + $userId = array_pop($segments); + + if (!is_numeric($userId)) + { + $vars['view'] = 'profile'; + + return; + } + + if (is_numeric($userId)) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select($db->quoteName('id')) + ->from($db->quoteName('#__users')) + ->where($db->quoteName('id') . ' = ' . (int) $userId); + $db->setQuery($query); + $userId = $db->loadResult(); + } + + // Set the package id if present. + if ($userId) + { + // Set the package id. + $vars['user_id'] = (int) $userId; + + // Set the view to package if not already set. + if (empty($vars['view'])) + { + $vars['view'] = 'profile'; + } + } + else + { + JError::raiseError(404, JText::_('JGLOBAL_RESOURCE_NOT_FOUND')); + } + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/legacyrouter.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/legacyrouter.php.evidence.json new file mode 100644 index 0000000..5bf4c99 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/legacyrouter.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7281", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/helpers/legacyrouter.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/legacyrouter.php)", + "original_sha256": "e25f6683f53657c5f1f0f03e80126eb3acbc3b270dd26f3bcd8e16fc72f72343", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 6013, + "uid": 12425 + }, + "rel_path": "components/com_users/helpers/legacyrouter.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/route.php b/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/route.php new file mode 100644 index 0000000..3fe0322 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/route.php @@ -0,0 +1,199 @@ +getMenu()->getItems('component_id', $component->id); + + // If no items found, set to empty array. + if (!$items) + { + $items = array(); + } + } + + return $items; + } + + /** + * Method to get a route configuration for the login view. + * + * @return mixed Integer menu id on success, null on failure. + * + * @since 1.6 + * @deprecated 4.0 + */ + public static function getLoginRoute() + { + // Get the items. + $items = self::getItems(); + + // Search for a suitable menu id. + foreach ($items as $item) + { + if (isset($item->query['view']) && $item->query['view'] === 'login') + { + return $item->id; + } + } + + return null; + } + + /** + * Method to get a route configuration for the profile view. + * + * @return mixed Integer menu id on success, null on failure. + * + * @since 1.6 + * @deprecated 4.0 + */ + public static function getProfileRoute() + { + // Get the items. + $items = self::getItems(); + + // Search for a suitable menu id. + // Menu link can only go to users own profile. + + foreach ($items as $item) + { + if (isset($item->query['view']) && $item->query['view'] === 'profile') + { + return $item->id; + } + } + + return null; + } + + /** + * Method to get a route configuration for the registration view. + * + * @return mixed Integer menu id on success, null on failure. + * + * @since 1.6 + * @deprecated 4.0 + */ + public static function getRegistrationRoute() + { + // Get the items. + $items = self::getItems(); + + // Search for a suitable menu id. + foreach ($items as $item) + { + if (isset($item->query['view']) && $item->query['view'] === 'registration') + { + return $item->id; + } + } + + return null; + } + + /** + * Method to get a route configuration for the remind view. + * + * @return mixed Integer menu id on success, null on failure. + * + * @since 1.6 + * @deprecated 4.0 + */ + public static function getRemindRoute() + { + // Get the items. + $items = self::getItems(); + + // Search for a suitable menu id. + foreach ($items as $item) + { + if (isset($item->query['view']) && $item->query['view'] === 'remind') + { + return $item->id; + } + } + + return null; + } + + /** + * Method to get a route configuration for the resend view. + * + * @return mixed Integer menu id on success, null on failure. + * + * @since 1.6 + * @deprecated 4.0 + */ + public static function getResendRoute() + { + // Get the items. + $items = self::getItems(); + + // Search for a suitable menu id. + foreach ($items as $item) + { + if (isset($item->query['view']) && $item->query['view'] === 'resend') + { + return $item->id; + } + } + + return null; + } + + /** + * Method to get a route configuration for the reset view. + * + * @return mixed Integer menu id on success, null on failure. + * + * @since 1.6 + * @deprecated 4.0 + */ + public static function getResetRoute() + { + // Get the items. + $items = self::getItems(); + + // Search for a suitable menu id. + foreach ($items as $item) + { + if (isset($item->query['view']) && $item->query['view'] === 'reset') + { + return $item->id; + } + } + + return null; + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/route.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/route.php.evidence.json new file mode 100644 index 0000000..ae2cfa2 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/route.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7282", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/helpers/route.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/helpers/route.php)", + "original_sha256": "2f2d92b287b854fc6ad31c8168badc5938e39bec1f8b6202d4df348cd23a23f0", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 3867, + "uid": 12425 + }, + "rel_path": "components/com_users/helpers/route.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/layouts/joomla/form/renderfield.php b/var/www/hosting/archlinexp.eu/www/components/com_users/layouts/joomla/form/renderfield.php new file mode 100644 index 0000000..765f5bf --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/layouts/joomla/form/renderfield.php @@ -0,0 +1,60 @@ + 'auto', 'relative' => true)); +} + +$class = empty($options['class']) ? '' : ' ' . $options['class']; +$rel = empty($options['rel']) ? '' : ' ' . $options['rel']; + +/** + * @TODO: + * + * As mentioned in #8473 (https://github.com/joomla/joomla-cms/pull/8473), ... + * as long as we cannot access the field properties properly, this seems to + * be the way to go for now. + * + * On a side note: Parsing html is seldom a good idea. + * https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 + */ +preg_match('/class=\"([^\"]+)\"/i', $input, $match); + +$required = (strpos($input, 'aria-required="true"') !== false || (!empty($match[1]) && strpos($match[1], 'required') !== false)); +$typeOfSpacer = (strpos($label, 'spacer-lbl') !== false); + +?> + +
> + +
+ + + + +
+ +
+ +
+
diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/layouts/joomla/form/renderfield.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/layouts/joomla/form/renderfield.php.evidence.json new file mode 100644 index 0000000..2e4d205 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/layouts/joomla/form/renderfield.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7284", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/layouts/joomla/form/renderfield.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/layouts/joomla/form/renderfield.php)", + "original_sha256": "767cc86103a71d15914e028fc231d5b48ffb5cdc5bf6ab8ecc3e22bb73d9190b", + "original_stat": { + "gid": 30037, + "mtime": 1642534578, + "size": 1957, + "uid": 12425 + }, + "rel_path": "components/com_users/layouts/joomla/form/renderfield.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/profile.xml b/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/profile.xml new file mode 100644 index 0000000..eae3bb7 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/profile.xml @@ -0,0 +1,92 @@ + +
+
+ + + + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/profile.xml.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/profile.xml.evidence.json new file mode 100644 index 0000000..7f249fe --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/profile.xml.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7278", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/models/forms/profile.xml -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/profile.xml)", + "original_sha256": "6f217de7628ab4c162bef301a62851bd90557bc43062783410df850901f536ba", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 1914, + "uid": 12425 + }, + "rel_path": "components/com_users/models/forms/profile.xml", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/registration.xml b/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/registration.xml new file mode 100644 index 0000000..8cf8c2a --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/registration.xml @@ -0,0 +1,99 @@ + +
+
+ + + + + + + + + + + + + + + +
+
diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/registration.xml.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/registration.xml.evidence.json new file mode 100644 index 0000000..16589f1 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/registration.xml.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7277", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/models/forms/registration.xml -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/registration.xml)", + "original_sha256": "d8d90d9badd444b08bd7243d3621f6af3feaee137523c212b5b883883f805b7e", + "original_stat": { + "gid": 30037, + "mtime": 1541586989, + "size": 2079, + "uid": 12425 + }, + "rel_path": "components/com_users/models/forms/registration.xml", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/login.php b/var/www/hosting/archlinexp.eu/www/components/com_users/models/login.php new file mode 100644 index 0000000..a916e4b --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/login.php @@ -0,0 +1,112 @@ +loadForm('com_users.login', 'login', array('load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + return $form; + } + + /** + * Method to get the data that should be injected in the form. + * + * @return array The default data is an empty array. + * + * @since 1.6 + */ + protected function loadFormData() + { + // Check the session for previously entered login form data. + $app = JFactory::getApplication(); + $data = $app->getUserState('users.login.form.data', array()); + + $input = $app->input->getInputForRequestMethod(); + + // Check for return URL from the request first + if ($return = $input->get('return', '', 'BASE64')) + { + $data['return'] = base64_decode($return); + + if (!JUri::isInternal($data['return'])) + { + $data['return'] = ''; + } + } + + $app->setUserState('users.login.form.data', $data); + + $this->preprocessData('com_users.login', $data); + + return $data; + } + + /** + * Method to auto-populate the model state. + * + * Calling getState in this method will result in recursion. + * + * @return void + * + * @since 1.6 + */ + protected function populateState() + { + // Get the application object. + $params = JFactory::getApplication()->getParams('com_users'); + + // Load the parameters. + $this->setState('params', $params); + } + + /** + * Override JModelAdmin::preprocessForm to ensure the correct plugin group is loaded. + * + * @param JForm $form A JForm object. + * @param mixed $data The data expected for the form. + * @param string $group The name of the plugin group to import (defaults to "content"). + * + * @return void + * + * @since 1.6 + * @throws Exception if there is an error in the form event. + */ + protected function preprocessForm(JForm $form, $data, $group = 'user') + { + parent::preprocessForm($form, $data, $group); + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/login.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/models/login.php.evidence.json new file mode 100644 index 0000000..5a4d6a6 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/login.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7272", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/models/login.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/models/login.php)", + "original_sha256": "1bd545c9d69235efbd0ca01aa8e3fee5c0416f9d7e57647314f029d01c7bcb75", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 2737, + "uid": 12425 + }, + "rel_path": "components/com_users/models/login.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/profile.php b/var/www/hosting/archlinexp.eu/www/components/com_users/models/profile.php new file mode 100644 index 0000000..a987b61 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/profile.php @@ -0,0 +1,445 @@ + array('validate' => 'user') + ), $config + ); + + parent::__construct($config); + + // Load the helper and model used for two factor authentication + JLoader::register('UsersModelUser', JPATH_ADMINISTRATOR . '/components/com_users/models/user.php'); + JLoader::register('UsersHelper', JPATH_ADMINISTRATOR . '/components/com_users/helpers/users.php'); + } + + /** + * Method to check in a user. + * + * @param integer $userId The id of the row to check out. + * + * @return boolean True on success, false on failure. + * + * @since 1.6 + */ + public function checkin($userId = null) + { + // Get the user id. + $userId = (!empty($userId)) ? $userId : (int) $this->getState('user.id'); + + if ($userId) + { + // Initialise the table with JUser. + $table = JTable::getInstance('User'); + + // Attempt to check the row in. + if (!$table->checkin($userId)) + { + $this->setError($table->getError()); + + return false; + } + } + + return true; + } + + /** + * Method to check out a user for editing. + * + * @param integer $userId The id of the row to check out. + * + * @return boolean True on success, false on failure. + * + * @since 1.6 + */ + public function checkout($userId = null) + { + // Get the user id. + $userId = (!empty($userId)) ? $userId : (int) $this->getState('user.id'); + + if ($userId) + { + // Initialise the table with JUser. + $table = JTable::getInstance('User'); + + // Get the current user object. + $user = JFactory::getUser(); + + // Attempt to check the row out. + if (!$table->checkout($user->get('id'), $userId)) + { + $this->setError($table->getError()); + + return false; + } + } + + return true; + } + + /** + * Method to get the profile form data. + * + * The base form data is loaded and then an event is fired + * for users plugins to extend the data. + * + * @return mixed Data object on success, false on failure. + * + * @since 1.6 + */ + public function getData() + { + if ($this->data === null) + { + $userId = $this->getState('user.id'); + + // Initialise the table with JUser. + $this->data = new JUser($userId); + + // Set the base user data. + $this->data->email1 = $this->data->get('email'); + $this->data->email2 = $this->data->get('email'); + + // Override the base user data with any data in the session. + $temp = (array) JFactory::getApplication()->getUserState('com_users.edit.profile.data', array()); + + foreach ($temp as $k => $v) + { + $this->data->$k = $v; + } + + // Unset the passwords. + unset($this->data->password1, $this->data->password2); + + $registry = new Registry($this->data->params); + $this->data->params = $registry->toArray(); + } + + return $this->data; + } + + /** + * Method to get the profile form. + * + * The base form is loaded from XML and then an event is fired + * for users plugins to extend the form with extra fields. + * + * @param array $data An optional array of data for the form to interogate. + * @param boolean $loadData True if the form is to load its own data (default case), false if not. + * + * @return JForm A JForm object on success, false on failure + * + * @since 1.6 + */ + public function getForm($data = array(), $loadData = true) + { + // Get the form. + $form = $this->loadForm('com_users.profile', 'profile', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + // Check for username compliance and parameter set + $isUsernameCompliant = true; + $username = $loadData ? $form->getValue('username') : $this->loadFormData()->username; + + if ($username) + { + $isUsernameCompliant = !(preg_match('#[<>"\'%;()&\\\\]|\\.\\./#', $username) || strlen(utf8_decode($username)) < 2 + || trim($username) !== $username); + } + + $this->setState('user.username.compliant', $isUsernameCompliant); + + if ($isUsernameCompliant && !JComponentHelper::getParams('com_users')->get('change_login_name')) + { + $form->setFieldAttribute('username', 'class', ''); + $form->setFieldAttribute('username', 'filter', ''); + $form->setFieldAttribute('username', 'description', 'COM_USERS_PROFILE_NOCHANGE_USERNAME_DESC'); + $form->setFieldAttribute('username', 'validate', ''); + $form->setFieldAttribute('username', 'message', ''); + $form->setFieldAttribute('username', 'readonly', 'true'); + $form->setFieldAttribute('username', 'required', 'false'); + } + + // When multilanguage is set, a user's default site language should also be a Content Language + if (JLanguageMultilang::isEnabled()) + { + $form->setFieldAttribute('language', 'type', 'frontend_language', 'params'); + } + + // If the user needs to change their password, mark the password fields as required + if (JFactory::getUser()->requireReset) + { + $form->setFieldAttribute('password1', 'required', 'true'); + $form->setFieldAttribute('password2', 'required', 'true'); + } + + return $form; + } + + /** + * Method to get the data that should be injected in the form. + * + * @return mixed The data for the form. + * + * @since 1.6 + */ + protected function loadFormData() + { + $data = $this->getData(); + + $this->preprocessData('com_users.profile', $data, 'user'); + + return $data; + } + + /** + * Override preprocessForm to load the user plugin group instead of content. + * + * @param JForm $form A JForm object. + * @param mixed $data The data expected for the form. + * @param string $group The name of the plugin group to import (defaults to "content"). + * + * @return void + * + * @throws Exception if there is an error in the form event. + * + * @since 1.6 + */ + protected function preprocessForm(JForm $form, $data, $group = 'user') + { + if (JComponentHelper::getParams('com_users')->get('frontend_userparams')) + { + $form->loadFile('frontend', false); + + if (JFactory::getUser()->authorise('core.login.admin')) + { + $form->loadFile('frontend_admin', false); + } + } + + parent::preprocessForm($form, $data, $group); + } + + /** + * Method to auto-populate the model state. + * + * Note. Calling getState in this method will result in recursion. + * + * @return void + * + * @since 1.6 + */ + protected function populateState() + { + // Get the application object. + $params = JFactory::getApplication()->getParams('com_users'); + + // Get the user id. + $userId = JFactory::getApplication()->getUserState('com_users.edit.profile.id'); + $userId = !empty($userId) ? $userId : (int) JFactory::getUser()->get('id'); + + // Set the user id. + $this->setState('user.id', $userId); + + // Load the parameters. + $this->setState('params', $params); + } + + /** + * Method to save the form data. + * + * @param array $data The form data. + * + * @return mixed The user id on success, false on failure. + * + * @since 1.6 + */ + public function save($data) + { + $userId = (!empty($data['id'])) ? $data['id'] : (int) $this->getState('user.id'); + + $user = new JUser($userId); + + // Prepare the data for the user object. + $data['email'] = JStringPunycode::emailToPunycode($data['email1']); + $data['password'] = $data['password1']; + + // Unset the username if it should not be overwritten + $isUsernameCompliant = $this->getState('user.username.compliant'); + + if ($isUsernameCompliant && !JComponentHelper::getParams('com_users')->get('change_login_name')) + { + unset($data['username']); + } + + // Unset block and sendEmail so they do not get overwritten + unset($data['block'], $data['sendEmail']); + + // Handle the two factor authentication setup + if (array_key_exists('twofactor', $data)) + { + $model = new UsersModelUser; + + $twoFactorMethod = $data['twofactor']['method']; + + // Get the current One Time Password (two factor auth) configuration + $otpConfig = $model->getOtpConfig($userId); + + if ($twoFactorMethod !== 'none') + { + // Run the plugins + FOFPlatform::getInstance()->importPlugin('twofactorauth'); + $otpConfigReplies = FOFPlatform::getInstance()->runPlugins('onUserTwofactorApplyConfiguration', array($twoFactorMethod)); + + // Look for a valid reply + foreach ($otpConfigReplies as $reply) + { + if (!is_object($reply) || empty($reply->method) || ($reply->method != $twoFactorMethod)) + { + continue; + } + + $otpConfig->method = $reply->method; + $otpConfig->config = $reply->config; + + break; + } + + // Save OTP configuration. + $model->setOtpConfig($userId, $otpConfig); + + // Generate one time emergency passwords if required (depleted or not set) + if (empty($otpConfig->otep)) + { + $model->generateOteps($userId); + } + } + else + { + $otpConfig->method = 'none'; + $otpConfig->config = array(); + $model->setOtpConfig($userId, $otpConfig); + } + + // Unset the raw data + unset($data['twofactor']); + + // Reload the user record with the updated OTP configuration + $user->load($userId); + } + + // Bind the data. + if (!$user->bind($data)) + { + $this->setError(JText::sprintf('COM_USERS_PROFILE_BIND_FAILED', $user->getError())); + + return false; + } + + // Load the users plugin group. + JPluginHelper::importPlugin('user'); + + // Retrieve the user groups so they don't get overwritten + unset($user->groups); + $user->groups = JAccess::getGroupsByUser($user->id, false); + + // Store the data. + if (!$user->save()) + { + $this->setError($user->getError()); + + return false; + } + + // Some contexts may not use tags data at all, so we allow callers to disable loading tag data + if ($this->getState('load_tags', true)) + { + $user->tags = new JHelperTags; + $user->tags->getTagIds($user->id, 'com_users.user'); + } + + return $user->id; + } + + /** + * Gets the configuration forms for all two-factor authentication methods + * in an array. + * + * @param integer $user_id The user ID to load the forms for (optional) + * + * @return array + * + * @since 3.2 + */ + public function getTwofactorform($user_id = null) + { + $user_id = (!empty($user_id)) ? $user_id : (int) $this->getState('user.id'); + + $model = new UsersModelUser; + + $otpConfig = $model->getOtpConfig($user_id); + + FOFPlatform::getInstance()->importPlugin('twofactorauth'); + + return FOFPlatform::getInstance()->runPlugins('onUserTwofactorShowConfiguration', array($otpConfig, $user_id)); + } + + /** + * Returns the one time password (OTP) – a.k.a. two factor authentication – + * configuration for a particular user. + * + * @param integer $user_id The numeric ID of the user + * + * @return stdClass An object holding the OTP configuration for this user + * + * @since 3.2 + */ + public function getOtpConfig($user_id = null) + { + $user_id = (!empty($user_id)) ? $user_id : (int) $this->getState('user.id'); + + $model = new UsersModelUser; + + return $model->getOtpConfig($user_id); + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/profile.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/models/profile.php.evidence.json new file mode 100644 index 0000000..e22702e --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/profile.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7276", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/models/profile.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/models/profile.php)", + "original_sha256": "9120583bc9b1fc6d5c5b7a81fdd14c2d18250715cc89c672b743038cd62f7682", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 11442, + "uid": 12425 + }, + "rel_path": "components/com_users/models/profile.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/registration.php b/var/www/hosting/archlinexp.eu/www/components/com_users/models/registration.php new file mode 100644 index 0000000..bf522c0 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/registration.php @@ -0,0 +1,773 @@ + array('validate' => 'user') + ), + $config + ); + + parent::__construct($config); + } + + /** + * Method to activate a user account. + * + * @param string $token The activation token. + * + * @return mixed False on failure, user object on success. + * + * @since 1.6 + */ + public function activate($token) + { + $config = JFactory::getConfig(); + $userParams = JComponentHelper::getParams('com_users'); + $db = $this->getDbo(); + + // Get the user id based on the token. + $query = $db->getQuery(true); + $query->select($db->quoteName('id')) + ->from($db->quoteName('#__users')) + ->where($db->quoteName('activation') . ' = ' . $db->quote($token)) + ->where($db->quoteName('block') . ' = ' . 1) + ->where($db->quoteName('lastvisitDate') . ' = ' . $db->quote($db->getNullDate())); + $db->setQuery($query); + + try { + $userId = (int) $db->loadResult(); + } catch (RuntimeException $e) { + $this->setError(JText::sprintf('COM_USERS_DATABASE_ERROR', $e->getMessage()), 500); + + return false; + } + + // Check for a valid user id. + if (!$userId) { + $this->setError(JText::_('COM_USERS_ACTIVATION_TOKEN_NOT_FOUND')); + + return false; + } + + // Load the users plugin group. + JPluginHelper::importPlugin('user'); + + // Activate the user. + $user = JFactory::getUser($userId); + + // Admin activation is on and user is verifying their email + if (($userParams->get('useractivation') == 2) && !$user->getParam('activate', 0)) { + $uri = JUri::getInstance(); + + // Compile the admin notification mail values. + $data = $user->getProperties(); + $data['activation'] = JApplicationHelper::getHash(JUserHelper::genRandomPassword()); + $user->set('activation', $data['activation']); + $data['siteurl'] = JUri::base(); + $base = $uri->toString(array('scheme', 'user', 'pass', 'host', 'port')); + $data['activate'] = $base . JRoute::_('index.php?option=com_users&task=registration.activate&token=' . $data['activation'], false); + + // Remove administrator/ from activate URL in case this method is called from admin + if (JFactory::getApplication()->isClient('administrator')) { + $adminPos = strrpos($data['activate'], 'administrator/'); + $data['activate'] = substr_replace($data['activate'], '', $adminPos, 14); + } + + $data['fromname'] = $config->get('fromname'); + $data['mailfrom'] = $config->get('mailfrom'); + $data['sitename'] = $config->get('sitename'); + $user->setParam('activate', 1); + $emailSubject = JText::sprintf( + 'COM_USERS_EMAIL_ACTIVATE_WITH_ADMIN_ACTIVATION_SUBJECT', + $data['name'], + $data['sitename'] + ); + + $emailBody = JText::sprintf( + 'COM_USERS_EMAIL_ACTIVATE_WITH_ADMIN_ACTIVATION_BODY', + $data['sitename'], + $data['name'], + $data['email'], + $data['username'], + $data['activate'] + ); + + // Get all admin users + $query->clear() + ->select($db->quoteName(array('name', 'email', 'sendEmail', 'id'))) + ->from($db->quoteName('#__users')) + ->where($db->quoteName('sendEmail') . ' = 1') + ->where($db->quoteName('block') . ' = 0'); + + $db->setQuery($query); + + try { + $rows = $db->loadObjectList(); + } catch (RuntimeException $e) { + $this->setError(JText::sprintf('COM_USERS_DATABASE_ERROR', $e->getMessage()), 500); + + return false; + } + + // Send mail to all users with users creating permissions and receiving system emails + foreach ($rows as $row) { + $usercreator = JFactory::getUser($row->id); + + if ($usercreator->authorise('core.create', 'com_users')) { + $return = JFactory::getMailer()->sendMail($data['mailfrom'], $data['fromname'], $row->email, $emailSubject, $emailBody); + + // Check for an error. + if ($return !== true) { + $this->setError(JText::_('COM_USERS_REGISTRATION_ACTIVATION_NOTIFY_SEND_MAIL_FAILED')); + + return false; + } + } + } + } + // Admin activation is on and admin is activating the account + elseif (($userParams->get('useractivation') == 2) && $user->getParam('activate', 0)) { + $user->set('activation', ''); + $user->set('block', '0'); + + // Compile the user activated notification mail values. + $data = $user->getProperties(); + $user->setParam('activate', 0); + $data['fromname'] = $config->get('fromname'); + $data['mailfrom'] = $config->get('mailfrom'); + $data['sitename'] = $config->get('sitename'); + $data['siteurl'] = JUri::base(); + $emailSubject = JText::sprintf( + 'COM_USERS_EMAIL_ACTIVATED_BY_ADMIN_ACTIVATION_SUBJECT', + $data['name'], + $data['sitename'] + ); + + $emailBody = JText::sprintf( + 'COM_USERS_EMAIL_ACTIVATED_BY_ADMIN_ACTIVATION_BODY', + $data['name'], + $data['siteurl'], + $data['username'] + ); + + $return = JFactory::getMailer()->sendMail($data['mailfrom'], $data['fromname'], $data['email'], $emailSubject, $emailBody); + + // Check for an error. + if ($return !== true) { + $this->setError(JText::_('COM_USERS_REGISTRATION_ACTIVATION_NOTIFY_SEND_MAIL_FAILED')); + + return false; + } + } else { + $user->set('activation', ''); + $user->set('block', '0'); + } + + // Store the user object. + if (!$user->save()) { + $this->setError(JText::sprintf('COM_USERS_REGISTRATION_ACTIVATION_SAVE_FAILED', $user->getError())); + + return false; + } + + return $user; + } + + /** + * Method to get the registration form data. + * + * The base form data is loaded and then an event is fired + * for users plugins to extend the data. + * + * @return mixed Data object on success, false on failure. + * + * @since 1.6 + */ + public function getData() + { + if ($this->data === null) { + $this->data = new stdClass; + $app = JFactory::getApplication(); + $params = JComponentHelper::getParams('com_users'); + + // Override the base user data with any data in the session. + $temp = (array) $app->getUserState('com_users.registration.data', array()); + + // Don't load the data in this getForm call, or we'll call ourself + $form = $this->getForm(array(), false); + + foreach ($temp as $k => $v) { + // Here we could have a grouped field, let's check it + if (is_array($v)) { + $this->data->$k = new stdClass; + + foreach ($v as $key => $val) { + if ($form->getField($key, $k) !== false) { + $this->data->$k->$key = $val; + } + } + } + // Only merge the field if it exists in the form. + elseif ($form->getField($k) !== false) { + $this->data->$k = $v; + } + } + + // Get the groups the user should be added to after registration. + $this->data->groups = array(); + + // Get the default new user group, Registered if not specified. + $system = $params->get('new_usertype', 2); + + $this->data->groups[] = $system; + + // Unset the passwords. + unset($this->data->password1, $this->data->password2); + + // Get the dispatcher and load the users plugins. + $dispatcher = JEventDispatcher::getInstance(); + JPluginHelper::importPlugin('user'); + + // Trigger the data preparation event. + $results = $dispatcher->trigger('onContentPrepareData', array('com_users.registration', $this->data)); + + // Check for errors encountered while preparing the data. + if (count($results) && in_array(false, $results, true)) { + $this->setError($dispatcher->getError()); + $this->data = false; + } + } + + return $this->data; + } + + /** + * Method to get the registration form. + * + * The base form is loaded from XML and then an event is fired + * for users plugins to extend the form with extra fields. + * + * @param array $data An optional array of data for the form to interogate. + * @param boolean $loadData True if the form is to load its own data (default case), false if not. + * + * @return JForm A JForm object on success, false on failure + * + * @since 1.6 + */ + public function getForm($data = array(), $loadData = true) + { + // Get the form. + $form = $this->loadForm('com_users.registration', 'registration', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) { + return false; + } + + // When multilanguage is set, a user's default site language should also be a Content Language + if (JLanguageMultilang::isEnabled()) { + $form->setFieldAttribute('language', 'type', 'frontend_language', 'params'); + } + + return $form; + } + + /** + * Method to get the data that should be injected in the form. + * + * @return mixed The data for the form. + * + * @since 1.6 + */ + protected function loadFormData() + { + $data = $this->getData(); + + if (JLanguageMultilang::isEnabled() && empty($data->language)) { + $data->language = JFactory::getLanguage()->getTag(); + } + + $this->preprocessData('com_users.registration', $data); + + return $data; + } + + /** + * Override preprocessForm to load the user plugin group instead of content. + * + * @param JForm $form A JForm object. + * @param mixed $data The data expected for the form. + * @param string $group The name of the plugin group to import (defaults to "content"). + * + * @return void + * + * @since 1.6 + * @throws Exception if there is an error in the form event. + */ + protected function preprocessForm(JForm $form, $data, $group = 'user') + { + $userParams = JComponentHelper::getParams('com_users'); + + // Add the choice for site language at registration time + if ($userParams->get('site_language') == 1 && $userParams->get('frontend_userparams') == 1) { + $form->loadFile('sitelang', false); + } + + parent::preprocessForm($form, $data, $group); + } + + /** + * Method to auto-populate the model state. + * + * Note. Calling getState in this method will result in recursion. + * + * @return void + * + * @since 1.6 + */ + protected function populateState() + { + // Get the application object. + $app = JFactory::getApplication(); + $params = $app->getParams('com_users'); + + // Load the parameters. + $this->setState('params', $params); + } + + /** + * Method to save the form data. + * + * @param array $temp The form data. + * + * @return mixed The user id on success, false on failure. + * + * @since 1.6 + */ + public function register($temp) + { + $params = JComponentHelper::getParams('com_users'); + + // Initialise the table with JUser. + $user = new JUser; + $data = (array) $this->getData(); + + // Merge in the registration data. + foreach ($temp as $k => $v) { + $data[$k] = $v; + } + + // Prepare the data for the user object. + $data['email'] = JStringPunycode::emailToPunycode($data['email1']); + $data['name'] = $data['firstname']; // N.M. Az új registration form miatt kellett. Az emailben kiküldött név nem úgy jelent meg, ahogy kéne + $data['name'] .= ' '; + $data['name'] .= $data['lastname']; + $data['password'] = $data['password1']; + $useractivation = $params->get('useractivation'); + $sendpassword = $params->get('sendpassword', 1); + + // Check if the user needs to activate their account. + if (($useractivation == 1) || ($useractivation == 2)) { + $data['activation'] = JApplicationHelper::getHash(JUserHelper::genRandomPassword()); + $data['block'] = 1; + } + + // Bind the data. + if (!$user->bind($data)) { + $this->setError(JText::sprintf('COM_USERS_REGISTRATION_BIND_FAILED', $user->getError())); + + return false; + } + + // Load the users plugin group. + JPluginHelper::importPlugin('user'); + + // Store the data. + if (!$user->save()) { + $this->setError(JText::sprintf('COM_USERS_REGISTRATION_SAVE_FAILED', $user->getError())); + + return false; + } + + $config = JFactory::getConfig(); + $db = $this->getDbo(); + $query = $db->getQuery(true); + + // Compile the notification mail values. + $data = $user->getProperties(); + $data['fromname'] = $config->get('fromname'); + $data['mailfrom'] = $config->get('mailfrom'); + $data['sitename'] = $config->get('sitename'); + $data['siteurl'] = JUri::root(); + + // Handle account activation/confirmation emails. + if ($useractivation == 2) { + // Set the link to confirm the user email. + $uri = JUri::getInstance(); + $base = $uri->toString(array('scheme', 'user', 'pass', 'host', 'port')); + $data['activate'] = $base . JRoute::_('index.php?option=com_users&task=registration.activate&token=' . $data['activation'], false); + + // Remove administrator/ from activate URL in case this method is called from admin + if (JFactory::getApplication()->isClient('administrator')) { + $adminPos = strrpos($data['activate'], 'administrator/'); + $data['activate'] = substr_replace($data['activate'], '', $adminPos, 14); + } + + $emailSubject = JText::sprintf( + 'COM_USERS_EMAIL_ACCOUNT_DETAILS', + $data['name'], + $data['sitename'] + ); + + if ($sendpassword) { + $emailBody = JText::sprintf( + 'COM_USERS_EMAIL_REGISTERED_WITH_ADMIN_ACTIVATION_BODY', + $data['name'], + $data['sitename'], + $data['activate'], + $data['siteurl'], + $data['username'], + $data['password_clear'] + ); + } else { + $emailBody = JText::sprintf( + 'COM_USERS_EMAIL_REGISTERED_WITH_ADMIN_ACTIVATION_BODY_NOPW', + $data['name'], + $data['sitename'], + $data['activate'], + $data['siteurl'], + $data['username'] + ); + } + } elseif ($useractivation == 1) { + // Set the link to activate the user account. + $uri = JUri::getInstance(); + $base = $uri->toString(array('scheme', 'user', 'pass', 'host', 'port')); + $data['activate'] = $base . JRoute::_('index.php?option=com_users&task=registration.activate&token=' . $data['activation'], false); + + // Remove administrator/ from activate URL in case this method is called from admin + if (JFactory::getApplication()->isClient('administrator')) { + $adminPos = strrpos($data['activate'], 'administrator/'); + $data['activate'] = substr_replace($data['activate'], '', $adminPos, 14); + } + + $emailSubject = JText::sprintf( + 'COM_USERS_EMAIL_ACCOUNT_DETAILS', + $data['name'], + $data['sitename'] + ); + + if ($sendpassword) { + $emailBody = JText::sprintf( + 'COM_USERS_EMAIL_REGISTERED_WITH_ACTIVATION_BODY', + $data['name'], + $data['sitename'], + $data['activate'], + $data['siteurl'], + $data['username'], + $data['password_clear'] + ); + } else { + $emailBody = JText::sprintf( + 'COM_USERS_EMAIL_REGISTERED_WITH_ACTIVATION_BODY_NOPW', + $data['name'], + $data['sitename'], + $data['activate'], + $data['siteurl'], + $data['username'] + ); + } + } else { + $emailSubject = JText::sprintf( + 'COM_USERS_EMAIL_ACCOUNT_DETAILS', + $data['name'], + $data['sitename'] + ); + + if ($sendpassword) { + $emailBody = JText::sprintf( + 'COM_USERS_EMAIL_REGISTERED_BODY', + $data['name'], + $data['sitename'], + $data['siteurl'], + $data['username'], + $data['password_clear'] + ); + } else { + $emailBody = JText::sprintf( + 'COM_USERS_EMAIL_REGISTERED_BODY_NOPW', + $data['name'], + $data['sitename'], + $data['siteurl'] + ); + } + } + + // Send the registration email. + $return = JFactory::getMailer()->sendMail($data['mailfrom'], $data['fromname'], $data['email'], $emailSubject, $emailBody); + + // Send Notification mail to administrators + if (($params->get('useractivation') < 2) && ($params->get('mail_to_admin') == 1)) { + $emailSubject = JText::sprintf( + 'COM_USERS_EMAIL_ACCOUNT_DETAILS', + $data['name'], + $data['sitename'] + ); + + $emailBodyAdmin = JText::sprintf( + 'COM_USERS_EMAIL_REGISTERED_NOTIFICATION_TO_ADMIN_BODY', + $data['name'], + $data['username'], + $data['siteurl'] + ); + + // Get all admin users + $query->clear() + ->select($db->quoteName(array('name', 'email', 'sendEmail'))) + ->from($db->quoteName('#__users')) + ->where($db->quoteName('sendEmail') . ' = 1') + ->where($db->quoteName('block') . ' = 0'); + + $db->setQuery($query); + + try { + $rows = $db->loadObjectList(); + } catch (RuntimeException $e) { + $this->setError(JText::sprintf('COM_USERS_DATABASE_ERROR', $e->getMessage()), 500); + + return false; + } + + // Send mail to all superadministrators id + foreach ($rows as $row) { + $return = JFactory::getMailer()->sendMail($data['mailfrom'], $data['fromname'], $row->email, $emailSubject, $emailBodyAdmin); + + // Check for an error. + if ($return !== true) { + $this->setError(JText::_('COM_USERS_REGISTRATION_ACTIVATION_NOTIFY_SEND_MAIL_FAILED')); + + return false; + } + } + } + + // Check for an error. + if ($return !== true) { + $this->setError(JText::_('COM_USERS_REGISTRATION_SEND_MAIL_FAILED')); + + // Send a system message to administrators receiving system mails + $db = $this->getDbo(); + $query->clear() + ->select($db->quoteName('id')) + ->from($db->quoteName('#__users')) + ->where($db->quoteName('block') . ' = ' . (int) 0) + ->where($db->quoteName('sendEmail') . ' = ' . (int) 1); + $db->setQuery($query); + + try { + $userids = $db->loadColumn(); + } catch (RuntimeException $e) { + $this->setError(JText::sprintf('COM_USERS_DATABASE_ERROR', $e->getMessage()), 500); + + return false; + } + + if (count($userids) > 0) { + $jdate = new JDate; + + // Build the query to add the messages + foreach ($userids as $userid) { + $values = array( + $db->quote($userid), + $db->quote($userid), + $db->quote($jdate->toSql()), + $db->quote(JText::_('COM_USERS_MAIL_SEND_FAILURE_SUBJECT')), + $db->quote(JText::sprintf('COM_USERS_MAIL_SEND_FAILURE_BODY', $return, $data['username'])) + ); + $query->clear() + ->insert($db->quoteName('#__messages')) + ->columns($db->quoteName(array('user_id_from', 'user_id_to', 'date_time', 'subject', 'message'))) + ->values(implode(',', $values)); + $db->setQuery($query); + + try { + $db->execute(); + } catch (RuntimeException $e) { + $this->setError(JText::sprintf('COM_USERS_DATABASE_ERROR', $e->getMessage()), 500); + + return false; + } + } + } + + return false; + } + + if ($useractivation == 1) { + return 'useractivate'; + } elseif ($useractivation == 2) { + return 'adminactivate'; + } else { + return $user->id; + } + } + + private function checkCaptcha($response) + { + $secret = ''; + + if ($_SERVER['SERVER_NAME'] == 'www.archline.hu') + $secret = '6Lc8nh8TAAAAALeRGLDbjsr7Rh1qpQJkYXYO-P50'; + else + $secret = '6LeqnB8TAAAAAJTatP1dt8npqwDfJLz4_i9-rbNg'; + + $post_data = http_build_query( + array( + 'secret' => $secret, + 'response' => $response, + 'remoteip' => $_SERVER['REMOTE_ADDR'] + ) + ); + + $opts = array( + 'http' => + array( + 'method' => 'POST', + 'header' => 'Content-type: application/x-www-form-urlencoded', + 'content' => $post_data + ) + ); + + $context = stream_context_create($opts); + + $response = file_get_contents('https://www.google.com/recaptcha/api/siteverify', false, $context); + $result = json_decode($response); + + return $result->success; + } + + private function phoneCorrect(&$phone) + { + $phone = str_replace('-', '', $phone); + $phone = str_replace(' ', '', $phone); + $phone = str_replace('+', '', $phone); + $phone = str_replace('/', '', $phone); + $phone = str_replace('.', '', $phone); + $phone = str_replace(' ', '', $phone); + + return $phone; + } + + public function registerWithARCHLine($temp, &$message) + { + if (!class_exists('crm_hardlock')) require_once(JPATH_BASE . "/common_cadline_libraries/crm_hardlock.class.php"); + + $resource = new Resource($temp['country']); + + $captchaResult = $this->checkCaptcha($temp['captcha']); + + if (!$captchaResult) { + $message = $resource->getDlgString('10947'); + return false; + } + + $query = "SELECT * FROM www_archline_hu.jml_users WHERE username = ? OR email = ?"; + Database::getInstance()->query($query, array('ss', $temp['email'], $temp['email'])); + $res = Database::getInstance()->fetchNext(); + + if (!empty($res)) { + $message = $resource->getDlgString('10789'); + return false; + } + + if ($temp['password'] != $temp['password2']) { + $message = $resource->getDlgString('10792'); + return false; + } + + // Initialise the table with JUser. + $user = new JUser; + $data = (array) $this->getData(); + + // Merge in the registration data. + foreach ($temp as $k => $v) { + $data[$k] = $v; + } + + $user->bind($data); + + if (!$user->save()) { + $message = JText::sprintf('COM_USERS_REGISTRATION_SAVE_FAILED', $user->getError()); + return false; + } + + $profile_phone = array( + 'user_id' => $user->id, + 'profile_key' => 'profile.phone', + 'profile_value' => $temp['phone'], + 'ordering' => 7 + ); + + $profile_country = array( + 'user_id' => $user->id, + 'profile_key' => 'profile.country', + 'profile_value' => $temp['country'], + 'ordering' => 5 + ); + + Database::getInstance()->insert('www_archline_hu.jml_user_profiles', $profile_phone, 'issi'); + Database::getInstance()->insert('www_archline_hu.jml_user_profiles', $profile_country, 'issi'); + + $this->phoneCorrect($temp['phone']); + + $query = "SELECT * FROM www_archline_hu.jml_users WHERE id = ?"; + Database::getInstance()->query($query, array('i', $user->id)); + $jmlUser = Database::getInstance()->fetchNext(); + + Database::getInstance()->update( + 'cl_hlusers.users', + array( + 'strTel' => $temp['phone'], + 'nCtrID' => $temp['country'] + ), + array('nUserID' => $jmlUser['nUserID']), + 'sii' + ); + + $message = $resource->getDlgString('10793'); + return $user->id; + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/registration.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/models/registration.php.evidence.json new file mode 100644 index 0000000..b17cafe --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/registration.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7275", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/models/registration.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/models/registration.php)", + "original_sha256": "36f98683f5d734fd65acabfd638da4bff54196ce0f4fc2574c23ab9ef9b66ba6", + "original_stat": { + "gid": 30037, + "mtime": 1658220713, + "size": 22646, + "uid": 12425 + }, + "rel_path": "components/com_users/models/registration.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/remind.php b/var/www/hosting/archlinexp.eu/www/components/com_users/models/remind.php new file mode 100644 index 0000000..b0dfe86 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/remind.php @@ -0,0 +1,198 @@ +loadForm('com_users.remind', 'remind', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + return $form; + } + + /** + * Override preprocessForm to load the user plugin group instead of content. + * + * @param JForm $form A JForm object. + * @param mixed $data The data expected for the form. + * @param string $group The name of the plugin group to import (defaults to "content"). + * + * @return void + * + * @throws Exception if there is an error in the form event. + * + * @since 1.6 + */ + protected function preprocessForm(JForm $form, $data, $group = 'user') + { + parent::preprocessForm($form, $data, 'user'); + } + + /** + * Method to auto-populate the model state. + * + * Note. Calling getState in this method will result in recursion. + * + * @return void + * + * @since 1.6 + */ + protected function populateState() + { + // Get the application object. + $app = JFactory::getApplication(); + $params = $app->getParams('com_users'); + + // Load the parameters. + $this->setState('params', $params); + } + + /** + * Send the remind username email + * + * @param array $data Array with the data received from the form + * + * @return boolean + * + * @since 1.6 + */ + public function processRemindRequest($data) + { + // Get the form. + $form = $this->getForm(); + $data['email'] = JStringPunycode::emailToPunycode($data['email']); + + // Check for an error. + if (empty($form)) + { + return false; + } + + // Validate the data. + $data = $this->validate($form, $data); + + // Check for an error. + if ($data instanceof Exception) + { + return false; + } + + // Check the validation results. + if ($data === false) + { + // Get the validation messages from the form. + foreach ($form->getErrors() as $formError) + { + $this->setError($formError->getMessage()); + } + + return false; + } + + // Find the user id for the given email address. + $db = $this->getDbo(); + $query = $db->getQuery(true) + ->select('*') + ->from($db->quoteName('#__users')) + ->where($db->quoteName('email') . ' = ' . $db->quote($data['email'])); + + // Get the user id. + $db->setQuery($query); + + try + { + $user = $db->loadObject(); + } + catch (RuntimeException $e) + { + $this->setError(JText::sprintf('COM_USERS_DATABASE_ERROR', $e->getMessage()), 500); + + return false; + } + + // Check for a user. + if (empty($user)) + { + $this->setError(JText::_('COM_USERS_USER_NOT_FOUND')); + + return false; + } + + // Make sure the user isn't blocked. + if ($user->block) + { + $this->setError(JText::_('COM_USERS_USER_BLOCKED')); + + return false; + } + + $config = JFactory::getConfig(); + + // Assemble the login link. + $link = 'index.php?option=com_users&view=login'; + $mode = $config->get('force_ssl', 0) == 2 ? 1 : (-1); + + // Put together the email template data. + $data = ArrayHelper::fromObject($user); + $data['fromname'] = $config->get('fromname'); + $data['mailfrom'] = $config->get('mailfrom'); + $data['sitename'] = $config->get('sitename'); + $data['link_text'] = JRoute::_($link, false, $mode); + $data['link_html'] = JRoute::_($link, true, $mode); + + $subject = JText::sprintf( + 'COM_USERS_EMAIL_USERNAME_REMINDER_SUBJECT', + $data['sitename'] + ); + $body = JText::sprintf( + 'COM_USERS_EMAIL_USERNAME_REMINDER_BODY', + $data['sitename'], + $data['username'], + $data['link_text'] + ); + + // Send the password reset request email. + $return = JFactory::getMailer()->sendMail($data['mailfrom'], $data['fromname'], $user->email, $subject, $body); + + // Check for an error. + if ($return !== true) + { + $this->setError(JText::_('COM_USERS_MAIL_FAILED'), 500); + + return false; + } + + return true; + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/remind.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/models/remind.php.evidence.json new file mode 100644 index 0000000..d7b31c0 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/remind.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7273", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/models/remind.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/models/remind.php)", + "original_sha256": "25d8b3522b7b6fc0456dda7a2cc346c94e9b3889f4180d32f3e3101998791f1a", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 4537, + "uid": 12425 + }, + "rel_path": "components/com_users/models/remind.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/reset.php b/var/www/hosting/archlinexp.eu/www/components/com_users/models/reset.php new file mode 100644 index 0000000..a67ab66 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/reset.php @@ -0,0 +1,523 @@ +loadForm('com_users.reset_request', 'reset_request', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + return $form; + } + + /** + * Method to get the password reset complete form. + * + * @param array $data Data for the form. + * @param boolean $loadData True if the form is to load its own data (default case), false if not. + * + * @return JForm A JForm object on success, false on failure + * + * @since 1.6 + */ + public function getResetCompleteForm($data = array(), $loadData = true) + { + // Get the form. + $form = $this->loadForm('com_users.reset_complete', 'reset_complete', $options = array('control' => 'jform')); + + if (empty($form)) + { + return false; + } + + return $form; + } + + /** + * Method to get the password reset confirm form. + * + * @param array $data Data for the form. + * @param boolean $loadData True if the form is to load its own data (default case), false if not. + * + * @return JForm A JForm object on success, false on failure + * + * @since 1.6 + */ + public function getResetConfirmForm($data = array(), $loadData = true) + { + // Get the form. + $form = $this->loadForm('com_users.reset_confirm', 'reset_confirm', $options = array('control' => 'jform')); + + if (empty($form)) + { + return false; + } + else + { + $form->setValue('token', '', JFactory::getApplication()->input->get('token')); + } + + return $form; + } + + /** + * Override preprocessForm to load the user plugin group instead of content. + * + * @param JForm $form A JForm object. + * @param mixed $data The data expected for the form. + * @param string $group The name of the plugin group to import (defaults to "content"). + * + * @return void + * + * @throws Exception if there is an error in the form event. + * + * @since 1.6 + */ + protected function preprocessForm(JForm $form, $data, $group = 'user') + { + parent::preprocessForm($form, $data, $group); + } + + /** + * Method to auto-populate the model state. + * + * Note. Calling getState in this method will result in recursion. + * + * @return void + * + * @since 1.6 + */ + protected function populateState() + { + // Get the application object. + $params = JFactory::getApplication()->getParams('com_users'); + + // Load the parameters. + $this->setState('params', $params); + } + + /** + * Save the new password after reset is done + * + * @param array $data The data expected for the form. + * + * @return mixed Exception | JException | boolean + * + * @since 1.6 + */ + public function processResetComplete($data) + { + // Get the form. + $form = $this->getResetCompleteForm(); + $data['email'] = JStringPunycode::emailToPunycode($data['email']); + + // Check for an error. + if ($form instanceof Exception) + { + return $form; + } + + // Filter and validate the form data. + $data = $form->filter($data); + $return = $form->validate($data); + + // Check for an error. + if ($return instanceof Exception) + { + return $return; + } + + // Check the validation results. + if ($return === false) + { + // Get the validation messages from the form. + foreach ($form->getErrors() as $formError) + { + $this->setError($formError->getMessage()); + } + + return false; + } + + // Get the token and user id from the confirmation process. + $app = JFactory::getApplication(); + $token = $app->getUserState('com_users.reset.token', null); + $userId = $app->getUserState('com_users.reset.user', null); + + // Check the token and user id. + if (empty($token) || empty($userId)) + { + return new JException(JText::_('COM_USERS_RESET_COMPLETE_TOKENS_MISSING'), 403); + } + + // Get the user object. + $user = JUser::getInstance($userId); + + // Check for a user and that the tokens match. + if (empty($user) || $user->activation !== $token) + { + $this->setError(JText::_('COM_USERS_USER_NOT_FOUND')); + + return false; + } + + // Make sure the user isn't blocked. + if ($user->block) + { + $this->setError(JText::_('COM_USERS_USER_BLOCKED')); + + return false; + } + + // Check if the user is reusing the current password if required to reset their password + if ($user->requireReset == 1 && JUserHelper::verifyPassword($data['password1'], $user->password)) + { + $this->setError(JText::_('JLIB_USER_ERROR_CANNOT_REUSE_PASSWORD')); + + return false; + } + + // Update the user object. + $user->password = JUserHelper::hashPassword($data['password1']); + $user->activation = ''; + $user->password_clear = $data['password1']; + + // Save the user to the database. + if (!$user->save(true)) + { + return new JException(JText::sprintf('COM_USERS_USER_SAVE_FAILED', $user->getError()), 500); + } + + // Flush the user data from the session. + $app->setUserState('com_users.reset.token', null); + $app->setUserState('com_users.reset.user', null); + + return true; + } + + /** + * Receive the reset password request + * + * @param array $data The data expected for the form. + * + * @return mixed Exception | JException | boolean + * + * @since 1.6 + */ + public function processResetConfirm($data) + { + // Get the form. + $form = $this->getResetConfirmForm(); + $data['email'] = JStringPunycode::emailToPunycode($data['email']); + + // Check for an error. + if ($form instanceof Exception) + { + return $form; + } + + // Filter and validate the form data. + $data = $form->filter($data); + $return = $form->validate($data); + + // Check for an error. + if ($return instanceof Exception) + { + return $return; + } + + // Check the validation results. + if ($return === false) + { + // Get the validation messages from the form. + foreach ($form->getErrors() as $formError) + { + $this->setError($formError->getMessage()); + } + + return false; + } + + // Find the user id for the given token. + $db = $this->getDbo(); + $query = $db->getQuery(true) + ->select('activation') + ->select('id') + ->select('block') + ->from($db->quoteName('#__users')) + ->where($db->quoteName('username') . ' = ' . $db->quote($data['username'])); + + // Get the user id. + $db->setQuery($query); + + try + { + $user = $db->loadObject(); + } + catch (RuntimeException $e) + { + return new JException(JText::sprintf('COM_USERS_DATABASE_ERROR', $e->getMessage()), 500); + } + + // Check for a user. + if (empty($user)) + { + $this->setError(JText::_('COM_USERS_USER_NOT_FOUND')); + + return false; + } + + if (!$user->activation) + { + $this->setError(JText::_('COM_USERS_USER_NOT_FOUND')); + + return false; + } + + // Verify the token + if (!JUserHelper::verifyPassword($data['token'], $user->activation)) + { + $this->setError(JText::_('COM_USERS_USER_NOT_FOUND')); + + return false; + } + + // Make sure the user isn't blocked. + if ($user->block) + { + $this->setError(JText::_('COM_USERS_USER_BLOCKED')); + + return false; + } + + // Push the user data into the session. + $app = JFactory::getApplication(); + $app->setUserState('com_users.reset.token', $user->activation); + $app->setUserState('com_users.reset.user', $user->id); + + return true; + } + + /** + * Method to start the password reset process. + * + * @param array $data The data expected for the form. + * + * @return mixed Exception | JException | boolean + * + * @since 1.6 + */ + public function processResetRequest($data) + { + $config = JFactory::getConfig(); + + // Get the form. + $form = $this->getForm(); + + $data['email'] = JStringPunycode::emailToPunycode($data['email']); + + // Check for an error. + if ($form instanceof Exception) + { + return $form; + } + + // Filter and validate the form data. + $data = $form->filter($data); + $return = $form->validate($data); + + // Check for an error. + if ($return instanceof Exception) + { + return $return; + } + + // Check the validation results. + if ($return === false) + { + // Get the validation messages from the form. + foreach ($form->getErrors() as $formError) + { + $this->setError($formError->getMessage()); + } + + return false; + } + + // Find the user id for the given email address. + $db = $this->getDbo(); + $query = $db->getQuery(true) + ->select('id') + ->from($db->quoteName('#__users')) + ->where($db->quoteName('email') . ' = ' . $db->quote($data['email'])); + + // Get the user object. + $db->setQuery($query); + + try + { + $userId = $db->loadResult(); + } + catch (RuntimeException $e) + { + $this->setError(JText::sprintf('COM_USERS_DATABASE_ERROR', $e->getMessage()), 500); + + return false; + } + + // Check for a user. + if (empty($userId)) + { + $this->setError(JText::_('COM_USERS_INVALID_EMAIL')); + + return false; + } + + // Get the user object. + $user = JUser::getInstance($userId); + + // Make sure the user isn't blocked. + if ($user->block) + { + $this->setError(JText::_('COM_USERS_USER_BLOCKED')); + + return false; + } + + // Make sure the user isn't a Super Admin. + if ($user->authorise('core.admin')) + { + $this->setError(JText::_('COM_USERS_REMIND_SUPERADMIN_ERROR')); + + return false; + } + + // Make sure the user has not exceeded the reset limit + if (!$this->checkResetLimit($user)) + { + $resetLimit = (int) JFactory::getApplication()->getParams()->get('reset_time'); + $this->setError(JText::plural('COM_USERS_REMIND_LIMIT_ERROR_N_HOURS', $resetLimit)); + + return false; + } + + // Set the confirmation token. + $token = JApplicationHelper::getHash(JUserHelper::genRandomPassword()); + $hashedToken = JUserHelper::hashPassword($token); + + $user->activation = $hashedToken; + + // Save the user to the database. + if (!$user->save(true)) + { + return new JException(JText::sprintf('COM_USERS_USER_SAVE_FAILED', $user->getError()), 500); + } + + // Assemble the password reset confirmation link. + $mode = $config->get('force_ssl', 0) == 2 ? 1 : (-1); + $link = 'index.php?option=com_users&view=reset&layout=confirm&token=' . $token; + + // Put together the email template data. + $data = $user->getProperties(); + $data['fromname'] = $config->get('fromname'); + $data['mailfrom'] = $config->get('mailfrom'); + $data['sitename'] = $config->get('sitename'); + $data['link_text'] = JRoute::_($link, false, $mode); + $data['link_html'] = JRoute::_($link, true, $mode); + $data['token'] = $token; + + $subject = JText::sprintf( + 'COM_USERS_EMAIL_PASSWORD_RESET_SUBJECT', + $data['sitename'] + ); + + $body = JText::sprintf( + 'COM_USERS_EMAIL_PASSWORD_RESET_BODY', + $data['sitename'], + $data['token'], + $data['link_text'] + ); + + // Send the password reset request email. + $return = JFactory::getMailer()->sendMail($data['mailfrom'], $data['fromname'], $user->email, $subject, $body); + + // Check for an error. + if ($return !== true) + { + return new JException(JText::_('COM_USERS_MAIL_FAILED'), 500); + } + + return true; + } + + /** + * Method to check if user reset limit has been exceeded within the allowed time period. + * + * @param JUser $user User doing the password reset + * + * @return boolean true if user can do the reset, false if limit exceeded + * + * @since 2.5 + */ + public function checkResetLimit($user) + { + $params = JFactory::getApplication()->getParams(); + $maxCount = (int) $params->get('reset_count'); + $resetHours = (int) $params->get('reset_time'); + $result = true; + + $lastResetTime = strtotime($user->lastResetTime) ?: 0; + $hoursSinceLastReset = (strtotime(JFactory::getDate()->toSql()) - $lastResetTime) / 3600; + + if ($hoursSinceLastReset > $resetHours) + { + // If it's been long enough, start a new reset count + $user->lastResetTime = JFactory::getDate()->toSql(); + $user->resetCount = 1; + } + elseif ($user->resetCount < $maxCount) + { + // If we are under the max count, just increment the counter + ++$user->resetCount; + } + else + { + // At this point, we know we have exceeded the maximum resets for the time period + $result = false; + } + + return $result; + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/reset.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/models/reset.php.evidence.json new file mode 100644 index 0000000..7073388 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/reset.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7274", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/models/reset.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/models/reset.php)", + "original_sha256": "f948b6a494c8fe051b43bff9f12801d462e4d22f37607da2c5b3b6a7886dcd72", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 12692, + "uid": 12425 + }, + "rel_path": "components/com_users/models/reset.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/loginuniquefield.php b/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/loginuniquefield.php new file mode 100644 index 0000000..45b6b21 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/loginuniquefield.php @@ -0,0 +1,56 @@ +` tag for the form field object. + * @param mixed $value The form field value to validate. + * @param string $group The field name group control value. This acts as an array container for the field. + * For example if the field has name="foo" and the group value is set to "bar" then the + * full field name would end up being "bar[foo]". + * @param Registry $input An optional Registry object with the entire data set to validate against the entire form. + * @param JForm $form The form object for which the field is being tested. + * + * @return boolean True if the value is valid, false otherwise. + * + * @since 3.6 + */ + public function test(SimpleXMLElement $element, $value, $group = null, Registry $input = null, JForm $form = null) + { + $loginRedirectUrl = $input['params']->login_redirect_url; + $loginRedirectMenuitem = $input['params']->login_redirect_menuitem; + + if ($form === null) + { + throw new InvalidArgumentException(sprintf('The value for $form must not be null in %s', get_class($this))); + } + + if ($input === null) + { + throw new InvalidArgumentException(sprintf('The value for $input must not be null in %s', get_class($this))); + } + + return true; + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/loginuniquefield.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/loginuniquefield.php.evidence.json new file mode 100644 index 0000000..9fab0e2 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/loginuniquefield.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7279", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/models/rules/loginuniquefield.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/loginuniquefield.php)", + "original_sha256": "70dfe2a0662c32f12e612c1d5785006673319ec19766651ab15aefb880a2c5f2", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 2134, + "uid": 12425 + }, + "rel_path": "components/com_users/models/rules/loginuniquefield.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/logoutuniquefield.php b/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/logoutuniquefield.php new file mode 100644 index 0000000..6a9eaf4 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/logoutuniquefield.php @@ -0,0 +1,56 @@ +` tag for the form field object. + * @param mixed $value The form field value to validate. + * @param string $group The field name group control value. This acts as an array container for the field. + * For example if the field has name="foo" and the group value is set to "bar" then the + * full field name would end up being "bar[foo]". + * @param Registry $input An optional Registry object with the entire data set to validate against the entire form. + * @param JForm $form The form object for which the field is being tested. + * + * @return boolean True if the value is valid, false otherwise. + * + * @since 3.6 + */ + public function test(SimpleXMLElement $element, $value, $group = null, Registry $input = null, JForm $form = null) + { + $logoutRedirectUrl = $input['params']->logout_redirect_url; + $logoutRedirectMenuitem = $input['params']->logout_redirect_menuitem; + + if ($form === null) + { + throw new InvalidArgumentException(sprintf('The value for $form must not be null in %s', get_class($this))); + } + + if ($input === null) + { + throw new InvalidArgumentException(sprintf('The value for $input must not be null in %s', get_class($this))); + } + + return true; + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/logoutuniquefield.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/logoutuniquefield.php.evidence.json new file mode 100644 index 0000000..d774ad8 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/logoutuniquefield.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7280", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/models/rules/logoutuniquefield.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/logoutuniquefield.php)", + "original_sha256": "9bc602cb398ce792eafb70d3cba2fa732d6bffeb2bf88afc05de9e507334c095", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 2139, + "uid": 12425 + }, + "rel_path": "components/com_users/models/rules/logoutuniquefield.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/router.php b/var/www/hosting/archlinexp.eu/www/components/com_users/router.php new file mode 100644 index 0000000..7e9e02d --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/router.php @@ -0,0 +1,89 @@ +registerView(new JComponentRouterViewconfiguration('login')); + $profile = new JComponentRouterViewconfiguration('profile'); + $profile->addLayout('edit'); + $this->registerView($profile); + $this->registerView(new JComponentRouterViewconfiguration('registration')); + $this->registerView(new JComponentRouterViewconfiguration('remind')); + $this->registerView(new JComponentRouterViewconfiguration('reset')); + + parent::__construct($app, $menu); + + $this->attachRule(new JComponentRouterRulesMenu($this)); + + $params = JComponentHelper::getParams('com_users'); + + if ($params->get('sef_advanced', 0)) + { + $this->attachRule(new JComponentRouterRulesStandard($this)); + $this->attachRule(new JComponentRouterRulesNomenu($this)); + } + else + { + JLoader::register('UsersRouterRulesLegacy', __DIR__ . '/helpers/legacyrouter.php'); + $this->attachRule(new UsersRouterRulesLegacy($this)); + } + } +} + +/** + * Users router functions + * + * These functions are proxys for the new router interface + * for old SEF extensions. + * + * @param array &$query REQUEST query + * + * @return array Segments of the SEF url + * + * @deprecated 4.0 Use Class based routers instead + */ +function usersBuildRoute(&$query) +{ + $app = JFactory::getApplication(); + $router = new UsersRouter($app, $app->getMenu()); + + return $router->build($query); +} + +/** + * Convert SEF URL segments into query variables + * + * @param array $segments Segments in the current URL + * + * @return array Query variables + * + * @deprecated 4.0 Use Class based routers instead + */ +function usersParseRoute($segments) +{ + $app = JFactory::getApplication(); + $router = new UsersRouter($app, $app->getMenu()); + + return $router->parse($segments); +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/router.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/router.php.evidence.json new file mode 100644 index 0000000..473a34e --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/router.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7253", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/router.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/router.php)", + "original_sha256": "2b9acf14b84908cd85f8ffface816d5c7124f3226088696dccec501054773253", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 2326, + "uid": 12425 + }, + "rel_path": "components/com_users/router.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/users.php b/var/www/hosting/archlinexp.eu/www/components/com_users/users.php new file mode 100644 index 0000000..1213c3a --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/users.php @@ -0,0 +1,16 @@ +execute(JFactory::getApplication()->input->get('task', 'display')); +$controller->redirect(); diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/users.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/users.php.evidence.json new file mode 100644 index 0000000..eed4ef3 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/users.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7251", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/users.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/users.php)", + "original_sha256": "6ed1fd07fc85fc4f09fd85926ce729ad711577f7cc3ceaf551c748b07dd2ae5c", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 508, + "uid": 12425 + }, + "rel_path": "components/com_users/users.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.php b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.php new file mode 100644 index 0000000..7db00b2 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.php @@ -0,0 +1,23 @@ +user->get('cookieLogin'); + +if (!empty($cookieLogin) || $this->user->get('guest')) +{ + // The user is not logged in or needs to provide a password. + echo $this->loadTemplate('login'); +} +else +{ + // The user is already logged in. + echo $this->loadTemplate('logout'); +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.php.evidence.json new file mode 100644 index 0000000..88ed122 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7269", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/views/login/tmpl/default.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.php)", + "original_sha256": "8dac9ace51133f1eea7a524ca6dd8de9fc5effedd7c5bb2b5f5562ccd2257efc", + "original_stat": { + "gid": 30037, + "mtime": 1552900021, + "size": 554, + "uid": 12425 + }, + "rel_path": "components/com_users/views/login/tmpl/default.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.xml b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.xml new file mode 100644 index 0000000..92ca4b4 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.xml @@ -0,0 +1,166 @@ + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.xml.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.xml.evidence.json new file mode 100644 index 0000000..58cb3e3 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.xml.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7270", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/views/login/tmpl/default.xml -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.xml)", + "original_sha256": "1e40888b8d147a0130bca03085edf7f94e97da2ed09e2aa4b6dfe41282162ecc", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 4166, + "uid": 12425 + }, + "rel_path": "components/com_users/views/login/tmpl/default.xml", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_login.php b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_login.php new file mode 100644 index 0000000..cd774aa --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_login.php @@ -0,0 +1,106 @@ + +
+ params->get('show_page_heading')) : ?> + + + params->get('logindescription_show') == 1 && str_replace(' ', '', $this->params->get('login_description')) != '') || $this->params->get('login_image') != '') : ?> + + +
+
+ form->getFieldset('credentials') as $field) : ?> + hidden) : ?> +
+
+ label; ?> +
+
+ input; ?> +
+
+ + + tfa) : ?> +
+
+ form->getField('secretkey')->label; ?> +
+
+ form->getField('secretkey')->input; ?> +
+
+ + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ form->getValue('return', '', $this->params->get('login_redirect_url', $this->params->get('login_redirect_menuitem'))); ?> + + +
+
+
+
+ +
\ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_login.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_login.php.evidence.json new file mode 100644 index 0000000..a940a21 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_login.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7271", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/views/login/tmpl/default_login.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_login.php)", + "original_sha256": "f619bd9d8abc8c0b2766659057d744280be80ff87f1705b5c23c9e74a8f6d6ed", + "original_stat": { + "gid": 30037, + "mtime": 1565006708, + "size": 3818, + "uid": 12425 + }, + "rel_path": "components/com_users/views/login/tmpl/default_login.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_logout.php b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_logout.php new file mode 100644 index 0000000..afec2b4 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_logout.php @@ -0,0 +1,49 @@ + +
+ params->get('show_page_heading')) : ?> + + + params->get('logoutdescription_show') == 1 && str_replace(' ', '', $this->params->get('logout_description')) != '')|| $this->params->get('logout_image') != '') : ?> +
+ + params->get('logoutdescription_show') == 1) : ?> + params->get('logout_description'); ?> + + params->get('logout_image') != '') : ?> + <?php echo JText::_('COM_USER_LOGOUT_IMAGE_ALT'); ?> + + params->get('logoutdescription_show') == 1 && str_replace(' ', '', $this->params->get('logout_description')) != '')|| $this->params->get('logout_image') != '') : ?> +
+ +
+
+
+ +
+
+ params->get('logout_redirect_url')) : ?> + + + + + +
+
diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_logout.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_logout.php.evidence.json new file mode 100644 index 0000000..2795708 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_logout.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7268", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/views/login/tmpl/default_logout.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_logout.php)", + "original_sha256": "17b5b52ed420d182ca4d96cdc494e204f3dfe024955ae4d91eaf68537daf1f52", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 2199, + "uid": 12425 + }, + "rel_path": "components/com_users/views/login/tmpl/default_logout.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/view.html.php b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/view.html.php new file mode 100644 index 0000000..c7d071e --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/view.html.php @@ -0,0 +1,131 @@ +user = JFactory::getUser(); + $this->form = $this->get('Form'); + $this->state = $this->get('State'); + $this->params = $this->state->get('params'); + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + JError::raiseError(500, implode('
', $errors)); + + return false; + } + + // Check for layout override + $active = JFactory::getApplication()->getMenu()->getActive(); + + if (isset($active->query['layout'])) + { + $this->setLayout($active->query['layout']); + } + + $tfa = JAuthenticationHelper::getTwoFactorMethods(); + $this->tfa = is_array($tfa) && count($tfa) > 1; + + // Escape strings for HTML output + $this->pageclass_sfx = htmlspecialchars($this->params->get('pageclass_sfx'), ENT_COMPAT, 'UTF-8'); + + $this->prepareDocument(); + + parent::display($tpl); + } + + /** + * Prepares the document + * + * @return void + * + * @since 1.6 + */ + protected function prepareDocument() + { + $app = JFactory::getApplication(); + $menus = $app->getMenu(); + $user = JFactory::getUser(); + $login = $user->get('guest') ? true : false; + $title = null; + + // Because the application sets a default page title, + // we need to get it from the menu item itself + $menu = $menus->getActive(); + + if ($menu) + { + $this->params->def('page_heading', $this->params->get('page_title', $menu->title)); + } + else + { + $this->params->def('page_heading', $login ? JText::_('JLOGIN') : JText::_('JLOGOUT')); + } + + $title = $this->params->get('page_title', ''); + + if (empty($title)) + { + $title = $app->get('sitename'); + } + elseif ($app->get('sitename_pagetitles', 0) == 1) + { + $title = JText::sprintf('JPAGETITLE', $app->get('sitename'), $title); + } + elseif ($app->get('sitename_pagetitles', 0) == 2) + { + $title = JText::sprintf('JPAGETITLE', $title, $app->get('sitename')); + } + + $this->document->setTitle($title); + + if ($this->params->get('menu-meta_description')) + { + $this->document->setDescription($this->params->get('menu-meta_description')); + } + + if ($this->params->get('menu-meta_keywords')) + { + $this->document->setMetadata('keywords', $this->params->get('menu-meta_keywords')); + } + + if ($this->params->get('robots')) + { + $this->document->setMetadata('robots', $this->params->get('robots')); + } + } +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/view.html.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/view.html.php.evidence.json new file mode 100644 index 0000000..77eedce --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/view.html.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7267", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/views/login/view.html.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/views/login/view.html.php)", + "original_sha256": "81388b133b1d59d485333ab97724d1a1d3616606f055d863da72bc0a9f0fbea3", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 3040, + "uid": 12425 + }, + "rel_path": "components/com_users/views/login/view.html.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default.php b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default.php new file mode 100644 index 0000000..7532151 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default.php @@ -0,0 +1,34 @@ + +
+ params->get('show_page_heading')) : ?> + + + id == $this->data->id) : ?> + + + loadTemplate('core'); ?> + loadTemplate('params'); ?> + loadTemplate('custom'); ?> +
diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default.php.evidence.json new file mode 100644 index 0000000..94fea58 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7260", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/views/profile/tmpl/default.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default.php)", + "original_sha256": "d4133100827716d2da1eb9c60343fb744f2183367c917139a1767681ac200b17", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 1059, + "uid": 12425 + }, + "rel_path": "components/com_users/views/profile/tmpl/default.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_core.php b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_core.php new file mode 100644 index 0000000..a5bbd19 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_core.php @@ -0,0 +1,49 @@ + +
+ + + +
+
+ +
+
+ data->name; ?> +
+
+ +
+
+ data->username, ENT_COMPAT, 'UTF-8'); ?> +
+
+ +
+
+ data->registerDate, JText::_('DATE_FORMAT_LC1')); ?> +
+
+ +
+ data->lastvisitDate != $this->db->getNullDate()) : ?> +
+ data->lastvisitDate, JText::_('DATE_FORMAT_LC1')); ?> +
+ +
+ +
+ +
+
diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_core.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_core.php.evidence.json new file mode 100644 index 0000000..adb74f3 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_core.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7263", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/views/profile/tmpl/default_core.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_core.php)", + "original_sha256": "dc8e27c5cf90263c3221ac79542f92ac1e7571cedaa42e6d2a9ad8d99f288765", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 1306, + "uid": 12425 + }, + "rel_path": "components/com_users/views/profile/tmpl/default_core.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_custom.php b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_custom.php new file mode 100644 index 0000000..92d1a54 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_custom.php @@ -0,0 +1,70 @@ +form->getFieldsets(); + +if (isset($fieldsets['core'])) +{ + unset($fieldsets['core']); +} + +if (isset($fieldsets['params'])) +{ + unset($fieldsets['params']); +} + +$tmp = isset($this->data->jcfields) ? $this->data->jcfields : array(); +$customFields = array(); + +foreach ($tmp as $customField) +{ + $customFields[$customField->name] = $customField; +} + +?> + $fieldset) : ?> + form->getFieldset($group); ?> + +
+ label) && ($legend = trim(JText::_($fieldset->label))) !== '') : ?> + + + description) && trim($fieldset->description)) : ?> +

escape(JText::_($fieldset->description)); ?>

+ +
+ + hidden && $field->type !== 'Spacer') : ?> +
+ title; ?> +
+
+ fieldname, $customFields)) : ?> + fieldname]->value) ? $customFields[$field->fieldname]->value : JText::_('COM_USERS_PROFILE_VALUE_NOT_FOUND'); ?> + id)) : ?> + id, $field->value); ?> + fieldname)) : ?> + fieldname, $field->value); ?> + type)) : ?> + type, $field->value); ?> + + value); ?> + +
+ + +
+
+ + diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_custom.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_custom.php.evidence.json new file mode 100644 index 0000000..2793747 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_custom.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7261", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/views/profile/tmpl/default_custom.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_custom.php)", + "original_sha256": "9f2af47de5012a4c1fd0b79ff93f806b85c9c96ba7ea7132f1fb0004a1cf751f", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 2452, + "uid": 12425 + }, + "rel_path": "components/com_users/views/profile/tmpl/default_custom.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_params.php b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_params.php new file mode 100644 index 0000000..cf11a1f --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_params.php @@ -0,0 +1,40 @@ + +form->getFieldset('params'); ?> + +
+ +
+ + hidden) : ?> +
+ title; ?> +
+
+ id)) : ?> + id, $field->value); ?> + fieldname)) : ?> + fieldname, $field->value); ?> + type)) : ?> + type, $field->value); ?> + + value); ?> + +
+ + +
+
+ diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_params.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_params.php.evidence.json new file mode 100644 index 0000000..de4badc --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_params.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7264", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/views/profile/tmpl/default_params.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_params.php)", + "original_sha256": "b206251975c81b9896dabbdbd16f56225ed1fb582d1ae8053ce397dcbd3381f3", + "original_stat": { + "gid": 30037, + "mtime": 1533967367, + "size": 1331, + "uid": 12425 + }, + "rel_path": "components/com_users/views/profile/tmpl/default_params.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/registration/tmpl/default.php b/var/www/hosting/archlinexp.eu/www/components/com_users/views/registration/tmpl/default.php new file mode 100644 index 0000000..5bf4bde --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/registration/tmpl/default.php @@ -0,0 +1,448 @@ + + + + + + + + + +
+ params->get('show_page_heading')) : ?> + + +
+ + form->getFieldsets() as $fieldset) : ?> + form->getFieldset($fieldset->name); ?> + +
+ + label)) : ?> + label); ?> + + + + + hidden) : ?> + input; ?> + +
+
+ label; ?> + required && $field->type !== 'Spacer') : ?> + + +
+
+ input; ?> +
+
+ + +
+ + +
+
+ +
+
+ +
Please use a valid phone number
+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ (optional) +
+
+ +
+
+
+
+ (optional) +
+
+ +
+
+
+ + +
+
+ +
+
+
+ +
+
+ + + + + + +
+
+ + +
+
+ + \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/components/com_users/views/registration/tmpl/default.php.evidence.json b/var/www/hosting/archlinexp.eu/www/components/com_users/views/registration/tmpl/default.php.evidence.json new file mode 100644 index 0000000..fdff371 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/components/com_users/views/registration/tmpl/default.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7265", + "log_excerpt": "[quarantine] www.archlinexp.eu:components/com_users/views/registration/tmpl/default.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/components/com_users/views/registration/tmpl/default.php)", + "original_sha256": "c362b87f0b31a19b551012f06fcde8b00d0eacda164c95a95b87f3f467426b6f", + "original_stat": { + "gid": 30037, + "mtime": 1682582236, + "size": 19437, + "uid": 12425 + }, + "rel_path": "components/com_users/views/registration/tmpl/default.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/libraries/cms/html/behavior.php b/var/www/hosting/archlinexp.eu/www/libraries/cms/html/behavior.php new file mode 100644 index 0000000..a30c7c5 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/libraries/cms/html/behavior.php @@ -0,0 +1,1002 @@ + 'auto', 'relative' => true, 'detectDebug' => $debug)); + } + + //JHtml::_('script', 'system/mootools-' . $type . '.js', array('version' => 'auto', 'relative' => true, 'detectDebug' => $debug)); + + // Keep loading core.js for BC reasons + static::core(); + + static::$loaded[__METHOD__][$type] = true; + + return; + } + + /** + * Method to load core.js into the document head. + * + * Core.js defines the 'Joomla' namespace and contains functions which are used across extensions + * + * @return void + * + * @since 3.3 + */ + public static function core() + { + // Only load once + if (isset(static::$loaded[__METHOD__])) { + return; + } + + JHtml::_('form.csrf'); + JHtml::_('script', 'system/core.js', array('version' => 'auto', 'relative' => true)); + + // Add core and base uri paths so javascript scripts can use them. + JFactory::getDocument()->addScriptOptions('system.paths', array('root' => JUri::root(true), 'base' => JUri::base(true))); + + static::$loaded[__METHOD__] = true; + } + + /** + * Add unobtrusive JavaScript support for image captions. + * + * @param string $selector The selector for which a caption behaviour is to be applied. + * + * @return void + * + * @since 1.5 + * + * @Deprecated 4.0 Use native HTML figure tags. + */ + public static function caption($selector = 'img.caption') + { + JLog::add('JHtmlBehavior::caption is deprecated. Use native HTML figure tags.', JLog::WARNING, 'deprecated'); + + // Only load once + if (isset(static::$loaded[__METHOD__][$selector])) { + return; + } + + // Include jQuery + JHtml::_('jquery.framework'); + + JHtml::_('script', 'system/caption.js', array('version' => 'auto', 'relative' => true)); + + // Attach caption to document + JFactory::getDocument()->addScriptDeclaration( + "jQuery(window).on('load', function() { + new JCaption('" . $selector . "'); + });" + ); + + // Set static array + static::$loaded[__METHOD__][$selector] = true; + } + + /** + * Add unobtrusive JavaScript support for form validation. + * + * To enable form validation the form tag must have class="form-validate". + * Each field that needs to be validated needs to have class="validate". + * Additional handlers can be added to the handler for username, password, + * numeric and email. To use these add class="validate-email" and so on. + * + * @return void + * + * @since 1.5 + * + * @Deprecated 3.4 Use formvalidator instead + */ + public static function formvalidation() + { + JLog::add('The use of formvalidation is deprecated use formvalidator instead.', JLog::WARNING, 'deprecated'); + + // Only load once + if (isset(static::$loaded[__METHOD__])) { + return; + } + + // Include MooTools framework + static::framework(); + + // Load the new jQuery code + static::formvalidator(); + } + + /** + * Add unobtrusive JavaScript support for form validation. + * + * To enable form validation the form tag must have class="form-validate". + * Each field that needs to be validated needs to have class="validate". + * Additional handlers can be added to the handler for username, password, + * numeric and email. To use these add class="validate-email" and so on. + * + * @return void + * + * @since 3.4 + */ + public static function formvalidator() + { + // Only load once + if (isset(static::$loaded[__METHOD__])) { + return; + } + + // Include core + static::core(); + + // Include jQuery + JHtml::_('jquery.framework'); + + // Add validate.js language strings + JText::script('JLIB_FORM_FIELD_INVALID'); + + JHtml::_('script', 'system/punycode.js', array('version' => 'auto', 'relative' => true)); + JHtml::_('script', 'system/validate.js', array('version' => 'auto', 'relative' => true)); + static::$loaded[__METHOD__] = true; + } + + /** + * Add unobtrusive JavaScript support for submenu switcher support + * + * @return void + * + * @since 1.5 + */ + public static function switcher() + { + // Only load once + if (isset(static::$loaded[__METHOD__])) { + return; + } + + // Include jQuery + JHtml::_('jquery.framework'); + + JHtml::_('script', 'system/switcher.js', array('framework' => true, 'version' => 'auto', 'relative' => true)); + + $script = " + document.switcher = null; + jQuery(function($){ + var toggler = document.getElementById('submenu'); + var element = document.getElementById('config-document'); + if (element) { + document.switcher = new JSwitcher(toggler, element); + } + });"; + + JFactory::getDocument()->addScriptDeclaration($script); + static::$loaded[__METHOD__] = true; + } + + /** + * Add unobtrusive JavaScript support for a combobox effect. + * + * Note that this control is only reliable in absolutely positioned elements. + * Avoid using a combobox in a slider or dynamic pane. + * + * @return void + * + * @since 1.5 + */ + public static function combobox() + { + if (isset(static::$loaded[__METHOD__])) { + return; + } + // Include core + static::core(); + + JHtml::_('script', 'system/combobox.js', array('version' => 'auto', 'relative' => true)); + static::$loaded[__METHOD__] = true; + } + + /** + * Add unobtrusive JavaScript support for a hover tooltips. + * + * Add a title attribute to any element in the form + * title="title::text" + * + * Uses the core Tips class in MooTools. + * + * @param string $selector The class selector for the tooltip. + * @param array $params An array of options for the tooltip. + * Options for the tooltip can be: + * - maxTitleChars integer The maximum number of characters in the tooltip title (defaults to 50). + * - offsets object The distance of your tooltip from the mouse (defaults to {'x': 16, 'y': 16}). + * - showDelay integer The millisecond delay the show event is fired (defaults to 100). + * - hideDelay integer The millisecond delay the hide hide is fired (defaults to 100). + * - className string The className your tooltip container will get. + * - fixed boolean If set to true, the toolTip will not follow the mouse. + * - onShow function The default function for the show event, passes the tip element + * and the currently hovered element. + * - onHide function The default function for the hide event, passes the currently + * hovered element. + * + * @return void + * + * @since 1.5 + */ + public static function tooltip($selector = '.hasTip', $params = array()) + { + $sig = md5(serialize(array($selector, $params))); + + if (isset(static::$loaded[__METHOD__][$sig])) { + return; + } + + // Include MooTools framework + static::framework(true); + + // Setup options object + $opt['maxTitleChars'] = isset($params['maxTitleChars']) && $params['maxTitleChars'] ? (int) $params['maxTitleChars'] : 50; + + // Offsets needs an array in the format: array('x'=>20, 'y'=>30) + $opt['offset'] = isset($params['offset']) && is_array($params['offset']) ? $params['offset'] : null; + $opt['showDelay'] = isset($params['showDelay']) ? (int) $params['showDelay'] : null; + $opt['hideDelay'] = isset($params['hideDelay']) ? (int) $params['hideDelay'] : null; + $opt['className'] = isset($params['className']) ? $params['className'] : null; + $opt['fixed'] = isset($params['fixed']) && $params['fixed']; + $opt['onShow'] = isset($params['onShow']) ? '\\' . $params['onShow'] : null; + $opt['onHide'] = isset($params['onHide']) ? '\\' . $params['onHide'] : null; + + $options = JHtml::getJSObject($opt); + + // Include jQuery + JHtml::_('jquery.framework'); + + // Attach tooltips to document + JFactory::getDocument()->addScriptDeclaration( + "jQuery(function($) { + $('$selector').each(function() { + var title = $(this).attr('title'); + if (title) { + var parts = title.split('::', 2); + var mtelement = document.id(this); + mtelement.store('tip:title', parts[0]); + mtelement.store('tip:text', parts[1]); + } + }); + var JTooltips = new Tips($('$selector').get(), $options); + });" + ); + + // Set static array + static::$loaded[__METHOD__][$sig] = true; + + return; + } + + /** + * Add unobtrusive JavaScript support for modal links. + * + * @param string $selector The selector for which a modal behaviour is to be applied. + * @param array $params An array of parameters for the modal behaviour. + * Options for the modal behaviour can be: + * - ajaxOptions + * - size + * - shadow + * - overlay + * - onOpen + * - onClose + * - onUpdate + * - onResize + * - onShow + * - onHide + * + * @return void + * + * @since 1.5 + * @deprecated 4.0 Use the modal equivalent from bootstrap + */ + public static function modal($selector = 'a.modal', $params = array()) + { + $document = JFactory::getDocument(); + + // Load the necessary files if they haven't yet been loaded + if (!isset(static::$loaded[__METHOD__])) { + // Include MooTools framework + static::framework(true); + + // Load the JavaScript and css + JHtml::_('script', 'system/modal.js', array('framework' => true, 'version' => 'auto', 'relative' => true)); + JHtml::_('stylesheet', 'system/modal.css', array('version' => 'auto', 'relative' => true)); + } + + $sig = md5(serialize(array($selector, $params))); + + if (isset(static::$loaded[__METHOD__][$sig])) { + return; + } + + JLog::add('JHtmlBehavior::modal is deprecated. Use the modal equivalent from bootstrap.', JLog::WARNING, 'deprecated'); + + // Setup options object + $opt['ajaxOptions'] = isset($params['ajaxOptions']) && is_array($params['ajaxOptions']) ? $params['ajaxOptions'] : null; + $opt['handler'] = isset($params['handler']) ? $params['handler'] : null; + $opt['parseSecure'] = isset($params['parseSecure']) ? (bool) $params['parseSecure'] : null; + $opt['closable'] = isset($params['closable']) ? (bool) $params['closable'] : null; + $opt['closeBtn'] = isset($params['closeBtn']) ? (bool) $params['closeBtn'] : null; + $opt['iframePreload'] = isset($params['iframePreload']) ? (bool) $params['iframePreload'] : null; + $opt['iframeOptions'] = isset($params['iframeOptions']) && is_array($params['iframeOptions']) ? $params['iframeOptions'] : null; + $opt['size'] = isset($params['size']) && is_array($params['size']) ? $params['size'] : null; + $opt['shadow'] = isset($params['shadow']) ? $params['shadow'] : null; + $opt['overlay'] = isset($params['overlay']) ? $params['overlay'] : null; + $opt['onOpen'] = isset($params['onOpen']) ? $params['onOpen'] : null; + $opt['onClose'] = isset($params['onClose']) ? $params['onClose'] : null; + $opt['onUpdate'] = isset($params['onUpdate']) ? $params['onUpdate'] : null; + $opt['onResize'] = isset($params['onResize']) ? $params['onResize'] : null; + $opt['onMove'] = isset($params['onMove']) ? $params['onMove'] : null; + $opt['onShow'] = isset($params['onShow']) ? $params['onShow'] : null; + $opt['onHide'] = isset($params['onHide']) ? $params['onHide'] : null; + + // Include jQuery + JHtml::_('jquery.framework'); + + if (isset($params['fullScreen']) && (bool) $params['fullScreen']) { + $opt['size'] = array('x' => '\\jQuery(window).width() - 80', 'y' => '\\jQuery(window).height() - 80'); + } + + $options = JHtml::getJSObject($opt); + + // Attach modal behavior to document + $document + ->addScriptDeclaration( + " + jQuery(function($) { + SqueezeBox.initialize(" . $options . "); + SqueezeBox.assign($('" . $selector . "').get(), { + parse: 'rel' + }); + }); + + window.jModalClose = function () { + SqueezeBox.close(); + }; + + // Add extra modal close functionality for tinyMCE-based editors + document.onreadystatechange = function () { + if (document.readyState == 'interactive' && typeof tinyMCE != 'undefined' && tinyMCE) + { + if (typeof window.jModalClose_no_tinyMCE === 'undefined') + { + window.jModalClose_no_tinyMCE = typeof(jModalClose) == 'function' ? jModalClose : false; + + jModalClose = function () { + if (window.jModalClose_no_tinyMCE) window.jModalClose_no_tinyMCE.apply(this, arguments); + tinyMCE.activeEditor.windowManager.close(); + }; + } + + if (typeof window.SqueezeBoxClose_no_tinyMCE === 'undefined') + { + if (typeof(SqueezeBox) == 'undefined') SqueezeBox = {}; + window.SqueezeBoxClose_no_tinyMCE = typeof(SqueezeBox.close) == 'function' ? SqueezeBox.close : false; + + SqueezeBox.close = function () { + if (window.SqueezeBoxClose_no_tinyMCE) window.SqueezeBoxClose_no_tinyMCE.apply(this, arguments); + tinyMCE.activeEditor.windowManager.close(); + }; + } + } + }; + " + ); + + // Set static array + static::$loaded[__METHOD__][$sig] = true; + + return; + } + + /** + * JavaScript behavior to allow shift select in grids + * + * @param string $id The id of the form for which a multiselect behaviour is to be applied. + * + * @return void + * + * @since 1.7 + */ + public static function multiselect($id = 'adminForm') + { + // Only load once + if (isset(static::$loaded[__METHOD__][$id])) { + return; + } + + // Include core + static::core(); + + // Include jQuery + JHtml::_('jquery.framework'); + + JHtml::_('script', 'system/multiselect.js', array('version' => 'auto', 'relative' => true)); + + // Attach multiselect to document + JFactory::getDocument()->addScriptDeclaration( + "jQuery(document).ready(function() { + Joomla.JMultiSelect('" . $id . "'); + });" + ); + + // Set static array + static::$loaded[__METHOD__][$id] = true; + + return; + } + + /** + * Add unobtrusive javascript support for a collapsible tree. + * + * @param string $id An index + * @param array $params An array of options. + * @param array $root The root node + * + * @return void + * + * @since 1.5 + */ + public static function tree($id, $params = array(), $root = array()) + { + // Include MooTools framework + static::framework(); + + JHtml::_('script', 'system/mootree.js', array('framework' => true, 'version' => 'auto', 'relative' => true)); + JHtml::_('stylesheet', 'system/mootree.css', array('version' => 'auto', 'relative' => true)); + + if (isset(static::$loaded[__METHOD__][$id])) { + return; + } + + // Include jQuery + JHtml::_('jquery.framework'); + + // Setup options object + $opt['div'] = array_key_exists('div', $params) ? $params['div'] : $id . '_tree'; + $opt['mode'] = array_key_exists('mode', $params) ? $params['mode'] : 'folders'; + $opt['grid'] = array_key_exists('grid', $params) ? '\\' . $params['grid'] : true; + $opt['theme'] = array_key_exists('theme', $params) ? $params['theme'] : JHtml::_('image', 'system/mootree.gif', '', array(), true, true); + + // Event handlers + $opt['onExpand'] = array_key_exists('onExpand', $params) ? '\\' . $params['onExpand'] : null; + $opt['onSelect'] = array_key_exists('onSelect', $params) ? '\\' . $params['onSelect'] : null; + $opt['onClick'] = array_key_exists('onClick', $params) ? '\\' . $params['onClick'] + : '\\function(node){ window.open(node.data.url, node.data.target != null ? node.data.target : \'_self\'); }'; + + $options = JHtml::getJSObject($opt); + + // Setup root node + $rt['text'] = array_key_exists('text', $root) ? $root['text'] : 'Root'; + $rt['id'] = array_key_exists('id', $root) ? $root['id'] : null; + $rt['color'] = array_key_exists('color', $root) ? $root['color'] : null; + $rt['open'] = array_key_exists('open', $root) ? '\\' . $root['open'] : true; + $rt['icon'] = array_key_exists('icon', $root) ? $root['icon'] : null; + $rt['openicon'] = array_key_exists('openicon', $root) ? $root['openicon'] : null; + $rt['data'] = array_key_exists('data', $root) ? $root['data'] : null; + $rootNode = JHtml::getJSObject($rt); + + $treeName = array_key_exists('treeName', $params) ? $params['treeName'] : ''; + + $js = ' jQuery(function(){ + tree' . $treeName . ' = new MooTreeControl(' . $options . ',' . $rootNode . '); + tree' . $treeName . '.adopt(\'' . $id . '\');})'; + + // Attach tooltips to document + $document = JFactory::getDocument(); + $document->addScriptDeclaration($js); + + // Set static array + static::$loaded[__METHOD__][$id] = true; + + return; + } + + /** + * Add unobtrusive JavaScript support for a calendar control. + * + * @return void + * + * @since 1.5 + * + * @deprecated 4.0 + */ + public static function calendar() + { + // Only load once + if (isset(static::$loaded[__METHOD__])) { + return; + } + + JLog::add('JHtmlBehavior::calendar is deprecated as the static assets are being loaded in the relative layout.', JLog::WARNING, 'deprecated'); + + $document = JFactory::getDocument(); + $tag = JFactory::getLanguage()->getTag(); + $attribs = array('title' => JText::_('JLIB_HTML_BEHAVIOR_GREEN'), 'media' => 'all'); + + JHtml::_('stylesheet', 'system/calendar-jos.css', array('version' => 'auto', 'relative' => true), $attribs); + JHtml::_('script', $tag . '/calendar.js', array('version' => 'auto', 'relative' => true)); + JHtml::_('script', $tag . '/calendar-setup.js', array('version' => 'auto', 'relative' => true)); + + $translation = static::calendartranslation(); + + if ($translation) { + $document->addScriptDeclaration($translation); + } + + static::$loaded[__METHOD__] = true; + } + + /** + * Add unobtrusive JavaScript support for a color picker. + * + * @return void + * + * @since 1.7 + * + * @deprecated 4.0 Use directly the field or the layout + */ + public static function colorpicker() + { + // Only load once + if (isset(static::$loaded[__METHOD__])) { + return; + } + + // Include jQuery + JHtml::_('jquery.framework'); + + JHtml::_('script', 'jui/jquery.minicolors.min.js', array('version' => 'auto', 'relative' => true)); + JHtml::_('stylesheet', 'jui/jquery.minicolors.css', array('version' => 'auto', 'relative' => true)); + JFactory::getDocument()->addScriptDeclaration( + " + jQuery(document).ready(function (){ + jQuery('.minicolors').each(function() { + jQuery(this).minicolors({ + control: jQuery(this).attr('data-control') || 'hue', + format: jQuery(this).attr('data-validate') === 'color' + ? 'hex' + : (jQuery(this).attr('data-format') === 'rgba' + ? 'rgb' + : jQuery(this).attr('data-format')) + || 'hex', + keywords: jQuery(this).attr('data-keywords') || '', + opacity: jQuery(this).attr('data-format') === 'rgba' ? true : false || false, + position: jQuery(this).attr('data-position') || 'default', + theme: 'bootstrap' + }); + }); + }); + " + ); + + static::$loaded[__METHOD__] = true; + } + + /** + * Add unobtrusive JavaScript support for a simple color picker. + * + * @return void + * + * @since 3.1 + * + * @deprecated 4.0 Use directly the field or the layout + */ + public static function simplecolorpicker() + { + // Only load once + if (isset(static::$loaded[__METHOD__])) { + return; + } + + // Include jQuery + JHtml::_('jquery.framework'); + + JHtml::_('script', 'jui/jquery.simplecolors.min.js', array('version' => 'auto', 'relative' => true)); + JHtml::_('stylesheet', 'jui/jquery.simplecolors.css', array('version' => 'auto', 'relative' => true)); + JFactory::getDocument()->addScriptDeclaration( + " + jQuery(document).ready(function (){ + jQuery('select.simplecolors').simplecolors(); + }); + " + ); + + static::$loaded[__METHOD__] = true; + } + + /** + * Keep session alive, for example, while editing or creating an article. + * + * @return void + * + * @since 1.5 + */ + public static function keepalive() + { + // Only load once + if (isset(static::$loaded[__METHOD__])) { + return; + } + + $session = JFactory::getSession(); + + // If the handler is not 'Database', we set a fixed, small refresh value (here: 5 min) + $refreshTime = 300; + + if ($session->storeName === 'database') { + $lifeTime = $session->getExpire(); + $refreshTime = $lifeTime <= 60 ? 45 : $lifeTime - 60; + + // The longest refresh period is one hour to prevent integer overflow. + if ($refreshTime > 3600 || $refreshTime <= 0) { + $refreshTime = 3600; + } + } + + // If we are in the frontend or logged in as a user, we can use the ajax component to reduce the load + $uri = 'index.php' . (JFactory::getApplication()->isClient('site') || !JFactory::getUser()->guest ? '?option=com_ajax&format=json' : ''); + + // Include core and polyfill for browsers lower than IE 9. + static::core(); + static::polyfill('event', 'lt IE 9'); + + // Add keepalive script options. + JFactory::getDocument()->addScriptOptions('system.keepalive', array('interval' => $refreshTime * 1000, 'uri' => JRoute::_($uri))); + + // Add script. + JHtml::_('script', 'system/keepalive.js', array('version' => 'auto', 'relative' => true)); + + static::$loaded[__METHOD__] = true; + + return; + } + + /** + * Highlight some words via Javascript. + * + * @param array $terms Array of words that should be highlighted. + * @param string $start ID of the element that marks the begin of the section in which words + * should be highlighted. Note this element will be removed from the DOM. + * @param string $end ID of the element that end this section. + * Note this element will be removed from the DOM. + * @param string $className Class name of the element highlights are wrapped in. + * @param string $tag Tag that will be used to wrap the highlighted words. + * + * @return void + * + * @since 2.5 + */ + public static function highlighter(array $terms, $start = 'highlighter-start', $end = 'highlighter-end', $className = 'highlight', $tag = 'span') + { + $sig = md5(serialize(array($terms, $start, $end))); + + if (isset(static::$loaded[__METHOD__][$sig])) { + return; + } + + $terms = array_filter($terms, 'strlen'); + + // Nothing to Highlight + if (empty($terms)) { + static::$loaded[__METHOD__][$sig] = true; + + return; + } + + // Include core + static::core(); + + // Include jQuery + JHtml::_('jquery.framework'); + + JHtml::_('script', 'system/highlighter.js', array('version' => 'auto', 'relative' => true)); + + foreach ($terms as $i => $term) { + $terms[$i] = JFilterOutput::stringJSSafe($term); + } + + $document = JFactory::getDocument(); + $document->addScriptDeclaration(" + jQuery(function ($) { + var start = document.getElementById('" . $start . "'); + var end = document.getElementById('" . $end . "'); + if (!start || !end || !Joomla.Highlighter) { + return true; + } + highlighter = new Joomla.Highlighter({ + startElement: start, + endElement: end, + className: '" . $className . "', + onlyWords: false, + tag: '" . $tag . "' + }).highlight([\"" . implode('","', $terms) . "\"]); + $(start).remove(); + $(end).remove(); + }); + "); + + static::$loaded[__METHOD__][$sig] = true; + + return; + } + + /** + * Break us out of any containing iframes + * + * @return void + * + * @since 1.5 + * + * @deprecated 4.0 Add a X-Frame-Options HTTP Header with the SAMEORIGIN value instead. + */ + public static function noframes() + { + JLog::add(__METHOD__ . ' is deprecated, add a X-Frame-Options HTTP Header with the SAMEORIGIN value instead.', JLog::WARNING, 'deprecated'); + + // Only load once + if (isset(static::$loaded[__METHOD__])) { + return; + } + + // Include core + static::core(); + + // Include jQuery + JHtml::_('jquery.framework'); + + $js = 'jQuery(function () { + if (top == self) { + document.documentElement.style.display = "block"; + } + else + { + top.location = self.location; + } + + // Firefox fix + jQuery("input[autofocus]").focus(); + })'; + $document = JFactory::getDocument(); + $document->addStyleDeclaration('html { display:none }'); + $document->addScriptDeclaration($js); + + JFactory::getApplication()->setHeader('X-Frame-Options', 'SAMEORIGIN'); + + static::$loaded[__METHOD__] = true; + } + + /** + * Internal method to get a JavaScript object notation string from an array + * + * @param array $array The array to convert to JavaScript object notation + * + * @return string JavaScript object notation representation of the array + * + * @since 1.5 + * @deprecated 4.0 - Use JHtml::getJSObject() instead. + */ + protected static function _getJSObject($array = array()) + { + JLog::add('JHtmlBehavior::_getJSObject() is deprecated. JHtml::getJSObject() instead..', JLog::WARNING, 'deprecated'); + + return JHtml::getJSObject($array); + } + + /** + * Add unobtrusive JavaScript support to keep a tab state. + * + * Note that keeping tab state only works for inner tabs if in accordance with the following example: + * + * ``` + * parent tab = permissions + * child tab = permission- + * ``` + * + * Each tab header `` tag also should have a unique href attribute + * + * @return void + * + * @since 3.2 + */ + public static function tabstate() + { + if (isset(self::$loaded[__METHOD__])) { + return; + } + // Include jQuery + JHtml::_('jquery.framework'); + JHtml::_('behavior.polyfill', array('filter', 'xpath')); + JHtml::_('script', 'system/tabs-state.js', array('version' => 'auto', 'relative' => true)); + self::$loaded[__METHOD__] = true; + } + + /** + * Add javascript polyfills. + * + * @param string|array $polyfillTypes The polyfill type(s). Examples: event, array('event', 'classlist'). + * @param string $conditionalBrowser An IE conditional expression. Example: lt IE 9 (lower than IE 9). + * + * @return void + * + * @since 3.7.0 + */ + public static function polyfill($polyfillTypes = null, $conditionalBrowser = null) + { + if ($polyfillTypes === null) { + return; + } + + foreach ((array) $polyfillTypes as $polyfillType) { + $sig = md5(serialize(array($polyfillType, $conditionalBrowser))); + + // Only load once + if (isset(static::$loaded[__METHOD__][$sig])) { + continue; + } + + // If include according to browser. + $scriptOptions = array('version' => 'auto', 'relative' => true); + $scriptOptions = $conditionalBrowser !== null ? array_replace($scriptOptions, array('conditional' => $conditionalBrowser)) : $scriptOptions; + + JHtml::_('script', 'system/polyfill.' . $polyfillType . '.js', $scriptOptions); + + // Set static array + static::$loaded[__METHOD__][$sig] = true; + } + } + + /** + * Internal method to translate the JavaScript Calendar + * + * @return string JavaScript that translates the object + * + * @since 1.5 + */ + protected static function calendartranslation() + { + static $jsscript = 0; + + // Guard clause, avoids unnecessary nesting + if ($jsscript) { + return false; + } + + $jsscript = 1; + + // To keep the code simple here, run strings through JText::_() using array_map() + $callback = array('JText', '_'); + $weekdays_full = array_map( + $callback, + array( + 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', + ) + ); + $weekdays_short = array_map( + $callback, + array( + 'SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN', + ) + ); + $months_long = array_map( + $callback, + array( + 'JANUARY', 'FEBRUARY', 'MARCH', 'APRIL', 'MAY', 'JUNE', + 'JULY', 'AUGUST', 'SEPTEMBER', 'OCTOBER', 'NOVEMBER', 'DECEMBER', + ) + ); + $months_short = array_map( + $callback, + array( + 'JANUARY_SHORT', 'FEBRUARY_SHORT', 'MARCH_SHORT', 'APRIL_SHORT', 'MAY_SHORT', 'JUNE_SHORT', + 'JULY_SHORT', 'AUGUST_SHORT', 'SEPTEMBER_SHORT', 'OCTOBER_SHORT', 'NOVEMBER_SHORT', 'DECEMBER_SHORT', + ) + ); + + // This will become an object in Javascript but define it first in PHP for readability + $today = " " . JText::_('JLIB_HTML_BEHAVIOR_TODAY') . " "; + $text = array( + 'INFO' => JText::_('JLIB_HTML_BEHAVIOR_ABOUT_THE_CALENDAR'), + 'ABOUT' => "DHTML Date/Time Selector\n" + . "(c) dynarch.com 20022005 / Author: Mihai Bazon\n" + . "For latest version visit: http://www.dynarch.com/projects/calendar/\n" + . "Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + . "\n\n" + . JText::_('JLIB_HTML_BEHAVIOR_DATE_SELECTION') + . JText::_('JLIB_HTML_BEHAVIOR_YEAR_SELECT') + . JText::_('JLIB_HTML_BEHAVIOR_MONTH_SELECT') + . JText::_('JLIB_HTML_BEHAVIOR_HOLD_MOUSE'), + 'ABOUT_TIME' => "\n\n" + . "Time selection:\n" + . " Click on any of the time parts to increase it\n" + . " or Shiftclick to decrease it\n" + . " or click and drag for faster selection.", + 'PREV_YEAR' => JText::_('JLIB_HTML_BEHAVIOR_PREV_YEAR_HOLD_FOR_MENU'), + 'PREV_MONTH' => JText::_('JLIB_HTML_BEHAVIOR_PREV_MONTH_HOLD_FOR_MENU'), + 'GO_TODAY' => JText::_('JLIB_HTML_BEHAVIOR_GO_TODAY'), + 'NEXT_MONTH' => JText::_('JLIB_HTML_BEHAVIOR_NEXT_MONTH_HOLD_FOR_MENU'), + 'SEL_DATE' => JText::_('JLIB_HTML_BEHAVIOR_SELECT_DATE'), + 'DRAG_TO_MOVE' => JText::_('JLIB_HTML_BEHAVIOR_DRAG_TO_MOVE'), + 'PART_TODAY' => $today, + 'DAY_FIRST' => JText::_('JLIB_HTML_BEHAVIOR_DISPLAY_S_FIRST'), + 'WEEKEND' => JFactory::getLanguage()->getWeekEnd(), + 'CLOSE' => JText::_('JLIB_HTML_BEHAVIOR_CLOSE'), + 'TODAY' => JText::_('JLIB_HTML_BEHAVIOR_TODAY'), + 'TIME_PART' => JText::_('JLIB_HTML_BEHAVIOR_SHIFT_CLICK_OR_DRAG_TO_CHANGE_VALUE'), + 'DEF_DATE_FORMAT' => "%Y%m%d", + 'TT_DATE_FORMAT' => JText::_('JLIB_HTML_BEHAVIOR_TT_DATE_FORMAT'), + 'WK' => JText::_('JLIB_HTML_BEHAVIOR_WK'), + 'TIME' => JText::_('JLIB_HTML_BEHAVIOR_TIME'), + ); + + return 'Calendar._DN = ' . json_encode($weekdays_full) . ';' + . ' Calendar._SDN = ' . json_encode($weekdays_short) . ';' + . ' Calendar._FD = 0;' + . ' Calendar._MN = ' . json_encode($months_long) . ';' + . ' Calendar._SMN = ' . json_encode($months_short) . ';' + . ' Calendar._TT = ' . json_encode($text) . ';'; + } +} diff --git a/var/www/hosting/archlinexp.eu/www/libraries/cms/html/behavior.php.evidence.json b/var/www/hosting/archlinexp.eu/www/libraries/cms/html/behavior.php.evidence.json new file mode 100644 index 0000000..18e21eb --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/libraries/cms/html/behavior.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7201", + "log_excerpt": "[quarantine] www.archlinexp.eu:libraries/cms/html/behavior.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/libraries/cms/html/behavior.php)", + "original_sha256": "b7e3e5f1cba9c986a3624ff1bd80216bc8ae36c853cbe5c2f443499db4502951", + "original_stat": { + "gid": 30037, + "mtime": 1707919845, + "size": 31861, + "uid": 12425 + }, + "rel_path": "libraries/cms/html/behavior.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/helper.php b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/helper.php new file mode 100644 index 0000000..69bda31 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/helper.php @@ -0,0 +1,67 @@ +setQuery($query); + $existingUser = $db->loadObject(); + + if (!empty($existingUser)) { + if ($existingUser->newsletter == 1) + return true; + + $db->getQuery(true); + $query = "UPDATE cl_hlusers.u_emails SET newsletter = 1 WHERE u_emails_id = '{$existingUser->u_emails_id}'"; + $db->setQuery($query); + $db->execute(); + + return true; + } + + $old_db = (JFactory::getLanguage()->getTag() == 'hu-HU' ? "clusers" : "clusers_eng"); + $ctrID = (JFactory::getLanguage()->getTag() == 'hu-HU' ? 36 : 0); + + $user = new stdClass(); + $user->strName = $name; + $user->strEMail = $email; + $user->nUserType = 0; + $user->nUserStatus = 0; + $user->nUserProf = 0; + $user->old_db = $old_db; + $user->nSchoolID = 0; + $user->nCtrID = $ctrID; + + JFactory::getDbo()->insertObject('cl_hlusers.users', $user); + + $nUserID = $db->insertid(); + + $history = new stdClass(); + $history->nUserID = $nUserID; + $history->nTopicID = (JFactory::getLanguage()->getTag() == 'hu-HU' ? 38 : 150); + $history->dateEvent = date('Y-m-d'); + $history->insertDate = date('Y-m-d H:i:s'); + $history->strPlace = 'web'; + $history->nManagerID = 36; + + JFactory::getDbo()->insertObject('cl_hlusers.u_history', $history); + + $emails = new stdClass(); + $emails->email = $email; + $emails->nUserID = $nUserID; + $emails->default = 1; + $emails->active = 1; + $emails->deleted = 0; + $emails->newsletter = 1; + + JFactory::getDbo()->insertObject('cl_hlusers.u_emails', $emails); + + return true; + } +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/helper.php.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/helper.php.evidence.json new file mode 100644 index 0000000..cfb0ce9 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/helper.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7240", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_newsletter/helper.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/helper.php)", + "original_sha256": "b7956607a80914f9937904e84970f2e1e67774f4aba36604c4be02572ed61818", + "original_stat": { + "gid": 30037, + "mtime": 1666076765, + "size": 2227, + "uid": 20043 + }, + "rel_path": "modules/mod_al_newsletter/helper.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/index.html b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/index.html new file mode 100644 index 0000000..f28d9de --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/index.html @@ -0,0 +1,10 @@ + + + + + + + +Joomla Module Generator + + diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/index.html.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/index.html.evidence.json new file mode 100644 index 0000000..9dc0c3b --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/index.html.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7238", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_newsletter/index.html -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/index.html)", + "original_sha256": "647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d", + "original_stat": { + "gid": 30037, + "mtime": 1666075362, + "size": 191, + "uid": 20043 + }, + "rel_path": "modules/mod_al_newsletter/index.html", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini new file mode 100644 index 0000000..1949ec4 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini @@ -0,0 +1,8 @@ +MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Jetzt unseren wöchentlichen Newsletter abonnieren!" +MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Werden Sie Mitglied in unserer Community und erhalten Sie die neuesten Tutorials, Angebote und Nachrichten direkt per E-Mail." +MOD_AL_NEWSLETTER_NAME="Name" +MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name" +MOD_AL_NEWSLETTER_EMAIL="Email" +MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="E-mail Adresse" +MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Abonnieren" +MOD_AL_NEWSLETTER_DONE="Danke für Ihr Abonnement" \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini.evidence.json new file mode 100644 index 0000000..222be55 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7245", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini)", + "original_sha256": "b4c34415a7fef19b193d8f8cde917e276ca585c5fc43b0157c5428059a8a9796", + "original_stat": { + "gid": 30037, + "mtime": 1666075362, + "size": 514, + "uid": 20043 + }, + "rel_path": "modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini new file mode 100644 index 0000000..0ed85c5 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini @@ -0,0 +1,7 @@ +MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="GET OUR NEWSLETTER" +MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Want the latest and greatest from our blog straight to your inbox? Chucks us your details and get a sweet weekly email." +MOD_AL_NEWSLETTER_NAME="Name" +MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name" +MOD_AL_NEWSLETTER_EMAIL="Email" +MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address" +MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Subscribe" \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini.evidence.json new file mode 100644 index 0000000..d1d17d5 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7244", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini)", + "original_sha256": "6aa67b1e7671a2e12d9eceea4dd8a01c9b053208d565b20ba961e0bb8a4d8793", + "original_stat": { + "gid": 30037, + "mtime": 1666075362, + "size": 426, + "uid": 20043 + }, + "rel_path": "modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini new file mode 100644 index 0000000..fe9db88 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini @@ -0,0 +1,8 @@ +MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Subscribe to our weekly newsletter!" +MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Join our community to get the latest tutorials, offers and news delivered directly in your inbox." +MOD_AL_NEWSLETTER_NAME="Name" +MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name" +MOD_AL_NEWSLETTER_EMAIL="Email" +MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address" +MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Subscribe" +MOD_AL_NEWSLETTER_DONE="Thank you for subscribing" \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini.evidence.json new file mode 100644 index 0000000..1c8d848 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7247", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini)", + "original_sha256": "112d4cbd2f2bcc865926f7348639e346cb3d0fb8a5c3e4f005912ffa95c581d4", + "original_stat": { + "gid": 30037, + "mtime": 1666075362, + "size": 473, + "uid": 20043 + }, + "rel_path": "modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini new file mode 100644 index 0000000..0ed85c5 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini @@ -0,0 +1,7 @@ +MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="GET OUR NEWSLETTER" +MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Want the latest and greatest from our blog straight to your inbox? Chucks us your details and get a sweet weekly email." +MOD_AL_NEWSLETTER_NAME="Name" +MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name" +MOD_AL_NEWSLETTER_EMAIL="Email" +MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address" +MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Subscribe" \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini.evidence.json new file mode 100644 index 0000000..b7b3ce9 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7246", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini)", + "original_sha256": "6aa67b1e7671a2e12d9eceea4dd8a01c9b053208d565b20ba961e0bb8a4d8793", + "original_stat": { + "gid": 30037, + "mtime": 1666075362, + "size": 426, + "uid": 20043 + }, + "rel_path": "modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini new file mode 100644 index 0000000..74f9a88 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini @@ -0,0 +1,8 @@ +MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Iratkozz fel heti hírlevelünkre!" +MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Csatlakozz az ARCHLine.XP közösségéhez, értesülj elsők között oktatóvideóinkról, akcióinkről és híreinkről! " +MOD_AL_NEWSLETTER_NAME="Név" +MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Név" +MOD_AL_NEWSLETTER_EMAIL="Email" +MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Email" +MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Feliratkozom" +MOD_AL_NEWSLETTER_DONE="Köszönjük, hogy feliratkozott hírlevelünkre" \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini.evidence.json new file mode 100644 index 0000000..4584013 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7242", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini)", + "original_sha256": "1ee232c97d9600124baa334bd87c71b5103131e6ef29bf9aa145b28aeabb6e97", + "original_stat": { + "gid": 30037, + "mtime": 1666075362, + "size": 508, + "uid": 20043 + }, + "rel_path": "modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini new file mode 100644 index 0000000..243ea56 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini @@ -0,0 +1,7 @@ +MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Iratkozzon fel hírlevelünkre" +MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Szeretné a legújabb és legjobb híreket blogunkról egyenesen a postaládájába? Elküldi nekünk az adatait, és kap egy kedves heti e-mailt." +MOD_AL_NEWSLETTER_NAME="Név" +MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="A neve" +MOD_AL_NEWSLETTER_EMAIL="Email" +MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Az email címe" +MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Feliratkozás" \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini.evidence.json new file mode 100644 index 0000000..d212fff --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7243", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini)", + "original_sha256": "fe3e8aca75ff56194b30ab42b861b09a22a2ca313624d1ae62e18b10cfefd368", + "original_stat": { + "gid": 30037, + "mtime": 1666075362, + "size": 462, + "uid": 20043 + }, + "rel_path": "modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.php b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.php new file mode 100644 index 0000000..f07ff2c --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.php @@ -0,0 +1,19 @@ +enqueueMessage(JText::_('MOD_AL_NEWSLETTER_DONE')); + } +} + +require JModuleHelper::getLayoutPath('mod_al_newsletter', $params->get('layout', 'default')); diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.php.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.php.evidence.json new file mode 100644 index 0000000..9d2f321 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7241", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_newsletter/mod_al_newsletter.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.php)", + "original_sha256": "9eaa9a68edd1e4498587bcb45e83748e0644206df67207146c15db9762edd19e", + "original_stat": { + "gid": 30037, + "mtime": 1666075362, + "size": 563, + "uid": 20043 + }, + "rel_path": "modules/mod_al_newsletter/mod_al_newsletter.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.xml b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.xml new file mode 100644 index 0000000..9ab947f --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.xml @@ -0,0 +1,44 @@ + + + mod_al_newsletter + August 2022 + Nagy Máté + mate.nagy@cadline.hu + Copyright © 2021 - All rights reserved. + 0.0.1 + Create a newsletter subscription popup modal + + mod_al_newsletter.php + mod_al_newsletter.xml + index.html + helper.php + language + tmpl + + + +
+ + + + + + + + + + + +
+
+
+ + + en-GB/en-GB.mod_al_newsletter.sys.ini + en-GB/en-GB.mod_al_newsletter.ini + hu-HU/hu-HU.mod_al_newsletter.sys.ini + hu-HU/hu-HU.mod_al_newsletter.ini + de-DE/de-DE.mod_al_newsletter.sys.ini + de-DE/de-DE.mod_al_newsletter.ini + +
diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.xml.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.xml.evidence.json new file mode 100644 index 0000000..1a1f9a3 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.xml.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7239", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_newsletter/mod_al_newsletter.xml -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.xml)", + "original_sha256": "63093cd4600619b21a0b611c46f598ec3074df45ec183860c0ff6119897ea0ce", + "original_stat": { + "gid": 30037, + "mtime": 1666075362, + "size": 2115, + "uid": 20043 + }, + "rel_path": "modules/mod_al_newsletter/mod_al_newsletter.xml", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/default.php b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/default.php new file mode 100644 index 0000000..9bc0cda --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/default.php @@ -0,0 +1,49 @@ + + + + + + \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/default.php.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/default.php.evidence.json new file mode 100644 index 0000000..27d93fa --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/default.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7249", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_newsletter/tmpl/default.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/default.php)", + "original_sha256": "647148d53fa91736b4f4e5afa5e5f90987320636c0e8dbf132e02af872714b6e", + "original_stat": { + "gid": 30037, + "mtime": 1673448300, + "size": 2360, + "uid": 20043 + }, + "rel_path": "modules/mod_al_newsletter/tmpl/default.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/index.html b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/index.html new file mode 100644 index 0000000..f28d9de --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/index.html @@ -0,0 +1,10 @@ + + + + + + + +Joomla Module Generator + + diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/index.html.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/index.html.evidence.json new file mode 100644 index 0000000..1dc9bbc --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/index.html.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7248", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_newsletter/tmpl/index.html -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/index.html)", + "original_sha256": "647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d", + "original_stat": { + "gid": 30037, + "mtime": 1666075362, + "size": 191, + "uid": 20043 + }, + "rel_path": "modules/mod_al_newsletter/tmpl/index.html", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/helper.php b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/helper.php new file mode 100644 index 0000000..8b25897 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/helper.php @@ -0,0 +1,149 @@ +getQuery(true) + ->select('a.*') + ->from('www_archline_hu.jml_speasyimagegallery_albums as a') + ->where('a.id = ' . (int) $albumId); + + $query->select('l.title AS language_title') + ->leftJoin($db->quoteName('#__languages') . ' AS l ON l.lang_code = a.language'); + + $query->select('ua.name AS author_name') + ->leftJoin('#__users AS ua ON ua.id = a.created_by'); + + // Filter by published state. + $query->where('a.published = 1'); + + $db->setQuery($query); + $data = $db->loadObject(); + + if (isset($data->id) && $data->id) { + $data->images = self::getImages($data->id); + } + + if (empty($data)) { + return JError::raiseError(404, JText::_('COM_SPEASYIMAGEGALLERY_ERROR_ALBUM_NOT_FOUND')); + } + + $user = JFactory::getUser(); + $groups = $user->getAuthorisedViewLevels(); + if (!in_array($data->access, $groups)) { + return JError::raiseError(404, JText::_('COM_SPEASYIMAGEGALLERY_ERROR_ALBUM_NOT_AUTHORISED')); + } + + $result[$albumId] = $data; + } catch (Exception $e) { + if ($e->getCode() == 404) { + JError::raiseError(404, $e->getMessage()); + } else { + $result[$albumId] = false; + } + } + + return $result[$albumId]; + } + + public static function isVoted($pictureId, $albumId, $userId) + { + $db = JFactory::getDbo(); + + $query = "SELECT id FROM www_archline_hu.al_picture_vote + WHERE picture_id = {$pictureId} AND album_id = {$albumId} AND nUserID = {$userId}"; + $db->setQuery($query); + $existingVote = $db->loadObject(); + + return !empty($existingVote); + } + + public static function getImages($album_id) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true); + $query->select(array('a.*', 'b.picture_id', 'count(b.userID) AS voteCount')); + $query->from($db->quoteName('www_archline_hu.jml_speasyimagegallery_images', 'a')); + $query->join('LEFT', $db->quoteName('www_archline_hu.al_picture_vote', 'b') . ' ON ' . $db->quoteName('a.id') . ' = ' . $db->quoteName('b.picture_id')); + $query->where($db->quoteName('a.album_id') . ' = ' . $db->quote($album_id)); + $query->where($db->quoteName('a.state') . ' = ' . $db->quote(1)); + $query->order('a.title ASC'); + $query->group($db->quoteName('a.id')); + $db->setQuery($query); + return $db->loadObjectList(); + } + + public static function votePicture($pictureId, $albumId, $userId, $nUserID) + { + $db = JFactory::getDbo(); + + $query = "SELECT id FROM www_archline_hu.al_picture_vote + WHERE picture_id = {$pictureId} AND album_id = {$albumId} AND nUserID = {$nUserID}"; + $db->setQuery($query); + $existingVote = $db->loadObject(); + + if (!empty($existingVote)) + return false; + + $vote = new stdClass(); + $vote->picture_id = $pictureId; + $vote->album_id = $albumId; + $vote->userID = $userId; + $vote->nUserID = $nUserID; + JFactory::getDbo()->insertObject('www_archline_hu.al_picture_vote', $vote); + + if ($nUserID != null && $nUserID != '') { + $topic = (JFactory::getLanguage()->getTag() == 'hu-HU' ? 322 : 153); + + $query = "SELECT * FROM cl_hlusers.u_history + WHERE nUserID = {$nUserID} AND nTopicID = {$topic} AND strPlace = 'Rendering pályázat 2023 szavazás'"; + $db->setQuery($query); + $existingVote = $db->loadObject(); + + if (empty($existingVote)) { + $history = new stdClass(); + $history->nUserID = $nUserID; + $history->nTopicID = $topic; + $history->dateEvent = date('Y-m-d'); + $history->strPlace = 'Rendering pályázat 2023 szavazás'; + $history->strInfo = 'Rendering pályázat 2023 szavazás'; + $history->nManagerID = 36; + JFactory::getDbo()->insertObject('cl_hlusers.u_history', $history); + } + } + + return true; + } + + public static function getWinnerPictures($album_id) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true); + $query->select(array('a.*', 'b.*', 'count(b.userID) AS voteCount')); + $query->from($db->quoteName('www_archline_hu.jml_speasyimagegallery_images', 'a')); + $query->join('LEFT', $db->quoteName('www_archline_hu.al_picture_vote', 'b') . ' ON ' . $db->quoteName('a.id') . ' = ' . $db->quoteName('b.picture_id')); + $query->where($db->quoteName('a.album_id') . ' = ' . $db->quote($album_id)); + $query->where($db->quoteName('a.state') . ' = ' . $db->quote(1)); + $query->order('count(b.userID) DESC'); + $query->group($db->quoteName('a.id')); + $db->setQuery($query); + $winners = $db->loadObjectList(); + + for ($i = 0; $i < count($winners); $i++) + $winners[$i]->source = json_decode($winners[$i]->images); + + return $winners; + } +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/helper.php.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/helper.php.evidence.json new file mode 100644 index 0000000..d4fe456 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/helper.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7218", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_vote/helper.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/helper.php)", + "original_sha256": "0b5c924a705ef20a151755d51cc1ec0f6a14259dc95fe8275999c9fd5ccef384", + "original_stat": { + "gid": 30037, + "mtime": 1676369734, + "size": 5750, + "uid": 20043 + }, + "rel_path": "modules/mod_al_vote/helper.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/index.html b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/index.html new file mode 100644 index 0000000..f28d9de --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/index.html @@ -0,0 +1,10 @@ + + + + + + + +Joomla Module Generator + + diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/index.html.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/index.html.evidence.json new file mode 100644 index 0000000..00d8dc9 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/index.html.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7216", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_vote/index.html -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/index.html)", + "original_sha256": "647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d", + "original_stat": { + "gid": 30037, + "mtime": 1676012882, + "size": 191, + "uid": 20043 + }, + "rel_path": "modules/mod_al_vote/index.html", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.ini new file mode 100644 index 0000000..12acdcb --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.ini @@ -0,0 +1,4 @@ +MOD_AL_VOTE_SUCCESS="Thank you for participating in the poll, your vote was valid.
+Best regards, CadLine Kft." +MOD_AL_VOTE_VOTE="Vote" +MOD_AL_VOTE_VOTE_2="I vote" \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.ini.evidence.json new file mode 100644 index 0000000..cd594f1 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7223", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.ini)", + "original_sha256": "b14f757d445fe29447b213ad3834a6485924704e56e103c95a0ddcf6a5d86b9b", + "original_stat": { + "gid": 30037, + "mtime": 1676012882, + "size": 170, + "uid": 20043 + }, + "rel_path": "modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.sys.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.sys.ini new file mode 100644 index 0000000..0ed85c5 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.sys.ini @@ -0,0 +1,7 @@ +MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="GET OUR NEWSLETTER" +MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Want the latest and greatest from our blog straight to your inbox? Chucks us your details and get a sweet weekly email." +MOD_AL_NEWSLETTER_NAME="Name" +MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name" +MOD_AL_NEWSLETTER_EMAIL="Email" +MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address" +MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Subscribe" \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.sys.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.sys.ini.evidence.json new file mode 100644 index 0000000..1412544 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.sys.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7222", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.sys.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.sys.ini)", + "original_sha256": "6aa67b1e7671a2e12d9eceea4dd8a01c9b053208d565b20ba961e0bb8a4d8793", + "original_stat": { + "gid": 30037, + "mtime": 1676012882, + "size": 426, + "uid": 20043 + }, + "rel_path": "modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.sys.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini new file mode 100644 index 0000000..12acdcb --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini @@ -0,0 +1,4 @@ +MOD_AL_VOTE_SUCCESS="Thank you for participating in the poll, your vote was valid.
+Best regards, CadLine Kft." +MOD_AL_VOTE_VOTE="Vote" +MOD_AL_VOTE_VOTE_2="I vote" \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini.evidence.json new file mode 100644 index 0000000..fb77880 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7225", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini)", + "original_sha256": "b14f757d445fe29447b213ad3834a6485924704e56e103c95a0ddcf6a5d86b9b", + "original_stat": { + "gid": 30037, + "mtime": 1676012882, + "size": 170, + "uid": 20043 + }, + "rel_path": "modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini new file mode 100644 index 0000000..0ed85c5 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini @@ -0,0 +1,7 @@ +MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="GET OUR NEWSLETTER" +MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Want the latest and greatest from our blog straight to your inbox? Chucks us your details and get a sweet weekly email." +MOD_AL_NEWSLETTER_NAME="Name" +MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name" +MOD_AL_NEWSLETTER_EMAIL="Email" +MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address" +MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Subscribe" \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini.evidence.json new file mode 100644 index 0000000..b0b901f --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7224", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini)", + "original_sha256": "6aa67b1e7671a2e12d9eceea4dd8a01c9b053208d565b20ba961e0bb8a4d8793", + "original_stat": { + "gid": 30037, + "mtime": 1676012882, + "size": 426, + "uid": 20043 + }, + "rel_path": "modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini new file mode 100644 index 0000000..618676a --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini @@ -0,0 +1,4 @@ +MOD_AL_VOTE_SUCCESS="Köszönjük, hogy részt vettél a szavazáson, leadott szavazatod érvényes volt.
+Üdvözlettel, CadLine Kft." +MOD_AL_VOTE_VOTE="Szavazat" +MOD_AL_VOTE_VOTE_2="Szavazok" \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini.evidence.json new file mode 100644 index 0000000..fb013a7 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7221", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini)", + "original_sha256": "5d8093e15f311eb8a3e44cd1710baaa1d347c423b5e2c9ff07fb0ea1876cd0de", + "original_stat": { + "gid": 30037, + "mtime": 1676012882, + "size": 200, + "uid": 20043 + }, + "rel_path": "modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini new file mode 100644 index 0000000..243ea56 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini @@ -0,0 +1,7 @@ +MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Iratkozzon fel hírlevelünkre" +MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Szeretné a legújabb és legjobb híreket blogunkról egyenesen a postaládájába? Elküldi nekünk az adatait, és kap egy kedves heti e-mailt." +MOD_AL_NEWSLETTER_NAME="Név" +MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="A neve" +MOD_AL_NEWSLETTER_EMAIL="Email" +MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Az email címe" +MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Feliratkozás" \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini.evidence.json new file mode 100644 index 0000000..5d0937c --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7220", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini)", + "original_sha256": "fe3e8aca75ff56194b30ab42b861b09a22a2ca313624d1ae62e18b10cfefd368", + "original_stat": { + "gid": 30037, + "mtime": 1676012882, + "size": 462, + "uid": 20043 + }, + "rel_path": "modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.php b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.php new file mode 100644 index 0000000..ec1c963 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.php @@ -0,0 +1,18 @@ +id, $user->nUserID); + + if ($vote) + JFactory::getApplication()->enqueueMessage(JText::_('MOD_AL_VOTE_SUCCESS'), 'message');*/ +} + +$album = ModAlVoteHelper::getItem(); + +require JModuleHelper::getLayoutPath('mod_al_vote', $params->get('layout', 'default')); diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.php.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.php.evidence.json new file mode 100644 index 0000000..dca56ab --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7219", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_vote/mod_al_vote.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.php)", + "original_sha256": "176fd1c778009daba61f1e1289363e5b657a9ac6f558f21f9bc3723c14659135", + "original_stat": { + "gid": 30037, + "mtime": 1677656993, + "size": 586, + "uid": 20043 + }, + "rel_path": "modules/mod_al_vote/mod_al_vote.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.xml b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.xml new file mode 100644 index 0000000..4c2d3d5 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.xml @@ -0,0 +1,42 @@ + + + mod_al_vote + August 2022 + Nagy Máté + mate.nagy@cadline.hu + Copyright © 2021 - All rights reserved. + 0.0.1 + Create a picture vote modul + + mod_al_vote.php + mod_al_vote.xml + index.html + helper.php + language + tmpl + + + +
+ + + + + + + + + + + +
+
+
+ + + en-GB/en-GB.mod_al_vote.sys.ini + en-GB/en-GB.mod_al_vote.ini + hu-HU/hu-HU.mod_al_vote.sys.ini + hu-HU/hu-HU.mod_al_vote.ini + +
diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.xml.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.xml.evidence.json new file mode 100644 index 0000000..6f678b3 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.xml.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7217", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_vote/mod_al_vote.xml -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.xml)", + "original_sha256": "1ed8c27095489f0a0011b846d9a5434f5d1900b1e445dd3af1e1ae84d67ee5b5", + "original_stat": { + "gid": 30037, + "mtime": 1676012882, + "size": 1906, + "uid": 20043 + }, + "rel_path": "modules/mod_al_vote/mod_al_vote.xml", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/default.php b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/default.php new file mode 100644 index 0000000..c7a1186 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/default.php @@ -0,0 +1,124 @@ +addScript(JURI::base(true) . '/public/js/lightbox_2.js'); +$doc->addStylesheet(JURI::base(true) . '/public/css/lightbox_2_1.css'); +?> + + + +
+ + = '2023-02-29') : ?> +
+
+ +
+
+ +
+ + + : voteCount ?> +
+ +
+
+
+ +
+
+ +
+
+ +
+ + + : voteCount ?> +
+ +
+
+ +
+ + + : voteCount ?> +
+ +
+
+
+
+ + +
+ +
+
+ +
+ images as $key => $item->image) : ?> + image->images); ?> + +
+ + + image->title; ?> +
+ : image->voteCount ?> + + id > 0 && !ModAlVoteHelper::isVoted($item->image->id, $album->id, $user->nUserID) && date('Y-m-d H:i:s') >= '2023-02-14 00:01:00'*/false) : ?> +
+ + + + +
+ + + +
+ +
+
+ + \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/default.php.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/default.php.evidence.json new file mode 100644 index 0000000..68e8794 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/default.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7227", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_vote/tmpl/default.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/default.php)", + "original_sha256": "5bff3f42b1a1627e018b8c2ca635a83435f8504e9ff43e995bbbccbc401b548e", + "original_stat": { + "gid": 30037, + "mtime": 1677670025, + "size": 5054, + "uid": 20043 + }, + "rel_path": "modules/mod_al_vote/tmpl/default.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/index.html b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/index.html new file mode 100644 index 0000000..f28d9de --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/index.html @@ -0,0 +1,10 @@ + + + + + + + +Joomla Module Generator + + diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/index.html.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/index.html.evidence.json new file mode 100644 index 0000000..1b8b918 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/index.html.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7226", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_al_vote/tmpl/index.html -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/index.html)", + "original_sha256": "647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d", + "original_stat": { + "gid": 30037, + "mtime": 1676012882, + "size": 191, + "uid": 20043 + }, + "rel_path": "modules/mod_al_vote/tmpl/index.html", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/images/index.html b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/images/index.html new file mode 100644 index 0000000..f28d9de --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/images/index.html @@ -0,0 +1,10 @@ + + + + + + + +Joomla Module Generator + + diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/images/index.html.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/images/index.html.evidence.json new file mode 100644 index 0000000..f5a23be --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/images/index.html.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7214", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_alusers/assets/css/images/index.html -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/images/index.html)", + "original_sha256": "647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d", + "original_stat": { + "gid": 30037, + "mtime": 1560332148, + "size": 191, + "uid": 20043 + }, + "rel_path": "modules/mod_alusers/assets/css/images/index.html", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/index.html b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/index.html new file mode 100644 index 0000000..f28d9de --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/index.html @@ -0,0 +1,10 @@ + + + + + + + +Joomla Module Generator + + diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/index.html.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/index.html.evidence.json new file mode 100644 index 0000000..286b5d5 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/index.html.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7211", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_alusers/assets/css/index.html -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/index.html)", + "original_sha256": "647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d", + "original_stat": { + "gid": 30037, + "mtime": 1560332148, + "size": 191, + "uid": 20043 + }, + "rel_path": "modules/mod_alusers/assets/css/index.html", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/newstyle.css b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/newstyle.css new file mode 100644 index 0000000..02eec31 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/newstyle.css @@ -0,0 +1,6 @@ +.alusers .aktiv {color: #1E90FF;} +.alusers .inaktiv {color: #FF0000;} +.alusers dt {display:inline-block;margin-right:20px;min-width:150px;vertical-align:top;} +.alusers dd {display:inline-block;vertical-align:top;} +.btn-info, .btn-success, .btn-primary {background-color: #1E90FF !important; border-color: #1E90FF !important;} +.btn-info:hover, .btn-success:hover, .btn-primary:hover {background-color: #6495ED !important; border-color: #6495ED !important;} \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/newstyle.css.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/newstyle.css.evidence.json new file mode 100644 index 0000000..7c4b89b --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/newstyle.css.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7212", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_alusers/assets/css/newstyle.css -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/newstyle.css)", + "original_sha256": "d70abf50ed939eb2e298de25d32af4f33a54815c9b90c4d0118c20ba498ffa32", + "original_stat": { + "gid": 30037, + "mtime": 1560332148, + "size": 462, + "uid": 20043 + }, + "rel_path": "modules/mod_alusers/assets/css/newstyle.css", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/style.css b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/style.css new file mode 100644 index 0000000..97e125a --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/style.css @@ -0,0 +1,4 @@ +.alusers .aktiv {color: #009900;} +.alusers .inaktiv {color: #FF0000;} +.alusers dt {display:inline-block;margin-right:20px;min-width:150px;vertical-align:top;} +.alusers dd {display:inline-block;vertical-align:top;} \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/style.css.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/style.css.evidence.json new file mode 100644 index 0000000..7b9de24 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/style.css.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7213", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_alusers/assets/css/style.css -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/style.css)", + "original_sha256": "34722adf5908c18835675b48bf1f7108c208216ce2ae7056455c1e160a86e887", + "original_stat": { + "gid": 30037, + "mtime": 1560332148, + "size": 218, + "uid": 20043 + }, + "rel_path": "modules/mod_alusers/assets/css/style.css", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/index.html b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/index.html new file mode 100644 index 0000000..f28d9de --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/index.html @@ -0,0 +1,10 @@ + + + + + + + +Joomla Module Generator + + diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/index.html.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/index.html.evidence.json new file mode 100644 index 0000000..b13f376 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/index.html.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7210", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_alusers/assets/index.html -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/index.html)", + "original_sha256": "647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d", + "original_stat": { + "gid": 30037, + "mtime": 1560332148, + "size": 191, + "uid": 20043 + }, + "rel_path": "modules/mod_alusers/assets/index.html", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/js/index.html b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/js/index.html new file mode 100644 index 0000000..f28d9de --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/js/index.html @@ -0,0 +1,10 @@ + + + + + + + +Joomla Module Generator + + diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/js/index.html.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/js/index.html.evidence.json new file mode 100644 index 0000000..5e2a085 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/js/index.html.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7215", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_alusers/assets/js/index.html -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/js/index.html)", + "original_sha256": "647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d", + "original_stat": { + "gid": 30037, + "mtime": 1560332148, + "size": 191, + "uid": 20043 + }, + "rel_path": "modules/mod_alusers/assets/js/index.html", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/helper.php b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/helper.php new file mode 100644 index 0000000..9ae62ff --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/helper.php @@ -0,0 +1,315 @@ +setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`users` WHERE `nUserID`='" . (int)$nUserID . "';"); + $result = $db->loadObjectList(); + return (count($result) ? $result[0] : FALSE); + } + + public static function isFloating($password = 0) + { + $hlNum = substr($password, 0, 6); + + $db = JFactory::getDbo(); + $db->setQuery("SELECT isFloating FROM `" . CRMADATBAZIS . "`.`hardlock` WHERE `hlNum`='" . $hlNum . "';"); + $hardlock = $db->loadObject(); + + $db->setQuery("SELECT prID, prLogFilter, prVerID FROM `" . CRMADATBAZIS . "`.`h_programs` WHERE `prPass`='" . $password . "';"); + $program = $db->loadObject(); + + return $hardlock->isFloating == 1 && $program->prVerID >= 23; + } + + public static function getEmails($email = '') + { + if ($email == '') return (FALSE); + $db = JFactory::getDbo(); + $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`u_emails` WHERE `email`='" . $email . "';"); + $result = $db->loadObjectList(); + return (count($result) ? $result : FALSE); + } + + public function getNewsletterEmails($nUserID = 0) + { + if ((int)$nUserID == 0) return (FALSE); + $db = JFactory::getDbo(); + $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`u_emails` WHERE nUserID=" . $nUserID . ";"); + $result = $db->loadObjectList(); + return (count($result) ? $result : FALSE); + } + + public function getIdFromEmail($email = '') + { + if ($email == '') return (FALSE); + $db = JFactory::getDbo(); + $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`u_emails` WHERE email='" . $email . "' ORDER BY u_emails_id LIMIT 1;"); + $result = $db->loadObjectList(); + return (count($result) ? $result[0]->nUserID : FALSE); + } + + public static function getKeys($ids = array()) + { + if (empty($ids)) return (FALSE); + $db = JFactory::getDbo(); + $db->setQuery("SELECT hlNum kulcs_kod FROM `" . CRMADATBAZIS . "`.`hardlock` WHERE `hlUser` IN (" . implode(',', $ids) . ") AND hlStat!=2;"); + $result = $db->loadObjectList(); + return (count($result) ? $result : FALSE); + } + + public static function getPrograms($key = '') + { + if ($key == '') return (FALSE); + $db = JFactory::getDbo(); + $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`h_programs` p + LEFT JOIN `" . CRMADATBAZIS . "`.`p_versions` v ON v.verID=p.prVerID + LEFT JOIN `" . CRMADATBAZIS . "`.`p_types` t ON t.typeCode=p.prTypeID + WHERE prHlNum = '" . $key . "' + ORDER BY prID DESC"); + $result = $db->loadObjectList(); + return (count($result) ? $result : FALSE); + } + + public static function getModules($prid = '') + { + if ((int)$prid == 0) return (FALSE); + $db = JFactory::getDbo(); + $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`p_modules` m + LEFT JOIN `" . CRMADATBAZIS . "`.`p_mtypes` mt ON m.mdID=mt.ID + WHERE m.mdPrID=" . $prid); + $result = $db->loadObjectList(); + return (count($result) ? $result : FALSE); + } + + public static function getAllKeyData($ids = array()) + { + if (empty($ids)) return (FALSE); + + $kulcsok = self::getKeys($ids); + + if (is_array($kulcsok) && count($kulcsok)) { + foreach ($kulcsok as $key => $kulcs) { + $programs = self::getPrograms($kulcs->kulcs_kod); + + if (count($programs) && is_array($programs)) { + foreach ($programs as $key_program => $program) { + $programs[$key_program]->modulok = ModAlusersHelper::getModules($program->prID); + } + } + $kulcsok[$key]->programok = $programs; + } + } + + return (count($kulcsok) ? $kulcsok : FALSE); + } + + public function savePersonalSettings($nUserID = 0, $tomb = array()) + { + if ((int)$nUserID == 0 || !is_array($tomb) || empty($tomb)) return (FALSE); + + $set = ''; + $new = array(); + $mezok = array('strName' => JText::_('MOD_ARCHLINE_NAME'), 'nCtrID' => JText::_('MOD_ARCHLINE_COUNTRY'), 'strZip' => JText::_('MOD_ARCHLINE_ZIP'), 'strCity' => JText::_('MOD_ARCHLINE_CITY'), 'strStreet' => JText::_('MOD_ARCHLINE_ADDRESS'), 'strTel' => JText::_('MOD_ARCHLINE_PHONE'), 'nUserProf' => JText::_('MOD_ARCHLINE_PROFESSION')); + + foreach ($tomb as $k => $v) { + if (in_array($k, array_keys($mezok))) { + $new[$k] = $v; + $set .= ($set == '' ? '' : ', ') . "`" . $k . "`='" . $v . "'"; + } + } + + $db = JFactory::getDbo(); + $query = $db->getQuery(true); + + $db->setQuery("SELECT * FROM `" . JMLADATBAZIS . "`.`dtch_users` WHERE nUserID=" . $nUserID . " LIMIT 1;"); + $jml = $db->loadObjectList(); + $jml = $jml[0]; + + $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`users` WHERE nUserID=" . $nUserID); + $old = $db->loadObjectList(); + $old = $old[0]; + + $strValt = ''; + $valt = array(); + foreach ($mezok as $mezo => $str) { + if (!$old->$mezo || !$new[$mezo] || $old->$mezo != $new[$mezo]) { + $valt[] = $mezo; + $strValt .= $str . " " . JText::_('MOD_ARCHLINE_ORIG') . ": " . $old->$mezo . " " . JText::_('MOD_ARCHLINE_NEW') . ": " . $new[$mezo] . "
"; + } + } + + // crm user history-ba elmenti a változásokat + if (count($valt)) self::insertUserHistory($nUserID, $strValt); + + //foreach (self::getCountries() as $k=>$v) { if ($new['nCtrID']==$k) { $country=$v;break;} } + //foreach (self::getProfessions() as $k=>$v) { if ($new['nUserProf']==$k) { $profession=$v;break;} } + + // crm rekord felülírása + $db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`users` SET " . $set . " WHERE nUserID=" . (int)$nUserID . " LIMIT 1;"); + $db->execute(); + + $db->setQuery("UPDATE " . CRMADATBAZIS . ".users + SET strTel = REPLACE(strTel, '/', ''), strTel = REPLACE(strTel, '.', ''), strTel = REPLACE(strTel, ' ', ''), strTel = REPLACE(strTel, '-', ''), + strTel = REPLACE(strTel, '+', ''), strTel = REPLACE(strTel, ',', ';'), strTel = REPLACE(strTel, '(', ''), strTel = REPLACE(strTel, ')', ''), + strTel = REPLACE(strTel, '[', ''), strTel = REPLACE(strTel, ']', '') + WHERE nUserID = " . (int)$nUserID . " LIMIT 1;"); + $db->execute(); + + // jml rekord felülírása + $db->setQuery("UPDATE `" . JMLADATBAZIS . "`.`dtch_users` SET `name`='" . $new['strName'] . "' WHERE nUserID=" . (int)$nUserID . " LIMIT 1;"); + $db->execute(); + + // jml profile rekordok felülírása + $db->setQuery("UPDATE `" . JMLADATBAZIS . "`.`dtch_jsn_users` SET `country`='" . $new['nCtrID'] . "' WHERE id=" . (int)$jml->id . " LIMIT 1;"); + $db->execute(); + /*$db->setQuery("UPDATE `".JMLADATBAZIS."`.`dtch_jsn_users` SET `profile_value`='".$new['strZip']."' WHERE user_id=".(int)$jml->id." AND `profile_key`='profile.postal_code' LIMIT 1;"); + $db->execute(); + $db->setQuery("UPDATE `".JMLADATBAZIS."`.`dtch_jsn_users` SET `profile_value`='".$new['strCity']."' WHERE user_id=".(int)$jml->id." AND `profile_key`='profile.city' LIMIT 1;"); + $db->execute(); + $db->setQuery("UPDATE `".JMLADATBAZIS."`.`dtch_jsn_users` SET `profile_value`='".$new['strStreet']."' WHERE user_id=".(int)$jml->id." AND `profile_key`='profile.address1' LIMIT 1;"); + $db->execute();*/ + $db->setQuery("UPDATE `" . JMLADATBAZIS . "`.`dtch_jsn_users` SET `phone`='" . $new['strTel'] . "' WHERE id=" . (int)$jml->id . " LIMIT 1;"); + $db->execute(); + $db->setQuery("UPDATE `" . JMLADATBAZIS . "`.`dtch_jsn_users` SET `profession`='" . $new['nUserProf'] . "' WHERE id=" . (int)$jml->id . " LIMIT 1;"); + $db->execute(); + } + + public function getCountries() + { + $db = JFactory::getDbo(); + $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`countries` WHERE ctrID != 37 AND ctrID != 95 AND ctrID != 99 AND ctrID != 94 AND ctrID != 96 AND ctrID != 92 AND ctrID != 91 ;"); + $result = $db->loadObjectList(); + return (count($result) ? $result : FALSE); + } + + public function getProfessions() + { + $db = JFactory::getDbo(); + $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`u_profs`;"); + $result = $db->loadObjectList(); + return (count($result) ? $result : FALSE); + } + + public function savePassword($id, $pass) + { + if ((int)$id > 0) { + $db = JFactory::getDbo(); + $db->setQuery("UPDATE `dtch_users` SET `password`='" . JUserHelper::hashPassword($pass) . "' WHERE id=" . (int)$id . " LIMIT 1;"); + $db->execute(); + } + } + + public function newEmail($nUserID, $email) + { + if ((int)$nUserID > 0 && filter_var($email, FILTER_VALIDATE_EMAIL)) { + $db = JFactory::getDbo(); + $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`u_emails` WHERE `email`='" . $email . "' LIMIT 1;"); + $exist = $db->loadObjectList(); + if (empty($exist)) { + $db->setQuery("INSERT INTO `" . CRMADATBAZIS . "`.`u_emails` (`email`,`nUserID`,`default`,`active`,`deleted`,`newsletter`) VALUES ('" . $email . "','" . $nUserID . "','0','1','0','1');"); + $db->execute(); + $db->setQuery("UPDATE `www_archline_hu`.`dtch_users` SET `email`='" . $email . "' WHERE nUserID=" . $nUserID . " LIMIT 1;"); + $db->execute(); + $db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`users` SET `strEMail`='" . $email . "' WHERE nUserID=" . $nUserID . " LIMIT 1;"); + $db->execute(); + self::insertUserHistory($nUserID, JText::_('MOD_ARCHLINE_NEW_EMAIL') . ': ' . $email); + } + } + } + + public function delEmail($nUserID, $u_emails_id) + { + if ((int)$nUserID > 0 && (int)$u_emails_id > 0) { + $db = JFactory::getDbo(); + $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`u_emails` WHERE `nUserID`='" . $nUserID . "' AND `u_emails_id`='" . (int)$u_emails_id . "' LIMIT 1;"); + $exist = $db->loadObjectList(); + if (!empty($exist)) { + $db->setQuery("DELETE FROM `" . CRMADATBAZIS . "`.`u_emails` WHERE `nUserID`='" . $nUserID . "' AND `u_emails_id`='" . (int)$u_emails_id . "' LIMIT 1;"); + $db->execute(); + self::insertUserHistory($nUserID, JText::_('MOD_ARCHLINE_DEL_EMAIL') . ': ' . $exist[0]->email); + } + } + } + + public function saveNewsletters($nUserID = 0, $ids = array()) + { + if ((int)$nUserID > 0) { + $db = JFactory::getDbo(); + + $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`users` WHERE nUserID=" . (int)$nUserID . " LIMIT 1;"); + $crmUser = $db->loadObjectList(); + $crmUser = $crmUser[0]; + + /* + if ($crmUser->bNewsletter=='Y' && !isset($_POST['bNewsletter'])) // letiltas + { + $db->setQuery("UPDATE `".CRMADATBAZIS."`.`users` SET `bNewsletter`='N' WHERE nUserID=".(int)$nUserID." LIMIT 1;"); + $db->execute(); + self::insertUserHistory($nUserID,JText::_('MOD_ARCHLINE_NEWSLETTER_DISABLED'),array('nTopicID'=>(JFactory::getLanguage()->getTag()=='hu-HU'?54:166))); + } + + if ( (is_null($crmUser->bNewsletter) || $crmUser->bNewsletter=='N') && isset($_POST['bNewsletter'])) // engedélyezés + { + $db->setQuery("UPDATE `".CRMADATBAZIS."`.`users` SET `bNewsletter`='Y' WHERE nUserID=".(int)$nUserID." LIMIT 1;"); + $db->execute(); + self::insertUserHistory($nUserID,JText::_('MOD_ARCHLINE_NEWSLETTER_ENABLED'),array('nTopicID'=>(JFactory::getLanguage()->getTag()=='hu-HU'?38:150))); + } +*/ + + $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`u_emails` WHERE nUserID=" . (int)$nUserID . ";"); + $exist = $db->loadObjectList(); + if (is_array($exist) && count($exist)) { + foreach ($exist as $row) { + if (is_null($ids) || (is_array($ids) && empty($ids))) { + $db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`u_emails` SET `newsletter`=0 WHERE u_emails_id=" . $row->u_emails_id . " AND nUserID=" . (int)$nUserID . " LIMIT 1;"); + $db->execute(); + self::insertUserHistory($nUserID, JText::_('MOD_ARCHLINE_UNSUBSCRIBE_NEWSLETTER') . ': ' . $row->email); + } else { + if ($row->newsletter == 0 && in_array($row->u_emails_id, $ids)) /* elötte nem volt és utána be lett pipálva => FELIRATKOZOTT */ { + $db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`u_emails` SET `newsletter`=1 WHERE u_emails_id=" . $row->u_emails_id . " AND nUserID=" . (int)$nUserID . " LIMIT 1;"); + $db->execute(); + self::insertUserHistory($nUserID, JText::_('MOD_ARCHLINE_SUBSCRIBE_NEWSLETTER') . ': ' . $row->email); + } + if ($row->newsletter == 1 && !in_array($row->u_emails_id, $ids)) /* elötte be volt és utána nem volt bepipálva => LEIRATKOZOTT */ { + $db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`u_emails` SET `newsletter`=0 WHERE u_emails_id=" . $row->u_emails_id . " AND nUserID=" . (int)$nUserID . " LIMIT 1;"); + $db->execute(); + self::insertUserHistory($nUserID, JText::_('MOD_ARCHLINE_UNSUBSCRIBE_NEWSLETTER') . ': ' . $row->email); + } + } + } + } + } + } + + public function insertUserHistory($nUserID = 0, $strInfo = "", $tomb = array()) + { + if ((int)$nUserID > 0 && $strInfo > '') { + $db = JFactory::getDbo(); + $query = $db->getQuery(true); + $item = array( + 'nUserID' => $nUserID, + 'nTopicID' => (isset($tomb['nTopicID']) && (int)$tomb['nTopicID'] > 0 ? (int)$tomb['nTopicID'] : (JFactory::getLanguage()->getTag() == 'hu-HU' ? 364 : 365)), + 'dateEvent' => (isset($tomb['dateEvent']) && $tomb['dateEvent'] > '' ? $tomb['dateEvent'] : date('Y-m-d', time())), + 'strPlace' => (isset($tomb['strPlace']) && $tomb['strPlace'] > '' ? $tomb['strPlace'] : 'web'), + 'strInfo' => $strInfo, + 'nManagerID' => (isset($tomb['nManagerID']) && (int)$tomb['nManagerID'] > 0 ? $tomb['nManagerID'] : 36), + 'insertDate' => (isset($tomb['insertDate']) && $tomb['insertDate'] > '' ? $tomb['insertDate'] : date('Y-m-d H:i:s', time())), + ); + + foreach ($item as $v) $values[] = $db->quote($v); + $query->insert("`" . CRMADATBAZIS . "`.`u_history`")->columns($db->quoteName(array_keys($item)))->values(implode(',', $values)); + $db->setQuery($query); + $db->execute(); + } + } +} // end of class \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/helper.php.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/helper.php.evidence.json new file mode 100644 index 0000000..142ec68 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/helper.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7206", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_alusers/helper.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/helper.php)", + "original_sha256": "f32a272853a5e3b28097863308241216bf9ca011cf6dafe4ac4ccb63aeb8d7ae", + "original_stat": { + "gid": 30037, + "mtime": 1684394374, + "size": 14517, + "uid": 12425 + }, + "rel_path": "modules/mod_alusers/helper.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/index.html b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/index.html new file mode 100644 index 0000000..f28d9de --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/index.html @@ -0,0 +1,10 @@ + + + + + + + +Joomla Module Generator + + diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/index.html.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/index.html.evidence.json new file mode 100644 index 0000000..b8b9d24 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/index.html.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7204", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_alusers/index.html -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/index.html)", + "original_sha256": "647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d", + "original_stat": { + "gid": 30037, + "mtime": 1560332148, + "size": 191, + "uid": 20043 + }, + "rel_path": "modules/mod_alusers/index.html", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.php b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.php new file mode 100644 index 0000000..304fceb --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.php @@ -0,0 +1,86 @@ +addStyleSheet("/modules/mod_alusers/assets/css/newstyle.css"); +$doc->addScript("/modules/mod_alusers/assets/js/script.js"); + +$user=JFactory::getUser(); +$profile=JUserHelper::getProfile($user->id); +$lang=JFactory::getLanguage()->getTag(); +$crmUser=ModAlusersHelper::getUserFromCRM((int)$user->nUserID); + +if ((int)$user->nUserID>0) +{ + $value = $app->input->cookie->get('alSessionID', null); // Get the cookie + if ($value == null) // If there's no cookie value, manually set it + { + $app->input->cookie->set('alSessionID', md5((int)$user->nUserID), (time()+30), $app->get('cookie_path', '/'), $app->get('cookie_domain'), $app->isSSLConnection()); // Set the cookie + $app->input->cookie->set('alUserName', $user->name, (time()+30), $app->get('cookie_path', '/'), $app->get('cookie_domain'), $app->isSSLConnection()); // Set the cookie + } +} + +// ha még új a user, és nincs benne a crm rendszerben, akkor megpróbál egy user szinkronizációt +if ($user->nUserID===NULL) +{ + file_get_contents("http://www.archline.hu/maintenance/sync_user.php"); + $res=ModAlusersHelper::getIdFromEmail($user->username); + if ((int)$res>0) $user->nUserID=$res; +} + +// hírlevél beállítások mentése +if (isset($_POST) && !empty($_POST) && isset($_POST['nl']) ) +{ + if ((int)$_POST['del_email']==0 && trim($_POST['new_email'])=='') ModAlusersHelper::saveNewsletters($user->nUserID,$_POST['newsletter']); + ModAlusersHelper::newEmail($user->nUserID,$_POST['new_email']); + ModAlusersHelper::delEmail($user->nUserID,(int)$_POST['del_email']); + $user=JFactory::getUser(); // újra beolvassa az adatbázisból a rekordot mentés után + $crmUser=ModAlusersHelper::getUserFromCRM((int)$user->nUserID); // újra beolvassa az adatbázisból a rekordot mentés után + JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_NEWSLETTER_SETTINGS_SUCCESS'),'message'); +} + +// személyes adatok mentése +if (isset($_POST) && !empty($_POST) && isset($_POST['ps']) ) +{ + ModAlusersHelper::savePersonalSettings($user->nUserID,$_POST); + $user=JFactory::getUser(); // újra beolvassa az adatbázisból a rekordot mentés után + $crmUser=ModAlusersHelper::getUserFromCRM((int)$user->nUserID); // újra beolvassa az adatbázisból a rekordot mentés után + JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PERSONAL_DATA_SUCCESS'),'message'); +} + +// új jelszó mentése +if (isset($_POST) && !empty($_POST) && isset($_POST['pw']) ) +{ + $pass1=trim(addslashes($_POST['password1'])); + $pass2=trim(addslashes($_POST['password2'])); + + if ($pass1!=$pass2) {JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PASSWORD_CHANGE_ERROR'),'error');} + elseif (strlen($pass1)<6 || strlen($pass1)>32) {JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PASSWORD_CHANGE_ERROR2'),'error');} + else + { + ModAlusersHelper::savePassword($user->id,$pass1); + JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PASSWORD_CHANGE_SUCCESS'),'message'); + } +} + +$newsletterEmails=ModAlusersHelper::getNewsletterEmails($user->nUserID); +$countries=ModAlusersHelper::getCountries(); +$profs=ModAlusersHelper::getProfessions(); + +$emails=ModAlusersHelper::getEmails($user->email); +if ($emails && count($emails)>0) +{ + foreach ($emails as $tmp) {$ids[]=$tmp->nUserID;} + $kulcsok=ModAlusersHelper::getAllKeyData($ids); +} + +require JModuleHelper::getLayoutPath('mod_alusers', $params->get('layout', 'default')); \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.php.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.php.evidence.json new file mode 100644 index 0000000..1225d57 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7207", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_alusers/mod_alusers.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.php)", + "original_sha256": "b3a03c1a602038b8d04ed872392111f716c34c5d602a192d4960aa9830ed95b5", + "original_stat": { + "gid": 30037, + "mtime": 1560339689, + "size": 3927, + "uid": 20043 + }, + "rel_path": "modules/mod_alusers/mod_alusers.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.xml b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.xml new file mode 100644 index 0000000..411eb45 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.xml @@ -0,0 +1,151 @@ + + + MOD_ARCHLINE_USERS + Apr 2017 + Zsolt Fekete + zsolt.fekete@cadline.hu + https://www.facbook.com/mcleod78 + Copyright © 2017 - All rights reserved. + GNU General Public License v2.0 + 0.0.1 + MOD__P___ARCHLINE_USERS___P_ + + mod_alusers.php + mod_alusers.xml + index.html + language + tmpl + assets + + + +
+ + + + + + + + + + + + + +
+
+ + +
+ + en-GB/en-GB.mod_alusers.sys.ini + en-GB/en-GB.mod_alusers.ini + hu-HU/hu-HU.mod_alusers.sys.ini + hu-HU/hu-HU.mod_alusers.ini + +
\ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.xml.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.xml.evidence.json new file mode 100644 index 0000000..ea4c515 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.xml.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7205", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_alusers/mod_alusers.xml -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.xml)", + "original_sha256": "6c84ae2988438c5b40555e8862b72fce0d349b203dfcf54a58f3f9ba1ebf289e", + "original_stat": { + "gid": 30037, + "mtime": 1560332148, + "size": 6165, + "uid": 20043 + }, + "rel_path": "modules/mod_alusers/mod_alusers.xml", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/default.php b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/default.php new file mode 100644 index 0000000..3a68231 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/default.php @@ -0,0 +1,268 @@ + + +id > 0) : ?> +

+ +
+
+ +

+ +
+
+
+
newsletter == 1 ? ' checked="checked" ' : '') ?> />
+ + +
+ +
+ + +
+ + + + +

+ + +
+
+
+
+

+ + +
+ +

+ + +
+

+
+
+
+
:
+
username ?>
+
:
+
+ +
+
+
+
:
+
+
:
+
+
+
+
:
+
+
:
+
+ +
+
+
+

+ +
+ +
+

+
+
+
:
+
strInvoiceName ?>
+
:
+
+ nInvoiceCtrID == $country->ctrID) { + echo $country->ctrNameEng; + break; + } + } ?> +
+
+
+
:
+
strInvoiceEMail ?>
+
:
+
strInvoiceZip ?>
+
+
+
:
+
strTaxNumber ?>
+
:
+
strInvoiceCity ?>
+
+
+
:
+
strInvoiceEAccount == 'Y' ? JText::_('JYES') : JText::_('JNO')) ?>
+
:
+
strInvoiceAddress ?>
+
+
+

+ +
+

+

+
+
+
+
:
+
+
+
+
:
+
+
+
+

+ + +

+
+ + +
+

+ +
+ +
+
+
kulcs_kod; ?>

+ + programok) && count($kulcs->programok)) { + foreach ($kulcs->programok as $program) { + if (strpos($program->prPass, 'L') !== false) { + $program->verName .= ' Live'; + } + if (substr($program->prPass, 0, 2) == 99) { + $program->typeName = "Non-Profit"; + } + $class = ($program->prStat == 0 ? "aktiv" : "inaktiv"); + + if ($program->prStat == 0) { + $aktiv .= '
' . JText::_('MOD_ARCHLINE_VERSION_LEGEND') . '
+
' . $program->verName . '

+
' . JText::_('MOD_ARCHLINE_PROGRAM_TYPE_LEGEND') . '
+
' . $program->typeName . '

+
' . JText::_('MOD_ARCHLINE_SERIAL_NUMBER_LEGEND') . '
+
' . ($program->prSellDate != '0000-00-00' ? $program->prPass : '') . '

+
' . JText::_('MOD_ARCHLINE_ACTIVATION_NUMBER_LEGEND') . '
+
' . ($program->prSellDate != '0000-00-00' ? $program->prActCode : '') . '

'; + if (!empty($program->modulok)) { + $aktiv .= '
' . JText::_('MOD_ARCHLINE_MODULES_LEGEND') . '
'; + $aktiv .= '
'; + foreach ($program->modulok as $modul) { + $aktiv .= ($lang == 'hu-HU' ? $modul->mdtName : $modul->mdtNameEng) . '
'; + $aktiv .= ($program->prSellDate != '0000-00-00' ? $modul->mdCode : '') . '
'; + } + $aktiv .= '

'; + } + $aktiv .= '
'; + } else { + $inaktiv .= '
' . JText::_('MOD_ARCHLINE_VERSION_LEGEND') . '
+
' . $program->verName . '

+
' . JText::_('MOD_ARCHLINE_PROGRAM_TYPE_LEGEND') . '
+
' . $program->typeName . '

+
' . JText::_('MOD_ARCHLINE_SERIAL_NUMBER_LEGEND') . '
+
' . ($program->prSellDate != '0000-00-00' ? $program->prPass : '') . '

+
' . JText::_('MOD_ARCHLINE_ACTIVATION_NUMBER_LEGEND') . '
+
' . ($program->prSellDate != '0000-00-00' ? $program->prActCode : '') . '

'; + + if (!empty($program->modulok)) { + $inaktiv .= '
' . JText::_('MOD_ARCHLINE_MODULES_LEGEND') . '
'; + $inaktiv .= '
'; + foreach ($program->modulok as $modul) { + $inaktiv .= ($lang == 'hu-HU' ? $modul->mdtName : $modul->mdtNameEng) . '
'; + $inaktiv .= ($program->prSellDate != '0000-00-00' ? $modul->mdCode : '') . '
'; + } + $inaktiv .= '

'; + } + $inaktiv .= '
'; + } + } + } + ?> + + + + '') : ?> +


+ + +
+ +
+ + + + + + \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/default.php.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/default.php.evidence.json new file mode 100644 index 0000000..ffb8f44 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/default.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7209", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_alusers/tmpl/default.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/default.php)", + "original_sha256": "1fa3716d8853febb7a6630ffa262cd2dd2e3c9cdbf04b7fa107b4fafe7afa990", + "original_stat": { + "gid": 30037, + "mtime": 1684394500, + "size": 15571, + "uid": 20043 + }, + "rel_path": "modules/mod_alusers/tmpl/default.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/index.html b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/index.html new file mode 100644 index 0000000..f28d9de --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/index.html @@ -0,0 +1,10 @@ + + + + + + + +Joomla Module Generator + + diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/index.html.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/index.html.evidence.json new file mode 100644 index 0000000..d06649e --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/index.html.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7208", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_alusers/tmpl/index.html -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/index.html)", + "original_sha256": "647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d", + "original_stat": { + "gid": 30037, + "mtime": 1560332148, + "size": 191, + "uid": 20043 + }, + "rel_path": "modules/mod_alusers/tmpl/index.html", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/helper.php b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/helper.php new file mode 100644 index 0000000..9a1ba2b --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/helper.php @@ -0,0 +1,77 @@ +getQuery(true); + + $query->select(array('c.*')); + $query->from($db->quoteName('www_archline_hu.aleducation_courses', 'c')); + $query->where($db->quoteName('c.lang') . ' = ' . $db->quote($lang)); + $query->where($db->quoteName('c.published') . ' = ' . $db->quote('Y')); + + // Reset the query using our newly populated query object. + $db->setQuery($query); + + return $db->loadObjectList(); + } + + public static function getApplicationPercentage($courseId, $userId) + { + $db = JFactory::getDbo(); + + $query = $db->getQuery(true); + + $query->select(array('e.*')); + $query->from($db->quoteName('www_archline_hu.aleducation_applications', 'e')); + $query->where($db->quoteName('e.user_id') . ' = ' . $db->quote($userId)); + $query->where($db->quoteName('e.course_id') . ' = ' . $db->quote($courseId)); + + $db->setQuery($query); + + $result = $db->loadObject(); + + return empty($result) ? 0 : $result->percentage; + } + + public static function getApplications($userId) + { + $db = JFactory::getDbo(); + + $query = $db->getQuery(true); + + $query->select(array('e.*')); + $query->from($db->quoteName('www_archline_hu.aleducation_applications', 'e')); + $query->where($db->quoteName('e.user_id') . ' = ' . $db->quote($userId)); + + $db->setQuery($query); + + return $db->loadObjectList(); + } + + public static function getColor() + { + return self::getLang() == "hun" ? "#e67e22" : "#3897d3"; + } + + public static function getLang() + { + $lang = JFactory::getLanguage()->getTag(); + + if ($lang == 'de-DE') + return 'de'; + + if ($lang == 'hu-HU') + return 'hun'; + + return 'eng'; + } +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/helper.php.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/helper.php.evidence.json new file mode 100644 index 0000000..22d5f4f --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/helper.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7230", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_course_list/helper.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/helper.php)", + "original_sha256": "7b74a823c28f5516bbc785b36d16beafb6d01d229db1af93561488d67911fd27", + "original_stat": { + "gid": 30037, + "mtime": 1693302543, + "size": 1848, + "uid": 20043 + }, + "rel_path": "modules/mod_course_list/helper.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/index.html b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/index.html new file mode 100644 index 0000000..f28d9de --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/index.html @@ -0,0 +1,10 @@ + + + + + + + +Joomla Module Generator + + diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/index.html.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/index.html.evidence.json new file mode 100644 index 0000000..47ca113 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/index.html.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7228", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_course_list/index.html -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/index.html)", + "original_sha256": "647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d", + "original_stat": { + "gid": 30037, + "mtime": 1693295792, + "size": 191, + "uid": 20043 + }, + "rel_path": "modules/mod_course_list/index.html", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini new file mode 100644 index 0000000..ccf3660 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini @@ -0,0 +1,4 @@ +MOD_ARCHLINE_USERS="ARCHLine users" +MOD__P___ARCHLINE_USERS___P_="

+ ARCHLine users +

" diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini.evidence.json new file mode 100644 index 0000000..4649be5 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7235", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini)", + "original_sha256": "4289718b100745f12113baff97d577817d0ad7fca3ed8a7d37360bd06b95d0ed", + "original_stat": { + "gid": 30037, + "mtime": 1693295792, + "size": 96, + "uid": 20043 + }, + "rel_path": "modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini new file mode 100644 index 0000000..ccf3660 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini @@ -0,0 +1,4 @@ +MOD_ARCHLINE_USERS="ARCHLine users" +MOD__P___ARCHLINE_USERS___P_="

+ ARCHLine users +

" diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini.evidence.json new file mode 100644 index 0000000..9aea332 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7234", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini)", + "original_sha256": "4289718b100745f12113baff97d577817d0ad7fca3ed8a7d37360bd06b95d0ed", + "original_stat": { + "gid": 30037, + "mtime": 1693295792, + "size": 96, + "uid": 20043 + }, + "rel_path": "modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini new file mode 100644 index 0000000..ccf3660 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini @@ -0,0 +1,4 @@ +MOD_ARCHLINE_USERS="ARCHLine users" +MOD__P___ARCHLINE_USERS___P_="

+ ARCHLine users +

" diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini.evidence.json new file mode 100644 index 0000000..ce94715 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7232", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini)", + "original_sha256": "4289718b100745f12113baff97d577817d0ad7fca3ed8a7d37360bd06b95d0ed", + "original_stat": { + "gid": 30037, + "mtime": 1693295792, + "size": 96, + "uid": 20043 + }, + "rel_path": "modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini new file mode 100644 index 0000000..ccf3660 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini @@ -0,0 +1,4 @@ +MOD_ARCHLINE_USERS="ARCHLine users" +MOD__P___ARCHLINE_USERS___P_="

+ ARCHLine users +

" diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini.evidence.json new file mode 100644 index 0000000..d7f580d --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7233", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini)", + "original_sha256": "4289718b100745f12113baff97d577817d0ad7fca3ed8a7d37360bd06b95d0ed", + "original_stat": { + "gid": 30037, + "mtime": 1693295792, + "size": 96, + "uid": 20043 + }, + "rel_path": "modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.php b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.php new file mode 100644 index 0000000..b6fe741 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.php @@ -0,0 +1,12 @@ +getTag(); +$user = JFactory::getUser(); +$courses = ModCourseListHelper::getCourses(); +$color = ModCourseListHelper::getColor(); +$applications = ModCourseListHelper::getApplications($user->id); + +require JModuleHelper::getLayoutPath('mod_course_list', $params->get('layout', 'default')); diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.php.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.php.evidence.json new file mode 100644 index 0000000..62f5f2d --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7229", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_course_list/mod_course_list.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.php)", + "original_sha256": "7ad520f80ac058de97c4942710890f49f62e7962bae0dc699694ddddc98961ac", + "original_stat": { + "gid": 30037, + "mtime": 1693295792, + "size": 450, + "uid": 20043 + }, + "rel_path": "modules/mod_course_list/mod_course_list.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.xml b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.xml new file mode 100644 index 0000000..e177236 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.xml @@ -0,0 +1,42 @@ + + + MOD_COURSE_LIST + August 2022 + Nagy Máté + mate.nagy@cadline.hu + Copyright © 2021 - All rights reserved. + 0.0.1 + Create a list for the actual courses + + mod_course_list.php + mod_course_list.xml + index.html + helper.php + language + tmpl + + + +
+ + + + + + + + + + + +
+
+
+ + + en-GB/en-GB.mod_course_list.sys.ini + en-GB/en-GB.mod_course_list.ini + hu-HU/hu-HU.mod_course_list.sys.ini + hu-HU/hu-HU.mod_course_list.ini + +
diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.xml.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.xml.evidence.json new file mode 100644 index 0000000..e5164e6 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.xml.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7231", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_course_list/mod_course_list.xml -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.xml)", + "original_sha256": "2de45f9fb95060b6131cfba8e5a46bbd3f6027cbd11a97026966fbf948c0c89a", + "original_stat": { + "gid": 30037, + "mtime": 1693295792, + "size": 1947, + "uid": 20043 + }, + "rel_path": "modules/mod_course_list/mod_course_list.xml", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/default.php b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/default.php new file mode 100644 index 0000000..7ebc095 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/default.php @@ -0,0 +1,328 @@ + + + + + \ No newline at end of file diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/default.php.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/default.php.evidence.json new file mode 100644 index 0000000..2712fc5 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/default.php.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7237", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_course_list/tmpl/default.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/default.php)", + "original_sha256": "7c7e3eec8538662acb59cbd9173f748aead4c052a1e10271c2216389983c83a2", + "original_stat": { + "gid": 30037, + "mtime": 1693388160, + "size": 10892, + "uid": 20043 + }, + "rel_path": "modules/mod_course_list/tmpl/default.php", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +} diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/index.html b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/index.html new file mode 100644 index 0000000..f28d9de --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/index.html @@ -0,0 +1,10 @@ + + + + + + + +Joomla Module Generator + + diff --git a/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/index.html.evidence.json b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/index.html.evidence.json new file mode 100644 index 0000000..5aa44d6 --- /dev/null +++ b/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/index.html.evidence.json @@ -0,0 +1,15 @@ +{ + "finding_ref": "7236", + "log_excerpt": "[quarantine] www.archlinexp.eu:modules/mod_course_list/tmpl/index.html -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/index.html)", + "original_sha256": "647cde511844340d9fac1c8247d2ddbcb03c29471da015a4eaf34224a623815d", + "original_stat": { + "gid": 30037, + "mtime": 1693295792, + "size": 191, + "uid": 20043 + }, + "rel_path": "modules/mod_course_list/tmpl/index.html", + "result": "quarantined", + "timestamp": "20260718T160204Z", + "vhost": "www.archlinexp.eu" +}