Compare commits
24 Commits
addf7585f2
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ea89aa35e | |||
| 50f5289191 | |||
| f8dcd5ba41 | |||
| 8f5015f7d7 | |||
| efcd26fb29 | |||
| 2ee0f976fd | |||
| a3087a5e34 | |||
| 525a30b541 | |||
| f5471a8d01 | |||
| bcdcdd679a | |||
| 88cffc12a5 | |||
| 3bffdabc64 | |||
| 5b45bdfa6b | |||
| 4f5d034e53 | |||
| 17d4bc51f4 | |||
| fc4209eb40 | |||
| 545b629129 | |||
| eceace7e5e | |||
| cb9c7694db | |||
| 4c99e1cbee | |||
| 39c97e1e3c | |||
| 720c25bd5c | |||
| ae0301c5be | |||
| 8f31377b99 |
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "user-manager-ui",
|
"name": "user-manager-ui",
|
||||||
"version": "4.0.0",
|
"version": "2.0.0",
|
||||||
|
"minApiVersion":"6.1.3",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"ng": "ng",
|
"ng": "ng",
|
||||||
"start:ssl": "ng serve --ssl -o",
|
"start:ssl": "ng serve --ssl -o",
|
||||||
@@ -32,6 +33,7 @@
|
|||||||
"bootstrap-icons": "^1.11.3",
|
"bootstrap-icons": "^1.11.3",
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
"moment": "^2.30.1",
|
"moment": "^2.30.1",
|
||||||
|
"ng2-pdf-viewer": "^10.4.0",
|
||||||
"rxjs": "~7.8.0",
|
"rxjs": "~7.8.0",
|
||||||
"sweetalert2": "^11.12.3",
|
"sweetalert2": "^11.12.3",
|
||||||
"tslib": "^2.3.0",
|
"tslib": "^2.3.0",
|
||||||
|
|||||||
@@ -68,6 +68,9 @@ importers:
|
|||||||
moment:
|
moment:
|
||||||
specifier: ^2.30.1
|
specifier: ^2.30.1
|
||||||
version: 2.30.1
|
version: 2.30.1
|
||||||
|
ng2-pdf-viewer:
|
||||||
|
specifier: ^10.4.0
|
||||||
|
version: 10.4.0
|
||||||
rxjs:
|
rxjs:
|
||||||
specifier: ~7.8.0
|
specifier: ~7.8.0
|
||||||
version: 7.8.2
|
version: 7.8.2
|
||||||
@@ -1890,6 +1893,10 @@ packages:
|
|||||||
caniuse-lite@1.0.30001731:
|
caniuse-lite@1.0.30001731:
|
||||||
resolution: {integrity: sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==}
|
resolution: {integrity: sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==}
|
||||||
|
|
||||||
|
canvas@3.1.2:
|
||||||
|
resolution: {integrity: sha512-Z/tzFAcBzoCvJlOSlCnoekh1Gu8YMn0J51+UAuXJAbW1Z6I9l2mZgdD7738MepoeeIcUdDtbMnOg6cC7GJxy/g==}
|
||||||
|
engines: {node: ^18.12.0 || >= 20.9.0}
|
||||||
|
|
||||||
chalk@4.1.2:
|
chalk@4.1.2:
|
||||||
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
|
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -1905,6 +1912,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
|
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
|
||||||
engines: {node: '>= 8.10.0'}
|
engines: {node: '>= 8.10.0'}
|
||||||
|
|
||||||
|
chownr@1.1.4:
|
||||||
|
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
|
||||||
|
|
||||||
chownr@2.0.0:
|
chownr@2.0.0:
|
||||||
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
|
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -2096,6 +2106,14 @@ packages:
|
|||||||
supports-color:
|
supports-color:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
decompress-response@6.0.0:
|
||||||
|
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
|
deep-extend@0.6.0:
|
||||||
|
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
|
||||||
|
engines: {node: '>=4.0.0'}
|
||||||
|
|
||||||
default-gateway@6.0.3:
|
default-gateway@6.0.3:
|
||||||
resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
|
resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
@@ -2123,6 +2141,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
|
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
|
||||||
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
|
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
|
||||||
|
|
||||||
|
detect-libc@2.0.4:
|
||||||
|
resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
detect-node@2.1.0:
|
detect-node@2.1.0:
|
||||||
resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
|
resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
|
||||||
|
|
||||||
@@ -2187,6 +2209,9 @@ packages:
|
|||||||
encoding@0.1.13:
|
encoding@0.1.13:
|
||||||
resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
|
resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
|
||||||
|
|
||||||
|
end-of-stream@1.4.5:
|
||||||
|
resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
|
||||||
|
|
||||||
engine.io-parser@5.2.3:
|
engine.io-parser@5.2.3:
|
||||||
resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==}
|
resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==}
|
||||||
engines: {node: '>=10.0.0'}
|
engines: {node: '>=10.0.0'}
|
||||||
@@ -2306,6 +2331,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
|
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
|
expand-template@2.0.3:
|
||||||
|
resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
exponential-backoff@3.1.2:
|
exponential-backoff@3.1.2:
|
||||||
resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==}
|
resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==}
|
||||||
|
|
||||||
@@ -2399,6 +2428,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
|
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
|
fs-constants@1.0.0:
|
||||||
|
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
|
||||||
|
|
||||||
fs-extra@8.1.0:
|
fs-extra@8.1.0:
|
||||||
resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
|
resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
|
||||||
engines: {node: '>=6 <7 || >=8'}
|
engines: {node: '>=6 <7 || >=8'}
|
||||||
@@ -2449,6 +2481,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
|
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
|
github-from-package@0.0.0:
|
||||||
|
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
|
||||||
|
|
||||||
glob-parent@5.1.2:
|
glob-parent@5.1.2:
|
||||||
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
|
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
@@ -2618,6 +2653,9 @@ packages:
|
|||||||
inherits@2.0.4:
|
inherits@2.0.4:
|
||||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||||
|
|
||||||
|
ini@1.3.8:
|
||||||
|
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
|
||||||
|
|
||||||
ini@4.1.2:
|
ini@4.1.2:
|
||||||
resolution: {integrity: sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==}
|
resolution: {integrity: sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==}
|
||||||
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
|
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
|
||||||
@@ -2993,6 +3031,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
|
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
mimic-response@3.1.0:
|
||||||
|
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
mini-css-extract-plugin@2.8.1:
|
mini-css-extract-plugin@2.8.1:
|
||||||
resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
|
resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==}
|
||||||
engines: {node: '>= 12.13.0'}
|
engines: {node: '>= 12.13.0'}
|
||||||
@@ -3051,6 +3093,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
|
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
|
|
||||||
|
mkdirp-classic@0.5.3:
|
||||||
|
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
|
||||||
|
|
||||||
mkdirp@0.5.6:
|
mkdirp@0.5.6:
|
||||||
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
|
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -3086,6 +3131,9 @@ packages:
|
|||||||
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
napi-build-utils@2.0.0:
|
||||||
|
resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==}
|
||||||
|
|
||||||
needle@3.3.1:
|
needle@3.3.1:
|
||||||
resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==}
|
resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==}
|
||||||
engines: {node: '>= 4.4.x'}
|
engines: {node: '>= 4.4.x'}
|
||||||
@@ -3102,13 +3150,23 @@ packages:
|
|||||||
neo-async@2.6.2:
|
neo-async@2.6.2:
|
||||||
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
|
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
|
||||||
|
|
||||||
|
ng2-pdf-viewer@10.4.0:
|
||||||
|
resolution: {integrity: sha512-TPh1oLZoeARggreTG60Sl3ikSn+Z3+At9pLZ0o/vxPjc7mW2ok2XPyl2Oqz7VyP80ipVorldm1hsLPBmNe2zzA==}
|
||||||
|
|
||||||
nice-napi@1.0.2:
|
nice-napi@1.0.2:
|
||||||
resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==}
|
resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==}
|
||||||
os: ['!win32']
|
os: ['!win32']
|
||||||
|
|
||||||
|
node-abi@3.75.0:
|
||||||
|
resolution: {integrity: sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
node-addon-api@3.2.1:
|
node-addon-api@3.2.1:
|
||||||
resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==}
|
resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==}
|
||||||
|
|
||||||
|
node-addon-api@7.1.1:
|
||||||
|
resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
|
||||||
|
|
||||||
node-forge@1.3.1:
|
node-forge@1.3.1:
|
||||||
resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
|
resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
|
||||||
engines: {node: '>= 6.13.0'}
|
engines: {node: '>= 6.13.0'}
|
||||||
@@ -3310,6 +3368,14 @@ packages:
|
|||||||
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
|
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
path2d@0.2.2:
|
||||||
|
resolution: {integrity: sha512-+vnG6S4dYcYxZd+CZxzXCNKdELYZSKfohrk98yajCo1PtRoDgCTrrwOvK1GT0UoAdVszagDVllQc0U1vaX4NUQ==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
pdfjs-dist@4.8.69:
|
||||||
|
resolution: {integrity: sha512-IHZsA4T7YElCKNNXtiLgqScw4zPd3pG9do8UrznC757gMd7UPeHSL2qwNNMJo4r79fl8oj1Xx+1nh2YkzdMpLQ==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
picocolors@1.1.1:
|
picocolors@1.1.1:
|
||||||
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
|
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
|
||||||
|
|
||||||
@@ -3387,6 +3453,11 @@ packages:
|
|||||||
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
|
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
engines: {node: ^10 || ^12 || >=14}
|
||||||
|
|
||||||
|
prebuild-install@7.1.3:
|
||||||
|
resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
proc-log@3.0.0:
|
proc-log@3.0.0:
|
||||||
resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
|
resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==}
|
||||||
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
|
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
|
||||||
@@ -3417,6 +3488,9 @@ packages:
|
|||||||
prr@1.0.1:
|
prr@1.0.1:
|
||||||
resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
|
resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
|
||||||
|
|
||||||
|
pump@3.0.3:
|
||||||
|
resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==}
|
||||||
|
|
||||||
punycode@1.4.1:
|
punycode@1.4.1:
|
||||||
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
|
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
|
||||||
|
|
||||||
@@ -3446,6 +3520,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
|
resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
|
||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
|
|
||||||
|
rc@1.2.8:
|
||||||
|
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
read-package-json-fast@3.0.2:
|
read-package-json-fast@3.0.2:
|
||||||
resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
|
resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
|
||||||
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
|
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
|
||||||
@@ -3713,6 +3791,12 @@ packages:
|
|||||||
resolution: {integrity: sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==}
|
resolution: {integrity: sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==}
|
||||||
engines: {node: ^16.14.0 || >=18.0.0}
|
engines: {node: ^16.14.0 || >=18.0.0}
|
||||||
|
|
||||||
|
simple-concat@1.0.1:
|
||||||
|
resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
|
||||||
|
|
||||||
|
simple-get@4.0.1:
|
||||||
|
resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
|
||||||
|
|
||||||
slash@4.0.0:
|
slash@4.0.0:
|
||||||
resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
|
resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -3831,6 +3915,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
|
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
strip-json-comments@2.0.1:
|
||||||
|
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
supports-color@7.2.0:
|
supports-color@7.2.0:
|
||||||
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
|
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -3854,6 +3942,13 @@ packages:
|
|||||||
resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==}
|
resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
tar-fs@2.1.3:
|
||||||
|
resolution: {integrity: sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==}
|
||||||
|
|
||||||
|
tar-stream@2.2.0:
|
||||||
|
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
tar@6.2.1:
|
tar@6.2.1:
|
||||||
resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
|
resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -3921,6 +4016,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==}
|
resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==}
|
||||||
engines: {node: ^16.14.0 || >=18.0.0}
|
engines: {node: ^16.14.0 || >=18.0.0}
|
||||||
|
|
||||||
|
tunnel-agent@0.6.0:
|
||||||
|
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
|
||||||
|
|
||||||
type-fest@0.21.3:
|
type-fest@0.21.3:
|
||||||
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
|
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -6061,7 +6159,7 @@ snapshots:
|
|||||||
|
|
||||||
'@npmcli/fs@3.1.1':
|
'@npmcli/fs@3.1.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
semver: 7.6.0
|
semver: 7.7.2
|
||||||
|
|
||||||
'@npmcli/git@5.0.8':
|
'@npmcli/git@5.0.8':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -6092,7 +6190,7 @@ snapshots:
|
|||||||
json-parse-even-better-errors: 3.0.2
|
json-parse-even-better-errors: 3.0.2
|
||||||
normalize-package-data: 6.0.2
|
normalize-package-data: 6.0.2
|
||||||
proc-log: 4.2.0
|
proc-log: 4.2.0
|
||||||
semver: 7.6.0
|
semver: 7.7.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- bluebird
|
- bluebird
|
||||||
|
|
||||||
@@ -6669,6 +6767,12 @@ snapshots:
|
|||||||
|
|
||||||
caniuse-lite@1.0.30001731: {}
|
caniuse-lite@1.0.30001731: {}
|
||||||
|
|
||||||
|
canvas@3.1.2:
|
||||||
|
dependencies:
|
||||||
|
node-addon-api: 7.1.1
|
||||||
|
prebuild-install: 7.1.3
|
||||||
|
optional: true
|
||||||
|
|
||||||
chalk@4.1.2:
|
chalk@4.1.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-styles: 4.3.0
|
ansi-styles: 4.3.0
|
||||||
@@ -6690,6 +6794,9 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
|
|
||||||
|
chownr@1.1.4:
|
||||||
|
optional: true
|
||||||
|
|
||||||
chownr@2.0.0: {}
|
chownr@2.0.0: {}
|
||||||
|
|
||||||
chrome-trace-event@1.0.4: {}
|
chrome-trace-event@1.0.4: {}
|
||||||
@@ -6872,6 +6979,14 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ms: 2.1.3
|
ms: 2.1.3
|
||||||
|
|
||||||
|
decompress-response@6.0.0:
|
||||||
|
dependencies:
|
||||||
|
mimic-response: 3.1.0
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
deep-extend@0.6.0:
|
||||||
|
optional: true
|
||||||
|
|
||||||
default-gateway@6.0.3:
|
default-gateway@6.0.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
execa: 5.1.1
|
execa: 5.1.1
|
||||||
@@ -6894,6 +7009,9 @@ snapshots:
|
|||||||
|
|
||||||
destroy@1.2.0: {}
|
destroy@1.2.0: {}
|
||||||
|
|
||||||
|
detect-libc@2.0.4:
|
||||||
|
optional: true
|
||||||
|
|
||||||
detect-node@2.1.0: {}
|
detect-node@2.1.0: {}
|
||||||
|
|
||||||
di@0.0.1: {}
|
di@0.0.1: {}
|
||||||
@@ -6958,6 +7076,11 @@ snapshots:
|
|||||||
iconv-lite: 0.6.3
|
iconv-lite: 0.6.3
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
end-of-stream@1.4.5:
|
||||||
|
dependencies:
|
||||||
|
once: 1.4.0
|
||||||
|
optional: true
|
||||||
|
|
||||||
engine.io-parser@5.2.3: {}
|
engine.io-parser@5.2.3: {}
|
||||||
|
|
||||||
engine.io@6.6.4:
|
engine.io@6.6.4:
|
||||||
@@ -7111,6 +7234,9 @@ snapshots:
|
|||||||
signal-exit: 3.0.7
|
signal-exit: 3.0.7
|
||||||
strip-final-newline: 2.0.0
|
strip-final-newline: 2.0.0
|
||||||
|
|
||||||
|
expand-template@2.0.3:
|
||||||
|
optional: true
|
||||||
|
|
||||||
exponential-backoff@3.1.2: {}
|
exponential-backoff@3.1.2: {}
|
||||||
|
|
||||||
express@4.21.2:
|
express@4.21.2:
|
||||||
@@ -7243,6 +7369,9 @@ snapshots:
|
|||||||
|
|
||||||
fresh@0.5.2: {}
|
fresh@0.5.2: {}
|
||||||
|
|
||||||
|
fs-constants@1.0.0:
|
||||||
|
optional: true
|
||||||
|
|
||||||
fs-extra@8.1.0:
|
fs-extra@8.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
graceful-fs: 4.2.11
|
graceful-fs: 4.2.11
|
||||||
@@ -7292,6 +7421,9 @@ snapshots:
|
|||||||
|
|
||||||
get-stream@6.0.1: {}
|
get-stream@6.0.1: {}
|
||||||
|
|
||||||
|
github-from-package@0.0.0:
|
||||||
|
optional: true
|
||||||
|
|
||||||
glob-parent@5.1.2:
|
glob-parent@5.1.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
@@ -7479,6 +7611,9 @@ snapshots:
|
|||||||
|
|
||||||
inherits@2.0.4: {}
|
inherits@2.0.4: {}
|
||||||
|
|
||||||
|
ini@1.3.8:
|
||||||
|
optional: true
|
||||||
|
|
||||||
ini@4.1.2: {}
|
ini@4.1.2: {}
|
||||||
|
|
||||||
ini@4.1.3: {}
|
ini@4.1.3: {}
|
||||||
@@ -7865,6 +8000,9 @@ snapshots:
|
|||||||
|
|
||||||
mimic-fn@2.1.0: {}
|
mimic-fn@2.1.0: {}
|
||||||
|
|
||||||
|
mimic-response@3.1.0:
|
||||||
|
optional: true
|
||||||
|
|
||||||
mini-css-extract-plugin@2.8.1(webpack@5.94.0(esbuild@0.20.1)):
|
mini-css-extract-plugin@2.8.1(webpack@5.94.0(esbuild@0.20.1)):
|
||||||
dependencies:
|
dependencies:
|
||||||
schema-utils: 4.3.2
|
schema-utils: 4.3.2
|
||||||
@@ -7925,6 +8063,9 @@ snapshots:
|
|||||||
minipass: 3.3.6
|
minipass: 3.3.6
|
||||||
yallist: 4.0.0
|
yallist: 4.0.0
|
||||||
|
|
||||||
|
mkdirp-classic@0.5.3:
|
||||||
|
optional: true
|
||||||
|
|
||||||
mkdirp@0.5.6:
|
mkdirp@0.5.6:
|
||||||
dependencies:
|
dependencies:
|
||||||
minimist: 1.2.8
|
minimist: 1.2.8
|
||||||
@@ -7948,6 +8089,9 @@ snapshots:
|
|||||||
|
|
||||||
nanoid@3.3.11: {}
|
nanoid@3.3.11: {}
|
||||||
|
|
||||||
|
napi-build-utils@2.0.0:
|
||||||
|
optional: true
|
||||||
|
|
||||||
needle@3.3.1:
|
needle@3.3.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
iconv-lite: 0.6.3
|
iconv-lite: 0.6.3
|
||||||
@@ -7960,15 +8104,28 @@ snapshots:
|
|||||||
|
|
||||||
neo-async@2.6.2: {}
|
neo-async@2.6.2: {}
|
||||||
|
|
||||||
|
ng2-pdf-viewer@10.4.0:
|
||||||
|
dependencies:
|
||||||
|
pdfjs-dist: 4.8.69
|
||||||
|
tslib: 2.8.1
|
||||||
|
|
||||||
nice-napi@1.0.2:
|
nice-napi@1.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
node-addon-api: 3.2.1
|
node-addon-api: 3.2.1
|
||||||
node-gyp-build: 4.8.4
|
node-gyp-build: 4.8.4
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
node-abi@3.75.0:
|
||||||
|
dependencies:
|
||||||
|
semver: 7.7.2
|
||||||
|
optional: true
|
||||||
|
|
||||||
node-addon-api@3.2.1:
|
node-addon-api@3.2.1:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
node-addon-api@7.1.1:
|
||||||
|
optional: true
|
||||||
|
|
||||||
node-forge@1.3.1: {}
|
node-forge@1.3.1: {}
|
||||||
|
|
||||||
node-gyp-build@4.8.4:
|
node-gyp-build@4.8.4:
|
||||||
@@ -7983,7 +8140,7 @@ snapshots:
|
|||||||
make-fetch-happen: 13.0.1
|
make-fetch-happen: 13.0.1
|
||||||
nopt: 7.2.1
|
nopt: 7.2.1
|
||||||
proc-log: 4.2.0
|
proc-log: 4.2.0
|
||||||
semver: 7.6.0
|
semver: 7.7.2
|
||||||
tar: 6.2.1
|
tar: 6.2.1
|
||||||
which: 4.0.0
|
which: 4.0.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -7998,7 +8155,7 @@ snapshots:
|
|||||||
normalize-package-data@6.0.2:
|
normalize-package-data@6.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
hosted-git-info: 7.0.2
|
hosted-git-info: 7.0.2
|
||||||
semver: 7.6.0
|
semver: 7.7.2
|
||||||
validate-npm-package-license: 3.0.4
|
validate-npm-package-license: 3.0.4
|
||||||
|
|
||||||
normalize-path@3.0.0: {}
|
normalize-path@3.0.0: {}
|
||||||
@@ -8199,6 +8356,14 @@ snapshots:
|
|||||||
|
|
||||||
path-type@4.0.0: {}
|
path-type@4.0.0: {}
|
||||||
|
|
||||||
|
path2d@0.2.2:
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
pdfjs-dist@4.8.69:
|
||||||
|
optionalDependencies:
|
||||||
|
canvas: 3.1.2
|
||||||
|
path2d: 0.2.2
|
||||||
|
|
||||||
picocolors@1.1.1: {}
|
picocolors@1.1.1: {}
|
||||||
|
|
||||||
picomatch@2.3.1: {}
|
picomatch@2.3.1: {}
|
||||||
@@ -8269,6 +8434,22 @@ snapshots:
|
|||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
source-map-js: 1.2.1
|
source-map-js: 1.2.1
|
||||||
|
|
||||||
|
prebuild-install@7.1.3:
|
||||||
|
dependencies:
|
||||||
|
detect-libc: 2.0.4
|
||||||
|
expand-template: 2.0.3
|
||||||
|
github-from-package: 0.0.0
|
||||||
|
minimist: 1.2.8
|
||||||
|
mkdirp-classic: 0.5.3
|
||||||
|
napi-build-utils: 2.0.0
|
||||||
|
node-abi: 3.75.0
|
||||||
|
pump: 3.0.3
|
||||||
|
rc: 1.2.8
|
||||||
|
simple-get: 4.0.1
|
||||||
|
tar-fs: 2.1.3
|
||||||
|
tunnel-agent: 0.6.0
|
||||||
|
optional: true
|
||||||
|
|
||||||
proc-log@3.0.0: {}
|
proc-log@3.0.0: {}
|
||||||
|
|
||||||
proc-log@4.2.0: {}
|
proc-log@4.2.0: {}
|
||||||
@@ -8290,6 +8471,12 @@ snapshots:
|
|||||||
prr@1.0.1:
|
prr@1.0.1:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
pump@3.0.3:
|
||||||
|
dependencies:
|
||||||
|
end-of-stream: 1.4.5
|
||||||
|
once: 1.4.0
|
||||||
|
optional: true
|
||||||
|
|
||||||
punycode@1.4.1: {}
|
punycode@1.4.1: {}
|
||||||
|
|
||||||
punycode@2.3.1: {}
|
punycode@2.3.1: {}
|
||||||
@@ -8315,6 +8502,14 @@ snapshots:
|
|||||||
iconv-lite: 0.4.24
|
iconv-lite: 0.4.24
|
||||||
unpipe: 1.0.0
|
unpipe: 1.0.0
|
||||||
|
|
||||||
|
rc@1.2.8:
|
||||||
|
dependencies:
|
||||||
|
deep-extend: 0.6.0
|
||||||
|
ini: 1.3.8
|
||||||
|
minimist: 1.2.8
|
||||||
|
strip-json-comments: 2.0.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
read-package-json-fast@3.0.2:
|
read-package-json-fast@3.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
json-parse-even-better-errors: 3.0.2
|
json-parse-even-better-errors: 3.0.2
|
||||||
@@ -8633,6 +8828,16 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
simple-concat@1.0.1:
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
simple-get@4.0.1:
|
||||||
|
dependencies:
|
||||||
|
decompress-response: 6.0.0
|
||||||
|
once: 1.4.0
|
||||||
|
simple-concat: 1.0.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
slash@4.0.0: {}
|
slash@4.0.0: {}
|
||||||
|
|
||||||
smart-buffer@4.2.0: {}
|
smart-buffer@4.2.0: {}
|
||||||
@@ -8788,6 +8993,9 @@ snapshots:
|
|||||||
|
|
||||||
strip-final-newline@2.0.0: {}
|
strip-final-newline@2.0.0: {}
|
||||||
|
|
||||||
|
strip-json-comments@2.0.1:
|
||||||
|
optional: true
|
||||||
|
|
||||||
supports-color@7.2.0:
|
supports-color@7.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
has-flag: 4.0.0
|
has-flag: 4.0.0
|
||||||
@@ -8804,6 +9012,23 @@ snapshots:
|
|||||||
|
|
||||||
tapable@2.2.2: {}
|
tapable@2.2.2: {}
|
||||||
|
|
||||||
|
tar-fs@2.1.3:
|
||||||
|
dependencies:
|
||||||
|
chownr: 1.1.4
|
||||||
|
mkdirp-classic: 0.5.3
|
||||||
|
pump: 3.0.3
|
||||||
|
tar-stream: 2.2.0
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
tar-stream@2.2.0:
|
||||||
|
dependencies:
|
||||||
|
bl: 4.1.0
|
||||||
|
end-of-stream: 1.4.5
|
||||||
|
fs-constants: 1.0.0
|
||||||
|
inherits: 2.0.4
|
||||||
|
readable-stream: 3.6.2
|
||||||
|
optional: true
|
||||||
|
|
||||||
tar@6.2.1:
|
tar@6.2.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
chownr: 2.0.0
|
chownr: 2.0.0
|
||||||
@@ -8872,6 +9097,11 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
tunnel-agent@0.6.0:
|
||||||
|
dependencies:
|
||||||
|
safe-buffer: 5.2.1
|
||||||
|
optional: true
|
||||||
|
|
||||||
type-fest@0.21.3: {}
|
type-fest@0.21.3: {}
|
||||||
|
|
||||||
type-is@1.6.18:
|
type-is@1.6.18:
|
||||||
|
|||||||
@@ -3,5 +3,10 @@
|
|||||||
"target": "https://localhost:7103",
|
"target": "https://localhost:7103",
|
||||||
"secure": false,
|
"secure": false,
|
||||||
"changeOrigin": true
|
"changeOrigin": true
|
||||||
|
},
|
||||||
|
"/docs": {
|
||||||
|
"target": "https://localhost:7103",
|
||||||
|
"secure": false,
|
||||||
|
"changeOrigin": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,3 +2,4 @@
|
|||||||
<main class="container-fluid">
|
<main class="container-fluid">
|
||||||
<router-outlet></router-outlet>
|
<router-outlet></router-outlet>
|
||||||
</main>
|
</main>
|
||||||
|
<app-footer></app-footer>
|
||||||
@@ -5,11 +5,12 @@ import { TransferService } from './services/button/transfer.service';
|
|||||||
import { UpdateService } from './services/button/update.service';
|
import { UpdateService } from './services/button/update.service';
|
||||||
import { RefreshService } from './services/button/refresh.service';
|
import { RefreshService } from './services/button/refresh.service';
|
||||||
import { DeletionService } from './services/button/deletion.service';
|
import { DeletionService } from './services/button/deletion.service';
|
||||||
|
import { FooterComponent } from './components/footer/footer.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
standalone: true,
|
standalone: true,
|
||||||
imports: [RouterOutlet, NavMenuComponent],
|
imports: [RouterOutlet, NavMenuComponent, FooterComponent],
|
||||||
templateUrl: './app.component.html',
|
templateUrl: './app.component.html',
|
||||||
styleUrl: './app.component.scss',
|
styleUrl: './app.component.scss',
|
||||||
changeDetection: ChangeDetectionStrategy.Default
|
changeDetection: ChangeDetectionStrategy.Default
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import { GroupComponent } from './pages/group/group.component';
|
|||||||
import { ModuleComponent } from './pages/module/module.component';
|
import { ModuleComponent } from './pages/module/module.component';
|
||||||
import { UserAssignmentComponent } from './pages/user-assignment/user-assignment.component';
|
import { UserAssignmentComponent } from './pages/user-assignment/user-assignment.component';
|
||||||
import { UserRepresentationComponent } from './pages/user-representation/user-representation.component';
|
import { UserRepresentationComponent } from './pages/user-representation/user-representation.component';
|
||||||
|
import { PrivacyPolicyComponent } from './pages/privacy-policy/privacy-policy.component';
|
||||||
|
|
||||||
export const routes: Routes = [
|
export const routes: Routes = [
|
||||||
{ path: '', component: HomeComponent },
|
{ path: '', component: HomeComponent },
|
||||||
@@ -13,5 +14,6 @@ export const routes: Routes = [
|
|||||||
{ path: 'group-table', component: GroupComponent, canActivate: [AuthGuard] },
|
{ path: 'group-table', component: GroupComponent, canActivate: [AuthGuard] },
|
||||||
{ path: 'module-table', component: ModuleComponent, canActivate: [AuthGuard] },
|
{ path: 'module-table', component: ModuleComponent, canActivate: [AuthGuard] },
|
||||||
{ path: 'user-assignment', component: UserAssignmentComponent, canActivate: [AuthGuard] },
|
{ path: 'user-assignment', component: UserAssignmentComponent, canActivate: [AuthGuard] },
|
||||||
{ path: 'user-representation', component: UserRepresentationComponent, canActivate: [AuthGuard] }
|
{ path: 'user-representation', component: UserRepresentationComponent, canActivate: [AuthGuard] },
|
||||||
|
{ path: 'privacy-policy', component: PrivacyPolicyComponent }
|
||||||
];
|
];
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<footer>
|
||||||
|
<mat-toolbar color="mat-h3" class="footer-toolbar">
|
||||||
|
<a class="mat-h3 footer-brand-link" [routerLink]="['/']">© 2025 Digital Data</a>
|
||||||
|
<div class="footer-links">
|
||||||
|
<a mat-button class="mat-body-strong" [routerLink]="['/privacy-policy']">Datenschutz</a>
|
||||||
|
<a mat-button class="mat-body-strong" href="https://digitaldata.works/#kontakt" target="_blank">Kontakt</a>
|
||||||
|
<span mat-button class="mat-body-strong">{{appVersion}}</span>
|
||||||
|
</div>
|
||||||
|
</mat-toolbar>
|
||||||
|
</footer>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
.footer-toolbar {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 2.2rem;
|
||||||
|
z-index: 1000;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links{
|
||||||
|
display: flex;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
justify-content: space-around;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer a {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
text-decoration: none;
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
import { FooterComponent } from './footer.component';
|
||||||
|
|
||||||
|
describe('FooterComponent', () => {
|
||||||
|
let component: FooterComponent;
|
||||||
|
let fixture: ComponentFixture<FooterComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [FooterComponent]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(FooterComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
import { name, version, minApiVersion } from '../../../../package.json';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-footer',
|
||||||
|
standalone: true,
|
||||||
|
imports: [
|
||||||
|
MatToolbarModule, RouterModule
|
||||||
|
],
|
||||||
|
templateUrl: './footer.component.html',
|
||||||
|
styleUrl: './footer.component.scss'
|
||||||
|
})
|
||||||
|
export class FooterComponent {
|
||||||
|
appVersion: string = `${name} v${version} | ${minApiVersion}`;
|
||||||
|
}
|
||||||
@@ -42,7 +42,7 @@ export class GroupFormComponent {
|
|||||||
.subscribe(() => this.updateErrorMessage());
|
.subscribe(() => this.updateErrorMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
updateErrorMessage() {
|
public updateErrorMessage() {
|
||||||
if (this.groupname.hasError('required')) {
|
if (this.groupname.hasError('required')) {
|
||||||
this.errorMessage.set('Wert eingeben');
|
this.errorMessage.set('Wert eingeben');
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -7,20 +7,20 @@
|
|||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field class="w80p">
|
<mat-form-field class="w80p">
|
||||||
<mat-label>Gruppe</mat-label>
|
<mat-label>Gruppe</mat-label>
|
||||||
<input matInput [formControl]="name" />
|
<input matInput [formControl]="name" [readonly] = 'group.internal' />
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<!-- comment -->
|
<!-- comment -->
|
||||||
<div class="dd-row input-row">
|
<div class="dd-row input-row">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>Kommentar</mat-label>
|
<mat-label>Kommentar</mat-label>
|
||||||
<textarea matInput [formControl]="comment"></textarea>
|
<textarea matInput [formControl]="comment" [readonly] = 'group.internal'></textarea>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<mat-divider></mat-divider>
|
<mat-divider></mat-divider>
|
||||||
<!-- active, internal, async -->
|
<!-- active, internal, async -->
|
||||||
<div class="dd-row input-row">
|
<div class="dd-row input-row">
|
||||||
<mat-slide-toggle [(ngModel)]="group.active">
|
<mat-slide-toggle [(ngModel)]="group.active" [disabled]='group.internal'>
|
||||||
Aktiv
|
Aktiv
|
||||||
</mat-slide-toggle>
|
</mat-slide-toggle>
|
||||||
<mat-slide-toggle [(ngModel)]="group.internal" disabled>
|
<mat-slide-toggle [(ngModel)]="group.internal" disabled>
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
<mat-divider></mat-divider>
|
<mat-divider></mat-divider>
|
||||||
<!-- save-button, delete-button -->
|
<!-- save-button, delete-button -->
|
||||||
<div class="dd-row button-row">
|
<div class="dd-row button-row">
|
||||||
<button mat-fab extended (click)="update()">
|
<button mat-fab extended (click)="update()" [disabled]='group.internal'>
|
||||||
<mat-icon>save</mat-icon>
|
<mat-icon>save</mat-icon>
|
||||||
Speichern
|
Speichern
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ export class GroupUpdateFormComponent {
|
|||||||
errorMessage = signal('');
|
errorMessage = signal('');
|
||||||
|
|
||||||
constructor(private uService: GroupService, private rService: RefreshService) {
|
constructor(private uService: GroupService, private rService: RefreshService) {
|
||||||
|
console.log(this.group);
|
||||||
}
|
}
|
||||||
|
|
||||||
update() {
|
update() {
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
<iframe src="docs/privacy-policy.pdf#toolbar=0&navpanes=0&scrollbar=1" ></iframe>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
iframe {
|
||||||
|
position : absolute;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
left : 0;
|
||||||
|
top : 4rem;
|
||||||
|
width : 100%;
|
||||||
|
height : calc(100% - 6rem);
|
||||||
|
z-index : 10;
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { PrivacyPolicyComponent } from './privacy-policy.component';
|
||||||
|
|
||||||
|
describe('PrivacyPolicyComponent', () => {
|
||||||
|
let component: PrivacyPolicyComponent;
|
||||||
|
let fixture: ComponentFixture<PrivacyPolicyComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [PrivacyPolicyComponent]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(PrivacyPolicyComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-privacy-policy',
|
||||||
|
standalone: true,
|
||||||
|
imports: [],
|
||||||
|
templateUrl: './privacy-policy.component.html',
|
||||||
|
styleUrl: './privacy-policy.component.scss',
|
||||||
|
changeDetection: ChangeDetectionStrategy.OnPush
|
||||||
|
})
|
||||||
|
export class PrivacyPolicyComponent {
|
||||||
|
}
|
||||||
@@ -23,7 +23,7 @@ export interface Group {
|
|||||||
id?: number;
|
id?: number;
|
||||||
name?: string;
|
name?: string;
|
||||||
adSync?: boolean;
|
adSync?: boolean;
|
||||||
internal?: boolean;
|
internal: boolean;
|
||||||
active?: boolean;
|
active?: boolean;
|
||||||
comment?: string;
|
comment?: string;
|
||||||
addedWho?: string;
|
addedWho?: string;
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
import { HttpClient } from '@angular/common/http';
|
import { HttpClient } from '@angular/common/http';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable, tap } from 'rxjs';
|
||||||
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||||
|
import { inject } from '@angular/core';
|
||||||
|
|
||||||
export class ApiService<Model> {
|
export class ApiService<Model> {
|
||||||
constructor(http: HttpClient, baseUrl: string) {
|
constructor(http: HttpClient, baseUrl: string) {
|
||||||
@@ -9,6 +11,7 @@ export class ApiService<Model> {
|
|||||||
|
|
||||||
http: HttpClient;
|
http: HttpClient;
|
||||||
baseUrl: string;
|
baseUrl: string;
|
||||||
|
protected snackBar = inject(MatSnackBar);
|
||||||
|
|
||||||
getAll(): Observable<Model[]> {
|
getAll(): Observable<Model[]> {
|
||||||
return this.http.get<Model[]>(this.baseUrl, { withCredentials: true });
|
return this.http.get<Model[]>(this.baseUrl, { withCredentials: true });
|
||||||
@@ -25,7 +28,12 @@ export class ApiService<Model> {
|
|||||||
|
|
||||||
update(updateModel: Model): Observable<Model> {
|
update(updateModel: Model): Observable<Model> {
|
||||||
const url = `${this.baseUrl}`;
|
const url = `${this.baseUrl}`;
|
||||||
return this.http.put<Model>(url, updateModel, { withCredentials: true });
|
return this.http.put<Model>(url, updateModel, { withCredentials: true }).pipe(
|
||||||
|
tap(() => {
|
||||||
|
this.snackBar.open('Aktualisierung erfolgreich!', 'Schließen', {
|
||||||
|
duration: 2000,
|
||||||
|
});
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
delete(id: number): Observable<any> {
|
delete(id: number): Observable<any> {
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
|
import { Version } from "@angular/core";
|
||||||
|
|
||||||
export const env = {
|
export const env = {
|
||||||
production: false,
|
production: true,
|
||||||
|
version: new Version("6.1.3"),
|
||||||
default_api_url: "/api",
|
default_api_url: "/api",
|
||||||
routes: {
|
routes: {
|
||||||
user: "/user",
|
user: "/user",
|
||||||
|
|||||||
@@ -2,6 +2,13 @@
|
|||||||
@import '../node_modules/@angular/cdk/overlay-prebuilt.css';
|
@import '../node_modules/@angular/cdk/overlay-prebuilt.css';
|
||||||
@import "../node_modules/bootstrap-icons/font/bootstrap-icons.css";
|
@import "../node_modules/bootstrap-icons/font/bootstrap-icons.css";
|
||||||
|
|
||||||
|
* {
|
||||||
|
-webkit-user-select: none; /* Safari */
|
||||||
|
-moz-user-select: none; /* Firefox */
|
||||||
|
-ms-user-select: none; /* Internet Explorer/Edge */
|
||||||
|
user-select: none; /* Standart */
|
||||||
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: #0366d6;
|
color: #0366d6;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,8 @@
|
|||||||
"lib": [
|
"lib": [
|
||||||
"ES2022",
|
"ES2022",
|
||||||
"dom"
|
"dom"
|
||||||
]
|
],
|
||||||
|
"resolveJsonModule": true
|
||||||
},
|
},
|
||||||
"angularCompilerOptions": {
|
"angularCompilerOptions": {
|
||||||
"enableI18nLegacyMessageIdFormat": false,
|
"enableI18nLegacyMessageIdFormat": false,
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ using Microsoft.Extensions.Localization;
|
|||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using DigitalData.Core.Abstraction.Application;
|
using DigitalData.Core.Abstraction.Application;
|
||||||
using DigitalData.Core.Abstraction.Application.DTO;
|
using DigitalData.Core.Abstraction.Application.DTO;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
using DigitalData.UserManager.API.Models;
|
||||||
|
|
||||||
namespace DigitalData.UserManager.API.Controllers;
|
namespace DigitalData.UserManager.API.Controllers;
|
||||||
|
|
||||||
@@ -23,8 +25,9 @@ public class DirectoryController : ControllerBase
|
|||||||
private readonly Dictionary<string, string> _customSearchFilters;
|
private readonly Dictionary<string, string> _customSearchFilters;
|
||||||
private readonly IStringLocalizer<Resource> _localizer;
|
private readonly IStringLocalizer<Resource> _localizer;
|
||||||
private readonly ILogger<DirectoryController> _logger;
|
private readonly ILogger<DirectoryController> _logger;
|
||||||
|
private readonly DirSearchRoot _dirSearchRoot;
|
||||||
|
|
||||||
public DirectoryController(IConfiguration configuration, IStringLocalizer<Resource> localizer, IUserService userService, IDirectorySearchService directorySearchService, ILogger<DirectoryController> logger)
|
public DirectoryController(IConfiguration configuration, IStringLocalizer<Resource> localizer, IUserService userService, IDirectorySearchService directorySearchService, ILogger<DirectoryController> logger, IOptions<DirSearchRoot> dirSearchRootOptions)
|
||||||
{
|
{
|
||||||
_localizer = localizer;
|
_localizer = localizer;
|
||||||
_userService = userService;
|
_userService = userService;
|
||||||
@@ -33,23 +36,7 @@ public class DirectoryController : ControllerBase
|
|||||||
var customSearchFiltersSection = configuration.GetSection("DirectorySearch:CustomSearchFilters");
|
var customSearchFiltersSection = configuration.GetSection("DirectorySearch:CustomSearchFilters");
|
||||||
_customSearchFilters = customSearchFiltersSection.Get<Dictionary<string, string>>() ?? new();
|
_customSearchFilters = customSearchFiltersSection.Get<Dictionary<string, string>>() ?? new();
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
_dirSearchRoot = dirSearchRootOptions.Value;
|
||||||
|
|
||||||
[HttpGet("Root/{username}")]
|
|
||||||
public IActionResult GetRootOf(string username)
|
|
||||||
{
|
|
||||||
var root = _dirSearchService.GetSearchRootCache(username);
|
|
||||||
|
|
||||||
return root is null ? NotFound() : Ok(new
|
|
||||||
{
|
|
||||||
guid = root.Guid,
|
|
||||||
nativeGuid = root.NativeGuid,
|
|
||||||
name = root.Name,
|
|
||||||
path = root.Path,
|
|
||||||
parentPath = root.Parent?.Path,
|
|
||||||
username = root.Username,
|
|
||||||
schemaClassName = root.SchemaClassName
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("CustomSearchFilter")]
|
[HttpGet("CustomSearchFilter")]
|
||||||
@@ -66,26 +53,6 @@ public class DirectoryController : ControllerBase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost]
|
|
||||||
public async Task<IActionResult> CreateSearchRoot([FromBody] SearchRootCreateDto searchRootCreateDto)
|
|
||||||
{
|
|
||||||
var dirEntryUsername = searchRootCreateDto.Username ?? CurrentUser;
|
|
||||||
if (dirEntryUsername is null)
|
|
||||||
return Unauthorized();
|
|
||||||
|
|
||||||
bool isValid = _dirSearchService.ValidateCredentials(dirEntryUsername, searchRootCreateDto.Password);
|
|
||||||
|
|
||||||
if (!isValid)
|
|
||||||
return Unauthorized(Result.Fail().Message(_localizer[Key.UserNotFound]));
|
|
||||||
|
|
||||||
var userResult = await _userService.ReadByUsernameAsync(dirEntryUsername);
|
|
||||||
if (!userResult.IsSuccess || userResult.Data is null)
|
|
||||||
return Unauthorized(Result.Fail().Message(_localizer[Key.UserNotFoundInLocalDB]));
|
|
||||||
|
|
||||||
_dirSearchService.SetSearchRootCache(userResult.Data.Username, searchRootCreateDto.Password);
|
|
||||||
return Ok();
|
|
||||||
}
|
|
||||||
|
|
||||||
[HttpGet("SearchByFilter/{filter}")]
|
[HttpGet("SearchByFilter/{filter}")]
|
||||||
public IActionResult SearchByFilter([FromRoute] string filter, string? dirEntryUsername, params string[] propName)
|
public IActionResult SearchByFilter([FromRoute] string filter, string? dirEntryUsername, params string[] propName)
|
||||||
{
|
{
|
||||||
@@ -94,7 +61,9 @@ public class DirectoryController : ControllerBase
|
|||||||
if (dirEntryUsername is null)
|
if (dirEntryUsername is null)
|
||||||
return Unauthorized();
|
return Unauthorized();
|
||||||
|
|
||||||
return _dirSearchService.FindAllByUserCache(dirEntryUsername, filter, properties: propName).Then(Ok, IActionResult (m, n) =>
|
using var sRoot = _dirSearchRoot.ToDirectoryEntry;
|
||||||
|
|
||||||
|
return _dirSearchService.FindAll(sRoot, filter, properties: propName).Then(Ok, IActionResult (m, n) =>
|
||||||
{
|
{
|
||||||
_logger.LogNotice(n);
|
_logger.LogNotice(n);
|
||||||
return StatusCode(StatusCodes.Status424FailedDependency);
|
return StatusCode(StatusCodes.Status424FailedDependency);
|
||||||
@@ -114,7 +83,9 @@ public class DirectoryController : ControllerBase
|
|||||||
if (filter is null)
|
if (filter is null)
|
||||||
return NotFound($"The filter named {filterName} does not exist.");
|
return NotFound($"The filter named {filterName} does not exist.");
|
||||||
|
|
||||||
return _dirSearchService.FindAllByUserCache(dirEntryUsername, filter, properties: propName).Then(Ok, IActionResult (m, n) =>
|
using var sRoot = _dirSearchRoot.ToDirectoryEntry;
|
||||||
|
|
||||||
|
return _dirSearchService.FindAll(sRoot, filter, properties: propName).Then(Ok, IActionResult (m, n) =>
|
||||||
{
|
{
|
||||||
_logger.LogNotice(n);
|
_logger.LogNotice(n);
|
||||||
return StatusCode(StatusCodes.Status424FailedDependency);
|
return StatusCode(StatusCodes.Status424FailedDependency);
|
||||||
@@ -135,7 +106,9 @@ public class DirectoryController : ControllerBase
|
|||||||
if (filter is null)
|
if (filter is null)
|
||||||
throw new InvalidOperationException("The LDAP Group Search filter configuration is missing in your appsettings. Please ensure it's added under DirectorySearch:CustomSearchFilters:Group to enable group searches.");
|
throw new InvalidOperationException("The LDAP Group Search filter configuration is missing in your appsettings. Please ensure it's added under DirectorySearch:CustomSearchFilters:Group to enable group searches.");
|
||||||
|
|
||||||
return _dirSearchService.FindAllByUserCache(username: dirEntryUsername, filter, properties: propName).Then(Ok, IActionResult (m, n) =>
|
using var sRoot = _dirSearchRoot.ToDirectoryEntry;
|
||||||
|
|
||||||
|
return _dirSearchService.FindAll(_dirSearchRoot.ToDirectoryEntry, filter, properties: propName).Then(Ok, IActionResult (m, n) =>
|
||||||
{
|
{
|
||||||
_logger.LogNotice(n);
|
_logger.LogNotice(n);
|
||||||
return StatusCode(StatusCodes.Status424FailedDependency);
|
return StatusCode(StatusCodes.Status424FailedDependency);
|
||||||
@@ -156,7 +129,9 @@ public class DirectoryController : ControllerBase
|
|||||||
if (filter is null)
|
if (filter is null)
|
||||||
throw new InvalidOperationException("The LDAP User Search filter configuration is missing in your appsettings. Please ensure it's added under DirectorySearch:CustomSearchFilters:User to enable group searches.");
|
throw new InvalidOperationException("The LDAP User Search filter configuration is missing in your appsettings. Please ensure it's added under DirectorySearch:CustomSearchFilters:User to enable group searches.");
|
||||||
|
|
||||||
return _dirSearchService.FindAllByUserCache(username: dirEntryUsername, filter, properties: propName).Then(
|
using var sRoot = _dirSearchRoot.ToDirectoryEntry;
|
||||||
|
|
||||||
|
return _dirSearchService.FindAll(sRoot, filter, properties: propName).Then(
|
||||||
Success: data =>
|
Success: data =>
|
||||||
{
|
{
|
||||||
if (groupName is not null)
|
if (groupName is not null)
|
||||||
|
|||||||
@@ -4,29 +4,12 @@
|
|||||||
<TargetFrameworks>net7.0;net8.0;net9.0</TargetFrameworks>
|
<TargetFrameworks>net7.0;net8.0;net9.0</TargetFrameworks>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Version>6.1.2</Version>
|
<Version>6.1.4</Version>
|
||||||
<AssemblyVersion>6.1.2</AssemblyVersion>
|
<AssemblyVersion>6.1.4</AssemblyVersion>
|
||||||
<FileVersion>6.1.2</FileVersion>
|
<FileVersion>6.1.4</FileVersion>
|
||||||
<PackageIcon>icon.png</PackageIcon>
|
<PackageIcon>icon.png</PackageIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Remove="wwwroot\assets\**" />
|
|
||||||
<Compile Remove="wwwroot\media\**" />
|
|
||||||
<Content Remove="wwwroot\assets\**" />
|
|
||||||
<Content Remove="wwwroot\media\**" />
|
|
||||||
<EmbeddedResource Remove="wwwroot\assets\**" />
|
|
||||||
<EmbeddedResource Remove="wwwroot\media\**" />
|
|
||||||
<None Remove="wwwroot\assets\**" />
|
|
||||||
<None Remove="wwwroot\media\**" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Content Remove="wwwroot\chunk-A2L6DXQH.js" />
|
|
||||||
<Content Remove="wwwroot\chunk-ZC35XWOR.js" />
|
|
||||||
<Content Remove="wwwroot\main-QF3MRK45.js" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="DigitalData.Auth.Client" Version="1.3.7" />
|
<PackageReference Include="DigitalData.Auth.Client" Version="1.3.7" />
|
||||||
<PackageReference Include="DigitalData.Core.Abstraction.Application" Version="1.0.0" />
|
<PackageReference Include="DigitalData.Core.Abstraction.Application" Version="1.0.0" />
|
||||||
@@ -47,7 +30,6 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="ClientApp\" />
|
<Folder Include="ClientApp\" />
|
||||||
<Folder Include="wwwroot\" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -8,5 +8,5 @@ public class AuthTokenKeys
|
|||||||
|
|
||||||
public string Issuer { get; init; } = "auth.digitaldata.works";
|
public string Issuer { get; init; } = "auth.digitaldata.works";
|
||||||
|
|
||||||
public string Audience { get; init; } = "user-manager.digitaldata.works";
|
public string Audience { get; init; } = "usermanager.digitaldata.works";
|
||||||
}
|
}
|
||||||
|
|||||||
22
src/DigitalData.UserManager.API/Models/DirSearchRoot.cs
Normal file
22
src/DigitalData.UserManager.API/Models/DirSearchRoot.cs
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
using DigitalData.Core.Application;
|
||||||
|
using System.DirectoryServices;
|
||||||
|
|
||||||
|
namespace DigitalData.UserManager.API.Models;
|
||||||
|
|
||||||
|
[Obsolete("Use ActiveDirectory.API")]
|
||||||
|
public class DirSearchRoot : DirectorySearchOptions
|
||||||
|
{
|
||||||
|
public string Path => $"LDAP://{ServerName}/{Root}";
|
||||||
|
|
||||||
|
public string? Username { get; set; }
|
||||||
|
|
||||||
|
public string? Password { get; set; }
|
||||||
|
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Interoperability", "CA1416:Validate platform compatibility", Justification = "<Pending>")]
|
||||||
|
public DirectoryEntry ToDirectoryEntry => new ()
|
||||||
|
{
|
||||||
|
Path = Path,
|
||||||
|
Username = Username,
|
||||||
|
Password = Password
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -82,6 +82,7 @@ try {
|
|||||||
|
|
||||||
builder.ConfigureBySection<DirectorySearchOptions>();
|
builder.ConfigureBySection<DirectorySearchOptions>();
|
||||||
builder.Services.AddDirectorySearchService(config.GetSection("DirectorySearchOptions"));
|
builder.Services.AddDirectorySearchService(config.GetSection("DirectorySearchOptions"));
|
||||||
|
builder.Services.Configure<DirSearchRoot>(config.GetSection("DirectorySearchOptions"));
|
||||||
builder.Services.AddJWTService<UserReadDto>(user => new SecurityTokenDescriptor()
|
builder.Services.AddJWTService<UserReadDto>(user => new SecurityTokenDescriptor()
|
||||||
{
|
{
|
||||||
Claims = user.ToClaimList().ToDictionary(claim => claim.Type, claim => claim.Value as object)
|
Claims = user.ToClaimList().ToDictionary(claim => claim.Type, claim => claim.Value as object)
|
||||||
@@ -171,7 +172,6 @@ try {
|
|||||||
var eCnnStr = config.GetConnectionString("UM_DEF") ?? throw new InvalidOperationException("Connection string 'DD_ECM_Connection' is missing from the configuration.");
|
var eCnnStr = config.GetConnectionString("UM_DEF") ?? throw new InvalidOperationException("Connection string 'DD_ECM_Connection' is missing from the configuration.");
|
||||||
|
|
||||||
SqlConnectionStringBuilder cnnStrBuilder = new(eCnnStr);
|
SqlConnectionStringBuilder cnnStrBuilder = new(eCnnStr);
|
||||||
cnnStrBuilder.UserID = encryptor.Decrypt(cnnStrBuilder.UserID);
|
|
||||||
cnnStrBuilder.Password = encryptor.Decrypt(cnnStrBuilder.Password);
|
cnnStrBuilder.Password = encryptor.Decrypt(cnnStrBuilder.Password);
|
||||||
var dCnnStr = cnnStrBuilder.ConnectionString;
|
var dCnnStr = cnnStrBuilder.ConnectionString;
|
||||||
return dCnnStr;
|
return dCnnStr;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"PublicKeys": [
|
"PublicKeys": [
|
||||||
{
|
{
|
||||||
"Issuer": "auth.digitaldata.works",
|
"Issuer": "auth.digitaldata.works",
|
||||||
"Audience": "user-manager.digitaldata.works"
|
"Audience": "usermanager.digitaldata.works"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"RetryDelay": "00:00:05"
|
"RetryDelay": "00:00:05"
|
||||||
|
|||||||
@@ -6,14 +6,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"UM_DEF": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM;User Id=g+2edXEbMbujCUjh7INZRQ==;Password=Bz/n9pu8EyzlVqicaMRQGQ==;Encrypt=false;TrustServerCertificate=True;"
|
"UM_DEF": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM;User Id=sa;Password=Bz/n9pu8EyzlVqicaMRQGQ==;Encrypt=false;TrustServerCertificate=True;"
|
||||||
},
|
},
|
||||||
"AllowedOrigins": [ "https://localhost:7103", "http://172.24.12.39:85", "http://localhost:85", "http://localhost:4200", "http://localhost:5500", "https://localhost:7202" ],
|
"AllowedOrigins": [ "https://localhost:7103", "http://172.24.12.39:85", "http://localhost:85", "http://localhost:4200", "http://localhost:5500", "https://localhost:7202" ],
|
||||||
"RunAsWindowsService": false,
|
"RunAsWindowsService": false,
|
||||||
"DirectorySearchOptions": {
|
"DirectorySearchOptions": {
|
||||||
"ServerName": "DD-VMP01-DC01",
|
"ServerName": "DD-VMP01-DC01",
|
||||||
"Root": "DC=dd-gan,DC=local,DC=digitaldata,DC=works",
|
"Root": "DC=dd-gan,DC=local,DC=digitaldata,DC=works",
|
||||||
"UserCacheExpirationDays": 1,
|
"Username": "FABRIK19-User01",
|
||||||
|
"Password": "9bWOr0UGuHn_7VkC",
|
||||||
"CustomSearchFilters": {
|
"CustomSearchFilters": {
|
||||||
"User": "(&(objectClass=user)(sAMAccountName=*))",
|
"User": "(&(objectClass=user)(sAMAccountName=*))",
|
||||||
"Group": "(&(objectClass=group) (samAccountName=*))"
|
"Group": "(&(objectClass=group) (samAccountName=*))"
|
||||||
|
|||||||
BIN
src/DigitalData.UserManager.API/wwwroot/docs/privacy-policy.pdf
Normal file
BIN
src/DigitalData.UserManager.API/wwwroot/docs/privacy-policy.pdf
Normal file
Binary file not shown.
@@ -43,7 +43,7 @@ namespace DigitalData.UserManager.Application.Services
|
|||||||
var group = await _repository.ReadByIdAsync(gId);
|
var group = await _repository.ReadByIdAsync(gId);
|
||||||
if (group is null)
|
if (group is null)
|
||||||
throw new ForbiddenException("Group not found.");
|
throw new ForbiddenException("Group not found.");
|
||||||
else if (!group.Internal)
|
else if (group.Internal)
|
||||||
throw new ForbiddenException("Updates are not allowed for system groups.");
|
throw new ForbiddenException("Updates are not allowed for system groups.");
|
||||||
return await base.UpdateAsync(updateDto);
|
return await base.UpdateAsync(updateDto);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,9 +13,9 @@
|
|||||||
<PackageIcon>icon.png</PackageIcon>
|
<PackageIcon>icon.png</PackageIcon>
|
||||||
<RepositoryUrl>http://git.dd:3000/AppStd/WebUserManager.git</RepositoryUrl>
|
<RepositoryUrl>http://git.dd:3000/AppStd/WebUserManager.git</RepositoryUrl>
|
||||||
<PackageTags>digital data user maanger</PackageTags>
|
<PackageTags>digital data user maanger</PackageTags>
|
||||||
<Version>1.1.2</Version>
|
<Version>1.1.3</Version>
|
||||||
<AssemblyVersion>1.1.2</AssemblyVersion>
|
<AssemblyVersion>1.1.3</AssemblyVersion>
|
||||||
<FileVersion>1.1.2</FileVersion>
|
<FileVersion>1.1.3</FileVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -6,36 +6,44 @@ using System;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace DigitalData.UserManager.Domain.Entities
|
namespace DigitalData.UserManager.Domain.Entities
|
||||||
{
|
#if NET
|
||||||
public class BaseEntity
|
;
|
||||||
|
#elif NETFRAMEWORK
|
||||||
{
|
{
|
||||||
[Column("GUID")]
|
|
||||||
[Key]
|
|
||||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
[StringLength(50)]
|
|
||||||
[Column("ADDED_WHO")]
|
|
||||||
public string
|
|
||||||
#if NET7_0_OR_GREATER
|
|
||||||
?
|
|
||||||
#endif
|
#endif
|
||||||
AddedWho { get; set; }
|
|
||||||
|
|
||||||
[StringLength(50)]
|
public class BaseEntity
|
||||||
[Column("CHANGED_WHO")]
|
{
|
||||||
public string
|
[Column("GUID")]
|
||||||
#if NET7_0_OR_GREATER
|
[Key]
|
||||||
?
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[StringLength(50)]
|
||||||
|
[Column("ADDED_WHO")]
|
||||||
|
public string
|
||||||
|
#if NET
|
||||||
|
?
|
||||||
#endif
|
#endif
|
||||||
ChangedWho { get; set; }
|
AddedWho { get; set; }
|
||||||
|
|
||||||
//TODO: assign it to default value in create dto, not here!
|
[StringLength(50)]
|
||||||
[Column("ADDED_WHEN", TypeName = "datetime")]
|
[Column("CHANGED_WHO")]
|
||||||
[DefaultValue("GETDATE()")]
|
public string
|
||||||
public DateTime AddedWhen { get; set; } = DateTime.Now;
|
#if NET
|
||||||
|
?
|
||||||
|
#endif
|
||||||
|
ChangedWho { get; set; }
|
||||||
|
|
||||||
[Column("CHANGED_WHEN", TypeName = "datetime")]
|
//TODO: assign it to default value in create dto, not here!
|
||||||
public DateTime? ChangedWhen { get; set; }
|
[Column("ADDED_WHEN", TypeName = "datetime")]
|
||||||
}
|
[DefaultValue("GETDATE()")]
|
||||||
|
public DateTime AddedWhen { get; set; } = DateTime.Now;
|
||||||
|
|
||||||
|
[Column("CHANGED_WHEN", TypeName = "datetime")]
|
||||||
|
public DateTime? ChangedWhen { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if NETFRAMEWORK
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -25,7 +25,7 @@ namespace DigitalData.UserManager.Domain.Entities
|
|||||||
|
|
||||||
[Column("COMMENT")]
|
[Column("COMMENT")]
|
||||||
public string
|
public string
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
Comment { get; set; }
|
Comment { get; set; }
|
||||||
@@ -33,7 +33,7 @@ namespace DigitalData.UserManager.Domain.Entities
|
|||||||
[StringLength(50)]
|
[StringLength(50)]
|
||||||
[Column("ADDED_WHO")]
|
[Column("ADDED_WHO")]
|
||||||
public string
|
public string
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
AddedWho { get; set; }
|
AddedWho { get; set; }
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ namespace DigitalData.UserManager.Domain.Entities
|
|||||||
{
|
{
|
||||||
[StringLength(50)]
|
[StringLength(50)]
|
||||||
public string
|
public string
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
Name { get; set; }
|
Name { get; set; }
|
||||||
@@ -29,7 +29,7 @@ namespace DigitalData.UserManager.Domain.Entities
|
|||||||
|
|
||||||
[StringLength(200)]
|
[StringLength(200)]
|
||||||
public string
|
public string
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
Comment { get; set; }
|
Comment { get; set; }
|
||||||
|
|||||||
@@ -16,21 +16,21 @@ namespace DigitalData.UserManager.Domain.Entities
|
|||||||
|
|
||||||
[StringLength(200)]
|
[StringLength(200)]
|
||||||
public string
|
public string
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
Comment { get; set; }
|
Comment { get; set; }
|
||||||
|
|
||||||
[ForeignKey("UserId")]
|
[ForeignKey("UserId")]
|
||||||
public virtual User
|
public virtual User
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
User { get; set; }
|
User { get; set; }
|
||||||
|
|
||||||
[ForeignKey("GroupId")]
|
[ForeignKey("GroupId")]
|
||||||
public virtual Group
|
public virtual Group
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
Group { get; set; }
|
Group { get; set; }
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace DigitalData.UserManager.Domain.Entities
|
|||||||
|
|
||||||
[StringLength(50)]
|
[StringLength(50)]
|
||||||
public string
|
public string
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
Name { get; set; }
|
Name { get; set; }
|
||||||
@@ -21,7 +21,7 @@ namespace DigitalData.UserManager.Domain.Entities
|
|||||||
[StringLength(20)]
|
[StringLength(20)]
|
||||||
[Column("SHORT_NAME")]
|
[Column("SHORT_NAME")]
|
||||||
public string
|
public string
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
ShortName { get; set; }
|
ShortName { get; set; }
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace DigitalData.UserManager.Domain.Entities
|
|||||||
[Column("COMMENT")]
|
[Column("COMMENT")]
|
||||||
[StringLength(200)]
|
[StringLength(200)]
|
||||||
public string
|
public string
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
Comment { get; set; }
|
Comment { get; set; }
|
||||||
@@ -30,7 +30,7 @@ namespace DigitalData.UserManager.Domain.Entities
|
|||||||
[Column("ADDED_WHO")]
|
[Column("ADDED_WHO")]
|
||||||
[StringLength(50)]
|
[StringLength(50)]
|
||||||
public string
|
public string
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
AddedWho { get; set; } = "DEFAULT";
|
AddedWho { get; set; } = "DEFAULT";
|
||||||
@@ -38,21 +38,21 @@ namespace DigitalData.UserManager.Domain.Entities
|
|||||||
[Column("CHANGED_WHO")]
|
[Column("CHANGED_WHO")]
|
||||||
[StringLength(50)]
|
[StringLength(50)]
|
||||||
public string
|
public string
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
ChangedWho { get; set; }
|
ChangedWho { get; set; }
|
||||||
|
|
||||||
[ForeignKey("UserId")]
|
[ForeignKey("UserId")]
|
||||||
public virtual User
|
public virtual User
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
User { get; set; }
|
User { get; set; }
|
||||||
|
|
||||||
[ForeignKey("ModuleId")]
|
[ForeignKey("ModuleId")]
|
||||||
public virtual Module
|
public virtual Module
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
Module { get; set; }
|
Module { get; set; }
|
||||||
|
|||||||
@@ -6,122 +6,130 @@ using System;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace DigitalData.UserManager.Domain.Entities
|
namespace DigitalData.UserManager.Domain.Entities
|
||||||
{
|
#if NET
|
||||||
[Table("TBDD_USER", Schema = "dbo")]
|
;
|
||||||
public partial class User : BaseEntity
|
#elif NETFRAMEWORK
|
||||||
{
|
{
|
||||||
[Column("PRENAME")]
|
|
||||||
[StringLength(50)]
|
|
||||||
public string
|
|
||||||
#if NET7_0_OR_GREATER
|
|
||||||
?
|
|
||||||
#endif
|
#endif
|
||||||
Prename { get; set; }
|
|
||||||
|
|
||||||
[Column("NAME")]
|
[Table("TBDD_USER", Schema = "dbo")]
|
||||||
[StringLength(50)]
|
public partial class User : BaseEntity
|
||||||
public string
|
{
|
||||||
#if NET7_0_OR_GREATER
|
[Column("PRENAME")]
|
||||||
?
|
[StringLength(50)]
|
||||||
|
public string
|
||||||
|
#if NET
|
||||||
|
?
|
||||||
#endif
|
#endif
|
||||||
Name { get; set; }
|
Prename { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Column("NAME")]
|
||||||
[Column("USERNAME")]
|
[StringLength(50)]
|
||||||
[StringLength(50)]
|
public string
|
||||||
public
|
#if NET
|
||||||
#if NET7_0_OR_GREATER
|
?
|
||||||
required
|
|
||||||
#endif
|
#endif
|
||||||
string Username { get; set; }
|
Name { get; set; }
|
||||||
|
|
||||||
[Column("SHORTNAME")]
|
[Required]
|
||||||
[StringLength(30)]
|
[Column("USERNAME")]
|
||||||
public string
|
[StringLength(50)]
|
||||||
#if NET7_0_OR_GREATER
|
public
|
||||||
?
|
#if NET
|
||||||
|
required
|
||||||
#endif
|
#endif
|
||||||
Shortname
|
string Username { get; set; }
|
||||||
{ get; set; }
|
|
||||||
|
|
||||||
[Column("EMAIL")]
|
[Column("SHORTNAME")]
|
||||||
[StringLength(100)]
|
[StringLength(30)]
|
||||||
public string
|
public string
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
Email { get; set; }
|
Shortname
|
||||||
|
{ get; set; }
|
||||||
|
|
||||||
[Required]
|
[Column("EMAIL")]
|
||||||
[Column("LANGUAGE")]
|
[StringLength(100)]
|
||||||
[StringLength(5)]
|
public string
|
||||||
[DefaultValue("de-DE")]
|
#if NET
|
||||||
public string
|
?
|
||||||
#if NET7_0_OR_GREATER
|
|
||||||
?
|
|
||||||
#endif
|
#endif
|
||||||
Language { get; set; }
|
Email { get; set; }
|
||||||
|
|
||||||
[Column("COMMENT")]
|
[Required]
|
||||||
[StringLength(500)]
|
[Column("LANGUAGE")]
|
||||||
public string
|
[StringLength(5)]
|
||||||
#if NET7_0_OR_GREATER
|
[DefaultValue("de-DE")]
|
||||||
?
|
public string
|
||||||
|
#if NET
|
||||||
|
?
|
||||||
#endif
|
#endif
|
||||||
Comment { get; set; }
|
Language { get; set; }
|
||||||
|
|
||||||
[Column("DELETED")]
|
[Column("COMMENT")]
|
||||||
public bool Deleted { get; set; }
|
[StringLength(500)]
|
||||||
|
public string
|
||||||
[Required]
|
#if NET
|
||||||
[Column("DATE_FORMAT")]
|
?
|
||||||
[StringLength(10)]
|
|
||||||
[DefaultValue("dd.MM.yyyy")]
|
|
||||||
public
|
|
||||||
#if NET7_0_OR_GREATER
|
|
||||||
required
|
|
||||||
#endif
|
#endif
|
||||||
string DateFormat { get; set; }
|
Comment { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Column("DELETED")]
|
||||||
[Column("ACTIVE")]
|
public bool Deleted { get; set; }
|
||||||
public bool Active { get; set; }
|
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[Column("GENERAL_VIEWER")]
|
[Column("DATE_FORMAT")]
|
||||||
[StringLength(30)]
|
[StringLength(10)]
|
||||||
[DefaultValue("NONE")]
|
[DefaultValue("dd.MM.yyyy")]
|
||||||
public
|
public
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
required
|
required
|
||||||
#endif
|
#endif
|
||||||
string GeneralViewer { get; set; }
|
string DateFormat { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[Column("WAN_ENVIRONMENT")]
|
[Column("ACTIVE")]
|
||||||
public bool WanEnvironment { get; set; }
|
public bool Active { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
[Column("USERID_FK_INT_ECM")]
|
[Column("GENERAL_VIEWER")]
|
||||||
public int UserIdFkIntEcm { get; set; }
|
[StringLength(30)]
|
||||||
|
[DefaultValue("NONE")]
|
||||||
[Column("DELETED_WHEN")]
|
public
|
||||||
public DateTime
|
#if NET
|
||||||
#if NET7_0_OR_GREATER
|
required
|
||||||
?
|
|
||||||
#endif
|
#endif
|
||||||
DeletedWhen { get; set; }
|
string GeneralViewer { get; set; }
|
||||||
|
|
||||||
[Column("DELETED_WHO")]
|
[Required]
|
||||||
[StringLength(50)]
|
[Column("WAN_ENVIRONMENT")]
|
||||||
public
|
public bool WanEnvironment { get; set; }
|
||||||
#if NET7_0_OR_GREATER
|
|
||||||
required
|
[Required]
|
||||||
|
[Column("USERID_FK_INT_ECM")]
|
||||||
|
public int UserIdFkIntEcm { get; set; }
|
||||||
|
|
||||||
|
[Column("DELETED_WHEN")]
|
||||||
|
public DateTime
|
||||||
|
#if NET
|
||||||
|
?
|
||||||
#endif
|
#endif
|
||||||
string
|
DeletedWhen { get; set; }
|
||||||
#if NET7_0_OR_GREATER
|
|
||||||
?
|
[Column("DELETED_WHO")]
|
||||||
# endif
|
[StringLength(50)]
|
||||||
DeletedWho { get; set; }
|
public
|
||||||
}
|
#if NET
|
||||||
|
required
|
||||||
|
#endif
|
||||||
|
string
|
||||||
|
#if NET
|
||||||
|
?
|
||||||
|
#endif
|
||||||
|
DeletedWho { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if NETFRAMEWORK
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -28,28 +28,28 @@ namespace DigitalData.UserManager.Domain.Entities
|
|||||||
|
|
||||||
[ForeignKey("UserId")]
|
[ForeignKey("UserId")]
|
||||||
public virtual User
|
public virtual User
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
User { get; set; }
|
User { get; set; }
|
||||||
|
|
||||||
[ForeignKey("RepGroupId")]
|
[ForeignKey("RepGroupId")]
|
||||||
public virtual Group
|
public virtual Group
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
RepGroup { get; set; }
|
RepGroup { get; set; }
|
||||||
|
|
||||||
[ForeignKey("GroupId")]
|
[ForeignKey("GroupId")]
|
||||||
public virtual Group
|
public virtual Group
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
Group { get; set; }
|
Group { get; set; }
|
||||||
|
|
||||||
[ForeignKey("RepUserId")]
|
[ForeignKey("RepUserId")]
|
||||||
public virtual User
|
public virtual User
|
||||||
#if NET7_0_OR_GREATER
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
RepUser { get; set; }
|
RepUser { get; set; }
|
||||||
|
|||||||
Reference in New Issue
Block a user