diff --git a/Makefile b/Makefile index 82b587859..8c445088f 100644 --- a/Makefile +++ b/Makefile @@ -61,5 +61,8 @@ gen-outpost: gen: gen-build gen-clean gen-web gen-outpost +migrate: + python -m lifecycle.migrate + run: go run -v cmd/server/main.go diff --git a/Pipfile.lock b/Pipfile.lock index 9dcd52355..6ac206b30 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -122,19 +122,19 @@ }, "boto3": { "hashes": [ - "sha256:3b35689c215c982fe9f7ef78d748aa9b0cd15c3b2eb04f9b460aaa63fe2fbd03", - "sha256:b1cbeb92123799001b97f2ee1cdf470e21f1be08314ae28fc7ea357925186f1c" + "sha256:10122ff0f942d7400b18b726edaead20600178f8246cb21b40420073350613b5", + "sha256:484bba256137c2d2f8351175553dee0e888e8bd5872f5406c8984e02715acf4d" ], "index": "pypi", - "version": "==1.17.105" + "version": "==1.17.108" }, "botocore": { "hashes": [ - "sha256:b0fda4edf8eb105453890700d49011ada576d0cc7326a0699dfabe9e872f552c", - "sha256:b5ba72d22212b0355f339c2a98b3296b3b2202a48e6a2b1366e866bc65a64b67" + "sha256:7667ef69001708afa796d2e79910230715e8542a910820581bf4623a5d3b0d47", + "sha256:f4686d2ccf68dfcd90d2591695938fd0906ae0a7121f792d193b0f000a5d8872" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==1.20.105" + "version": "==1.20.108" }, "cachetools": { "hashes": [ @@ -180,57 +180,48 @@ }, "cffi": { "hashes": [ - "sha256:005a36f41773e148deac64b08f233873a4d0c18b053d37da83f6af4d9087b813", - "sha256:04c468b622ed31d408fea2346bec5bbffba2cc44226302a0de1ade9f5ea3d373", - "sha256:06d7cd1abac2ffd92e65c0609661866709b4b2d82dd15f611e602b9b188b0b69", - "sha256:06db6321b7a68b2bd6df96d08a5adadc1fa0e8f419226e25b2a5fbf6ccc7350f", - "sha256:0857f0ae312d855239a55c81ef453ee8fd24136eaba8e87a2eceba644c0d4c06", - "sha256:0f861a89e0043afec2a51fd177a567005847973be86f709bbb044d7f42fc4e05", - "sha256:1071534bbbf8cbb31b498d5d9db0f274f2f7a865adca4ae429e147ba40f73dea", - "sha256:158d0d15119b4b7ff6b926536763dc0714313aa59e320ddf787502c70c4d4bee", - "sha256:1bf1ac1984eaa7675ca8d5745a8cb87ef7abecb5592178406e55858d411eadc0", - "sha256:1f436816fc868b098b0d63b8920de7d208c90a67212546d02f84fe78a9c26396", - "sha256:24a570cd11895b60829e941f2613a4f79df1a27344cbbb82164ef2e0116f09c7", - "sha256:24ec4ff2c5c0c8f9c6b87d5bb53555bf267e1e6f70e52e5a9740d32861d36b6f", - "sha256:2894f2df484ff56d717bead0a5c2abb6b9d2bf26d6960c4604d5c48bbc30ee73", - "sha256:29314480e958fd8aab22e4a58b355b629c59bf5f2ac2492b61e3dc06d8c7a315", - "sha256:293e7ea41280cb28c6fcaaa0b1aa1f533b8ce060b9e701d78511e1e6c4a1de76", - "sha256:34eff4b97f3d982fb93e2831e6750127d1355a923ebaeeb565407b3d2f8d41a1", - "sha256:35f27e6eb43380fa080dccf676dece30bef72e4a67617ffda586641cd4508d49", - "sha256:3c3f39fa737542161d8b0d680df2ec249334cd70a8f420f71c9304bd83c3cbed", - "sha256:3d3dd4c9e559eb172ecf00a2a7517e97d1e96de2a5e610bd9b68cea3925b4892", - "sha256:43e0b9d9e2c9e5d152946b9c5fe062c151614b262fda2e7b201204de0b99e482", - "sha256:48e1c69bbacfc3d932221851b39d49e81567a4d4aac3b21258d9c24578280058", - "sha256:51182f8927c5af975fece87b1b369f722c570fe169f9880764b1ee3bca8347b5", - "sha256:58e3f59d583d413809d60779492342801d6e82fefb89c86a38e040c16883be53", - "sha256:5de7970188bb46b7bf9858eb6890aad302577a5f6f75091fd7cdd3ef13ef3045", - "sha256:65fa59693c62cf06e45ddbb822165394a288edce9e276647f0046e1ec26920f3", - "sha256:681d07b0d1e3c462dd15585ef5e33cb021321588bebd910124ef4f4fb71aef55", - "sha256:69e395c24fc60aad6bb4fa7e583698ea6cc684648e1ffb7fe85e3c1ca131a7d5", - "sha256:6c97d7350133666fbb5cf4abdc1178c812cb205dc6f41d174a7b0f18fb93337e", - "sha256:6e4714cc64f474e4d6e37cfff31a814b509a35cb17de4fb1999907575684479c", - "sha256:72d8d3ef52c208ee1c7b2e341f7d71c6fd3157138abf1a95166e6165dd5d4369", - "sha256:8ae6299f6c68de06f136f1f9e69458eae58f1dacf10af5c17353eae03aa0d827", - "sha256:8b198cec6c72df5289c05b05b8b0969819783f9418e0409865dac47288d2a053", - "sha256:99cd03ae7988a93dd00bcd9d0b75e1f6c426063d6f03d2f90b89e29b25b82dfa", - "sha256:9cf8022fb8d07a97c178b02327b284521c7708d7c71a9c9c355c178ac4bbd3d4", - "sha256:9de2e279153a443c656f2defd67769e6d1e4163952b3c622dcea5b08a6405322", - "sha256:9e93e79c2551ff263400e1e4be085a1210e12073a31c2011dbbda14bda0c6132", - "sha256:9ff227395193126d82e60319a673a037d5de84633f11279e336f9c0f189ecc62", - "sha256:a465da611f6fa124963b91bf432d960a555563efe4ed1cc403ba5077b15370aa", - "sha256:ad17025d226ee5beec591b52800c11680fca3df50b8b29fe51d882576e039ee0", - "sha256:afb29c1ba2e5a3736f1c301d9d0abe3ec8b86957d04ddfa9d7a6a42b9367e396", - "sha256:b85eb46a81787c50650f2392b9b4ef23e1f126313b9e0e9013b35c15e4288e2e", - "sha256:bb89f306e5da99f4d922728ddcd6f7fcebb3241fc40edebcb7284d7514741991", - "sha256:cbde590d4faaa07c72bf979734738f328d239913ba3e043b1e98fe9a39f8b2b6", - "sha256:cc5a8e069b9ebfa22e26d0e6b97d6f9781302fe7f4f2b8776c3e1daea35f1adc", - "sha256:cd2868886d547469123fadc46eac7ea5253ea7fcb139f12e1dfc2bbd406427d1", - "sha256:d42b11d692e11b6634f7613ad8df5d6d5f8875f5d48939520d351007b3c13406", - "sha256:df5052c5d867c1ea0b311fb7c3cd28b19df469c056f7fdcfe88c7473aa63e333", - "sha256:f2d45f97ab6bb54753eab54fffe75aaf3de4ff2341c9daee1987ee1837636f1d", - "sha256:fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c" + "sha256:06c54a68935738d206570b20da5ef2b6b6d92b38ef3ec45c5422c0ebaf338d4d", + "sha256:0c0591bee64e438883b0c92a7bed78f6290d40bf02e54c5bf0978eaf36061771", + "sha256:19ca0dbdeda3b2615421d54bef8985f72af6e0c47082a8d26122adac81a95872", + "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c", + "sha256:26bb2549b72708c833f5abe62b756176022a7b9a7f689b571e74c8478ead51dc", + "sha256:33791e8a2dc2953f28b8d8d300dde42dd929ac28f974c4b4c6272cb2955cb762", + "sha256:3c8d896becff2fa653dc4438b54a5a25a971d1f4110b32bd3068db3722c80202", + "sha256:4373612d59c404baeb7cbd788a18b2b2a8331abcc84c3ba40051fcd18b17a4d5", + "sha256:487d63e1454627c8e47dd230025780e91869cfba4c753a74fda196a1f6ad6548", + "sha256:4922cd707b25e623b902c86188aca466d3620892db76c0bdd7b99a3d5e61d35f", + "sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20", + "sha256:5d4b68e216fc65e9fe4f524c177b54964af043dde734807586cf5435af84045c", + "sha256:64fda793737bc4037521d4899be780534b9aea552eb673b9833b01f945904c2e", + "sha256:6d6169cb3c6c2ad50db5b868db6491a790300ade1ed5d1da29289d73bbe40b56", + "sha256:7bcac9a2b4fdbed2c16fa5681356d7121ecabf041f18d97ed5b8e0dd38a80224", + "sha256:80b06212075346b5546b0417b9f2bf467fea3bfe7352f781ffc05a8ab24ba14a", + "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2", + "sha256:8eb687582ed7cd8c4bdbff3df6c0da443eb89c3c72e6e5dcdd9c81729712791a", + "sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819", + "sha256:9f3e33c28cd39d1b655ed1ba7247133b6f7fc16fa16887b120c0c670e35ce346", + "sha256:a8661b2ce9694ca01c529bfa204dbb144b275a31685a075ce123f12331be790b", + "sha256:a9da7010cec5a12193d1af9872a00888f396aba3dc79186604a09ea3ee7c029e", + "sha256:b315d709717a99f4b27b59b021e6207c64620790ca3e0bde636a6c7f14618abb", + "sha256:ba6f2b3f452e150945d58f4badd92310449876c4c954836cfb1803bdd7b422f0", + "sha256:c33d18eb6e6bc36f09d793c0dc58b0211fccc6ae5149b808da4a62660678b156", + "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd", + "sha256:c9e005e9bd57bc987764c32a1bee4364c44fdc11a3cc20a40b93b444984f2b87", + "sha256:d2ad4d668a5c0645d281dcd17aff2be3212bc109b33814bbb15c4939f44181cc", + "sha256:d950695ae4381ecd856bcaf2b1e866720e4ab9a1498cba61c602e56630ca7195", + "sha256:e22dcb48709fc51a7b58a927391b23ab37eb3737a98ac4338e2448bef8559b33", + "sha256:e8c6a99be100371dbb046880e7a282152aa5d6127ae01783e37662ef73850d8f", + "sha256:e9dc245e3ac69c92ee4c167fbdd7428ec1956d4e754223124991ef29eb57a09d", + "sha256:eb687a11f0a7a1839719edd80f41e459cc5366857ecbed383ff376c4e3cc6afd", + "sha256:eb9e2a346c5238a30a746893f23a9535e700f8192a68c07c0258e7ece6ff3728", + "sha256:ed38b924ce794e505647f7c331b22a693bee1538fdf46b0222c4717b42f744e7", + "sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99", + "sha256:f10afb1004f102c7868ebfe91c28f4a712227fe4cb24974350ace1f90e1febbf", + "sha256:f174135f5609428cc6e1b9090f9268f5c8935fddb1b25ccb8255a2d50de6789e", + "sha256:f3ebe6e73c319340830a9b2825d32eb6d8475c1dac020b4f0aa774ee3b898d1c", + "sha256:fd4305f86f53dfd8cd3522269ed7fc34856a8ee3709a5e28b2836b2db9d4cd69" ], - "version": "==1.14.5" + "version": "==1.14.6" }, "channels": { "hashes": [ @@ -1072,11 +1063,11 @@ }, "sentry-sdk": { "hashes": [ - "sha256:c1227d38dca315ba35182373f129c3e2722e8ed999e52584e6aca7d287870739", - "sha256:c7d380a21281e15be3d9f67a3c4fbb4f800c481d88ff8d8931f39486dd7b4ada" + "sha256:5210a712dd57d88d225c1fc3fe3a3626fee493637bcd54e204826cf04b8d769c", + "sha256:6864dcb6f7dec692635e5518c2a5c80010adf673c70340817f1a1b713d65bb41" ], "index": "pypi", - "version": "==1.1.0" + "version": "==1.3.0" }, "service-identity": { "hashes": [ @@ -1582,11 +1573,11 @@ }, "isort": { "hashes": [ - "sha256:83510593e07e433b77bd5bff0f6f607dbafa06d1a89022616f02d8b699cfcd56", - "sha256:8e2c107091cfec7286bc0f68a547d0ba4c094d460b732075b6fba674f1035c0c" + "sha256:eed17b53c3e7912425579853d078a0832820f023191561fcee9d7cae424e0813", + "sha256:f65ce5bd4cbc6abdfbe29afc2f0245538ab358c14590912df638033f157d555e" ], - "markers": "python_version < '4.0' and python_full_version >= '3.6.1'", - "version": "==5.9.1" + "markers": "python_version < '4' and python_full_version >= '3.6.1'", + "version": "==5.9.2" }, "lazy-object-proxy": { "hashes": [ @@ -1753,45 +1744,49 @@ }, "regex": { "hashes": [ - "sha256:0e46c1191b2eb293a6912269ed08b4512e7e241bbf591f97e527492e04c77e93", - "sha256:18040755606b0c21281493ec309214bd61e41a170509e5014f41d6a5a586e161", - "sha256:1806370b2bef4d4193eebe8ee59a9fd7547836a34917b7badbe6561a8594d9cb", - "sha256:1ccbd41dbee3a31e18938096510b7d4ee53aa9fce2ee3dcc8ec82ae264f6acfd", - "sha256:1d386402ae7f3c9b107ae5863f7ecccb0167762c82a687ae6526b040feaa5ac6", - "sha256:210c359e6ee5b83f7d8c529ba3c75ba405481d50f35a420609b0db827e2e3bb5", - "sha256:268fe9dd1deb4a30c8593cabd63f7a241dfdc5bd9dd0233906c718db22cdd49a", - "sha256:361be4d311ac995a8c7ad577025a3ae3a538531b1f2cf32efd8b7e5d33a13e5a", - "sha256:3f7a92e60930f8fca2623d9e326c173b7cf2c8b7e4fdcf984b75a1d2fb08114d", - "sha256:444723ebaeb7fa8125f29c01a31101a3854ac3de293e317944022ae5effa53a4", - "sha256:494d0172774dc0beeea984b94c95389143db029575f7ca908edd74469321ea99", - "sha256:4b1999ef60c45357598935c12508abf56edbbb9c380df6f336de38a6c3a294ae", - "sha256:4fc86b729ab88fe8ac3ec92287df253c64aa71560d76da5acd8a2e245839c629", - "sha256:5049d00dbb78f9d166d1c704e93934d42cce0570842bb1a61695123d6b01de09", - "sha256:56bef6b414949e2c9acf96cb5d78de8b529c7b99752619494e78dc76f99fd005", - "sha256:59845101de68fd5d3a1145df9ea022e85ecd1b49300ea68307ad4302320f6f61", - "sha256:6b8b629f93246e507287ee07e26744beaffb4c56ed520576deac8b615bd76012", - "sha256:6c72ebb72e64e9bd195cb35a9b9bbfb955fd953b295255b8ae3e4ad4a146b615", - "sha256:7743798dfb573d006f1143d745bf17efad39775a5190b347da5d83079646be56", - "sha256:78a2a885345a2d60b5e68099e877757d5ed12e46ba1e87507175f14f80892af3", - "sha256:849802379a660206277675aa5a5c327f5c910c690649535863ddf329b0ba8c87", - "sha256:8cf6728f89b071bd3ab37cb8a0e306f4de897553a0ed07442015ee65fbf53d62", - "sha256:a1b6a3f600d6aff97e3f28c34192c9ed93fee293bd96ef327b64adb51a74b2f6", - "sha256:a548bb51c4476332ce4139df8e637386730f79a92652a907d12c696b6252b64d", - "sha256:a8a5826d8a1b64e2ff9af488cc179e1a4d0f144d11ce486a9f34ea38ccedf4ef", - "sha256:b024ee43ee6b310fad5acaee23e6485b21468718cb792a9d1693eecacc3f0b7e", - "sha256:b092754c06852e8a8b022004aff56c24b06310189186805800d09313c37ce1f8", - "sha256:b1dbeef938281f240347d50f28ae53c4b046a23389cd1fc4acec5ea0eae646a1", - "sha256:bf819c5b77ff44accc9a24e31f1f7ceaaf6c960816913ed3ef8443b9d20d81b6", - "sha256:c11f2fca544b5e30a0e813023196a63b1cb9869106ef9a26e9dae28bce3e4e26", - "sha256:ce269e903b00d1ab4746793e9c50a57eec5d5388681abef074d7b9a65748fca5", - "sha256:d0cf2651a8804f6325747c7e55e3be0f90ee2848e25d6b817aa2728d263f9abb", - "sha256:e07e92935040c67f49571779d115ecb3e727016d42fb36ee0d8757db4ca12ee0", - "sha256:e80d2851109e56420b71f9702ad1646e2f0364528adbf6af85527bc61e49f394", - "sha256:ed77b97896312bc2deafe137ca2626e8b63808f5bedb944f73665c68093688a7", - "sha256:f32f47fb22c988c0b35756024b61d156e5c4011cb8004aa53d93b03323c45657", - "sha256:fdad3122b69cdabdb3da4c2a4107875913ac78dab0117fc73f988ad589c66b66" + "sha256:0eb2c6e0fcec5e0f1d3bcc1133556563222a2ffd2211945d7b1480c1b1a42a6f", + "sha256:15dddb19823f5147e7517bb12635b3c82e6f2a3a6b696cc3e321522e8b9308ad", + "sha256:173bc44ff95bc1e96398c38f3629d86fa72e539c79900283afa895694229fe6a", + "sha256:1c78780bf46d620ff4fff40728f98b8afd8b8e35c3efd638c7df67be2d5cddbf", + "sha256:2366fe0479ca0e9afa534174faa2beae87847d208d457d200183f28c74eaea59", + "sha256:2bceeb491b38225b1fee4517107b8491ba54fba77cf22a12e996d96a3c55613d", + "sha256:2ddeabc7652024803666ea09f32dd1ed40a0579b6fbb2a213eba590683025895", + "sha256:2fe5e71e11a54e3355fa272137d521a40aace5d937d08b494bed4529964c19c4", + "sha256:319eb2a8d0888fa6f1d9177705f341bc9455a2c8aca130016e52c7fe8d6c37a3", + "sha256:3f5716923d3d0bfb27048242a6e0f14eecdb2e2a7fac47eda1d055288595f222", + "sha256:422dec1e7cbb2efbbe50e3f1de36b82906def93ed48da12d1714cabcd993d7f0", + "sha256:4c9c3155fe74269f61e27617529b7f09552fbb12e44b1189cebbdb24294e6e1c", + "sha256:4f64fc59fd5b10557f6cd0937e1597af022ad9b27d454e182485f1db3008f417", + "sha256:564a4c8a29435d1f2256ba247a0315325ea63335508ad8ed938a4f14c4116a5d", + "sha256:59506c6e8bd9306cd8a41511e32d16d5d1194110b8cfe5a11d102d8b63cf945d", + "sha256:598c0a79b4b851b922f504f9f39a863d83ebdfff787261a5ed061c21e67dd761", + "sha256:59c00bb8dd8775473cbfb967925ad2c3ecc8886b3b2d0c90a8e2707e06c743f0", + "sha256:6110bab7eab6566492618540c70edd4d2a18f40ca1d51d704f1d81c52d245026", + "sha256:6afe6a627888c9a6cfbb603d1d017ce204cebd589d66e0703309b8048c3b0854", + "sha256:791aa1b300e5b6e5d597c37c346fb4d66422178566bbb426dd87eaae475053fb", + "sha256:8394e266005f2d8c6f0bc6780001f7afa3ef81a7a2111fa35058ded6fce79e4d", + "sha256:875c355360d0f8d3d827e462b29ea7682bf52327d500a4f837e934e9e4656068", + "sha256:89e5528803566af4df368df2d6f503c84fbfb8249e6631c7b025fe23e6bd0cde", + "sha256:99d8ab206a5270c1002bfcf25c51bf329ca951e5a169f3b43214fdda1f0b5f0d", + "sha256:9a854b916806c7e3b40e6616ac9e85d3cdb7649d9e6590653deb5b341a736cec", + "sha256:b85ac458354165405c8a84725de7bbd07b00d9f72c31a60ffbf96bb38d3e25fa", + "sha256:bc84fb254a875a9f66616ed4538542fb7965db6356f3df571d783f7c8d256edd", + "sha256:c92831dac113a6e0ab28bc98f33781383fe294df1a2c3dfd1e850114da35fd5b", + "sha256:cbe23b323988a04c3e5b0c387fe3f8f363bf06c0680daf775875d979e376bd26", + "sha256:ccb3d2190476d00414aab36cca453e4596e8f70a206e2aa8db3d495a109153d2", + "sha256:d8bbce0c96462dbceaa7ac4a7dfbbee92745b801b24bce10a98d2f2b1ea9432f", + "sha256:db2b7df831c3187a37f3bb80ec095f249fa276dbe09abd3d35297fc250385694", + "sha256:e586f448df2bbc37dfadccdb7ccd125c62b4348cb90c10840d695592aa1b29e0", + "sha256:e5983c19d0beb6af88cb4d47afb92d96751fb3fa1784d8785b1cdf14c6519407", + "sha256:e6a1e5ca97d411a461041d057348e578dc344ecd2add3555aedba3b408c9f874", + "sha256:eaf58b9e30e0e546cdc3ac06cf9165a1ca5b3de8221e9df679416ca667972035", + "sha256:ed693137a9187052fc46eedfafdcb74e09917166362af4cc4fddc3b31560e93d", + "sha256:edd1a68f79b89b0c57339bce297ad5d5ffcc6ae7e1afdb10f1947706ed066c9c", + "sha256:f080248b3e029d052bf74a897b9d74cfb7643537fbde97fe8225a6467fb559b5", + "sha256:f9392a4555f3e4cb45310a65b403d86b589adc773898c25a39184b1ba4db8985", + "sha256:f98dc35ab9a749276f1a4a38ab3e0e2ba1662ce710f6530f5b0a6656f1c32b58" ], - "version": "==2021.7.1" + "version": "==2021.7.6" }, "requests": { "hashes": [ diff --git a/authentik/core/migrations/0026_alter_application_meta_icon.py b/authentik/core/migrations/0026_alter_application_meta_icon.py new file mode 100644 index 000000000..d2a0aed56 --- /dev/null +++ b/authentik/core/migrations/0026_alter_application_meta_icon.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.5 on 2021-07-09 17:27 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("authentik_core", "0025_alter_application_meta_icon"), + ] + + operations = [ + migrations.AlterField( + model_name="application", + name="meta_icon", + field=models.FileField( + default=None, max_length=500, null=True, upload_to="application-icons/" + ), + ), + ] diff --git a/authentik/core/models.py b/authentik/core/models.py index df003cc54..866ec374c 100644 --- a/authentik/core/models.py +++ b/authentik/core/models.py @@ -228,7 +228,10 @@ class Application(PolicyBindingModel): ) # For template applications, this can be set to /static/authentik/applications/* meta_icon = models.FileField( - upload_to="application-icons/", default=None, null=True + upload_to="application-icons/", + default=None, + null=True, + max_length=500, ) meta_description = models.TextField(default="", blank=True) meta_publisher = models.TextField(default="", blank=True) diff --git a/authentik/events/models.py b/authentik/events/models.py index 904fe06c8..0364e5dd4 100644 --- a/authentik/events/models.py +++ b/authentik/events/models.py @@ -313,7 +313,8 @@ class NotificationTransport(models.Model): response = post(self.webhook_url, json=body) response.raise_for_status() except RequestException as exc: - raise NotificationTransportError(exc.response.text) from exc + text = exc.response.text if exc.response else str(exc) + raise NotificationTransportError(text) from exc return [ response.status_code, response.text, diff --git a/authentik/flows/migrations/0023_alter_flow_background.py b/authentik/flows/migrations/0023_alter_flow_background.py new file mode 100644 index 000000000..e7ee64008 --- /dev/null +++ b/authentik/flows/migrations/0023_alter_flow_background.py @@ -0,0 +1,24 @@ +# Generated by Django 3.2.5 on 2021-07-09 17:27 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("authentik_flows", "0022_alter_flowstagebinding_invalid_response_action"), + ] + + operations = [ + migrations.AlterField( + model_name="flow", + name="background", + field=models.FileField( + default=None, + help_text="Background shown during execution", + max_length=500, + null=True, + upload_to="flow-backgrounds/", + ), + ), + ] diff --git a/authentik/flows/models.py b/authentik/flows/models.py index df713dba2..d4821ec27 100644 --- a/authentik/flows/models.py +++ b/authentik/flows/models.py @@ -121,6 +121,7 @@ class Flow(SerializerModel, PolicyBindingModel): default=None, null=True, help_text=_("Background shown during execution"), + max_length=500, ) compatibility_mode = models.BooleanField( diff --git a/authentik/flows/stage.py b/authentik/flows/stage.py index 93461ce42..f8c4afe8a 100644 --- a/authentik/flows/stage.py +++ b/authentik/flows/stage.py @@ -17,7 +17,7 @@ from authentik.flows.challenge import ( WithUserInfoChallenge, ) from authentik.flows.models import InvalidResponseAction -from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER +from authentik.flows.planner import PLAN_CONTEXT_APPLICATION, PLAN_CONTEXT_PENDING_USER from authentik.flows.views import FlowExecutorView PLAN_CONTEXT_PENDING_USER_IDENTIFIER = "pending_user_identifier" @@ -102,12 +102,18 @@ class ChallengeStageView(StageView): return self.challenge_invalid(challenge) return self.challenge_valid(challenge) + def format_title(self) -> str: + """Allow usage of placeholder in flow title.""" + return self.executor.flow.title % { + "app": self.executor.plan.context.get(PLAN_CONTEXT_APPLICATION, "") + } + def _get_challenge(self, *args, **kwargs) -> Challenge: challenge = self.get_challenge(*args, **kwargs) if "flow_info" not in challenge.initial_data: flow_info = ContextualFlowInfo( data={ - "title": self.executor.flow.title, + "title": self.format_title(), "background": self.executor.flow.background_url, "cancel_url": reverse("authentik_flows:cancel"), } diff --git a/authentik/providers/oauth2/tests/test_authorize.py b/authentik/providers/oauth2/tests/test_authorize.py index b78d674d2..f96533fc6 100644 --- a/authentik/providers/oauth2/tests/test_authorize.py +++ b/authentik/providers/oauth2/tests/test_authorize.py @@ -67,7 +67,7 @@ class TestAuthorize(OAuthTestCase): ) OAuthAuthorizationParams.from_request(request) - def test_redirect_uri(self): + def test_invalid_redirect_uri(self): """test missing/invalid redirect URI""" OAuth2Provider.objects.create( name="test", @@ -91,6 +91,28 @@ class TestAuthorize(OAuthTestCase): ) OAuthAuthorizationParams.from_request(request) + def test_empty_redirect_uri(self): + """test empty redirect URI (configure in provider)""" + OAuth2Provider.objects.create( + name="test", + client_id="test", + authorization_flow=Flow.objects.first(), + ) + with self.assertRaises(RedirectUriError): + request = self.factory.get( + "/", data={"response_type": "code", "client_id": "test"} + ) + OAuthAuthorizationParams.from_request(request) + request = self.factory.get( + "/", + data={ + "response_type": "code", + "client_id": "test", + "redirect_uri": "http://localhost", + }, + ) + OAuthAuthorizationParams.from_request(request) + def test_response_type(self): """test response_type""" OAuth2Provider.objects.create( diff --git a/authentik/providers/oauth2/views/authorize.py b/authentik/providers/oauth2/views/authorize.py index 635c7d307..71d25a837 100644 --- a/authentik/providers/oauth2/views/authorize.py +++ b/authentik/providers/oauth2/views/authorize.py @@ -156,20 +156,23 @@ class OAuthAuthorizationParams: def check_redirect_uri(self): """Redirect URI validation.""" + allowed_redirect_urls = self.provider.redirect_uris.split() if not self.redirect_uri: LOGGER.warning("Missing redirect uri.") - raise RedirectUriError("", self.provider.redirect_uris.split()) - if self.redirect_uri.lower() not in [ - x.lower() for x in self.provider.redirect_uris.split() - ]: + raise RedirectUriError("", allowed_redirect_urls) + if len(allowed_redirect_urls) < 1: + LOGGER.warning( + "Provider has no allowed redirect_uri set, allowing all.", + allow=self.redirect_uri.lower(), + ) + return + if self.redirect_uri.lower() not in [x.lower() for x in allowed_redirect_urls]: LOGGER.warning( "Invalid redirect uri", redirect_uri=self.redirect_uri, - excepted=self.provider.redirect_uris.split(), - ) - raise RedirectUriError( - self.redirect_uri, self.provider.redirect_uris.split() + excepted=allowed_redirect_urls, ) + raise RedirectUriError(self.redirect_uri, allowed_redirect_urls) if self.request: raise AuthorizeError( self.redirect_uri, "request_not_supported", self.grant_type, self.state diff --git a/authentik/providers/saml/processors/request_parser.py b/authentik/providers/saml/processors/request_parser.py index 71b7aa859..0746e6b5c 100644 --- a/authentik/providers/saml/processors/request_parser.py +++ b/authentik/providers/saml/processors/request_parser.py @@ -1,7 +1,7 @@ """SAML AuthNRequest Parser and dataclass""" from base64 import b64decode from dataclasses import dataclass -from typing import Optional +from typing import Optional, Union from urllib.parse import quote_plus import xmlsec @@ -54,7 +54,9 @@ class AuthNRequestParser: def __init__(self, provider: SAMLProvider): self.provider = provider - def _parse_xml(self, decoded_xml: str, relay_state: Optional[str]) -> AuthNRequest: + def _parse_xml( + self, decoded_xml: Union[str, bytes], relay_state: Optional[str] + ) -> AuthNRequest: root = ElementTree.fromstring(decoded_xml) request_acs_url = root.attrib["AssertionConsumerServiceURL"] @@ -79,10 +81,12 @@ class AuthNRequestParser: return auth_n_request - def parse(self, saml_request: str, relay_state: Optional[str]) -> AuthNRequest: + def parse( + self, saml_request: str, relay_state: Optional[str] = None + ) -> AuthNRequest: """Validate and parse raw request with enveloped signautre.""" try: - decoded_xml = b64decode(saml_request.encode()).decode() + decoded_xml = b64decode(saml_request.encode()) except UnicodeDecodeError: raise CannotHandleAssertion(ERROR_CANNOT_DECODE_REQUEST) @@ -93,8 +97,9 @@ class AuthNRequestParser: signature_nodes = root.xpath( "/samlp:AuthnRequest/ds:Signature", namespaces=NS_MAP ) - if len(signature_nodes) != 1: - raise CannotHandleAssertion(ERROR_SIGNATURE_REQUIRED_BUT_ABSENT) + # No signatures, no verifier configured -> decode xml directly + if len(signature_nodes) < 1 and not verifier: + return self._parse_xml(decoded_xml, relay_state) signature_node = signature_nodes[0] diff --git a/authentik/providers/saml/tests/test_auth_n_request.py b/authentik/providers/saml/tests/test_auth_n_request.py index ba5915a8e..f217da405 100644 --- a/authentik/providers/saml/tests/test_auth_n_request.py +++ b/authentik/providers/saml/tests/test_auth_n_request.py @@ -14,13 +14,29 @@ from authentik.providers.saml.processors.assertion import AssertionProcessor from authentik.providers.saml.processors.request_parser import AuthNRequestParser from authentik.sources.saml.exceptions import MismatchedRequestID from authentik.sources.saml.models import SAMLSource -from authentik.sources.saml.processors.constants import SAML_NAME_ID_FORMAT_UNSPECIFIED +from authentik.sources.saml.processors.constants import ( + SAML_NAME_ID_FORMAT_EMAIL, + SAML_NAME_ID_FORMAT_UNSPECIFIED, +) from authentik.sources.saml.processors.request import ( SESSION_REQUEST_ID, RequestProcessor, ) from authentik.sources.saml.processors.response import ResponseProcessor +POST_REQUEST = ( + "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbDJwOkF1dGhuUmVxdWVzdCB4bWxuczpzYW1sMn" + "A9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpwcm90b2NvbCIgQXNzZXJ0aW9uQ29uc3VtZXJTZXJ2aWNlVVJMPSJo" + "dHRwczovL2V1LWNlbnRyYWwtMS5zaWduaW4uYXdzLmFtYXpvbi5jb20vcGxhdGZvcm0vc2FtbC9hY3MvMmQ3MzdmOTYtNT" + "VmYi00MDM1LTk1M2UtNWUyNDEzNGViNzc4IiBEZXN0aW5hdGlvbj0iaHR0cHM6Ly9pZC5iZXJ5anUub3JnL2FwcGxpY2F0" + "aW9uL3NhbWwvYXdzLXNzby9zc28vYmluZGluZy9wb3N0LyIgSUQ9ImF3c19MRHhMR2V1YnBjNWx4MTJneENnUzZ1UGJpeD" + "F5ZDVyZSIgSXNzdWVJbnN0YW50PSIyMDIxLTA3LTA2VDE0OjIzOjA2LjM4OFoiIFByb3RvY29sQmluZGluZz0idXJuOm9h" + "c2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmJpbmRpbmdzOkhUVFAtUE9TVCIgVmVyc2lvbj0iMi4wIj48c2FtbDI6SXNzdWVyIH" + "htbG5zOnNhbWwyPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YXNzZXJ0aW9uIj5odHRwczovL2V1LWNlbnRyYWwt" + "MS5zaWduaW4uYXdzLmFtYXpvbi5jb20vcGxhdGZvcm0vc2FtbC9kLTk5NjcyZjgyNzg8L3NhbWwyOklzc3Vlcj48c2FtbD" + "JwOk5hbWVJRFBvbGljeSBGb3JtYXQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjEuMTpuYW1laWQtZm9ybWF0OmVtYWls" + "QWRkcmVzcyIvPjwvc2FtbDJwOkF1dGhuUmVxdWVzdD4=" +) REDIRECT_REQUEST = ( "fZLNbsIwEIRfJfIdbKeFgEUipXAoEm0jSHvopTLJplhK7NTr9Oft6yRUKhekPdk73+yOdoWyqVuRdu6k9/DRAbrgu6k1iu" "EjJp3VwkhUKLRsAIUrxCF92IlwykRrjTOFqUmQIoJ1yui10dg1YA9gP1UBz/tdTE7OtSgo5WzKQzYditGeP8GW9rSQZk+H" @@ -208,3 +224,22 @@ class TestAuthNRequest(TestCase): self.assertEqual(parsed_request.id, "_dcf55fcd27a887e60a7ef9ee6fd3adab") self.assertEqual(parsed_request.name_id_policy, SAML_NAME_ID_FORMAT_UNSPECIFIED) self.assertEqual(parsed_request.relay_state, REDIRECT_RELAY_STATE) + + def test_signed_static(self): + """Test post request with static request""" + provider = SAMLProvider( + name="aws", + authorization_flow=Flow.objects.get( + slug="default-provider-authorization-implicit-consent" + ), + acs_url=( + "https://eu-central-1.signin.aws.amazon.com/platform/" + "saml/acs/2d737f96-55fb-4035-953e-5e24134eb778" + ), + audience="https://10.120.20.200/saml-sp/SAML2/POST", + issuer="https://10.120.20.200/saml-sp/SAML2/POST", + signing_kp=CertificateKeyPair.objects.first(), + ) + parsed_request = AuthNRequestParser(provider).parse(POST_REQUEST) + self.assertEqual(parsed_request.id, "aws_LDxLGeubpc5lx12gxCgS6uPbix1yd5re") + self.assertEqual(parsed_request.name_id_policy, SAML_NAME_ID_FORMAT_EMAIL) diff --git a/authentik/root/middleware.py b/authentik/root/middleware.py new file mode 100644 index 000000000..bb9e05044 --- /dev/null +++ b/authentik/root/middleware.py @@ -0,0 +1,89 @@ +"""Dynamically set SameSite depending if the upstream connection is TLS or not""" +import time + +from django.conf import settings +from django.contrib.sessions.backends.base import UpdateError +from django.contrib.sessions.exceptions import SessionInterrupted +from django.contrib.sessions.middleware import ( + SessionMiddleware as UpstreamSessionMiddleware, +) +from django.http.request import HttpRequest +from django.http.response import HttpResponse +from django.utils.cache import patch_vary_headers +from django.utils.http import http_date + + +class SessionMiddleware(UpstreamSessionMiddleware): + """Dynamically set SameSite depending if the upstream connection is TLS or not""" + + @staticmethod + def is_secure(request: HttpRequest) -> bool: + """Check if request is TLS'd or localhost""" + if request.is_secure(): + return True + host, _, _ = request.get_host().partition(":") + if host == "localhost" and settings.DEBUG: + return True + return False + + def process_response( + self, request: HttpRequest, response: HttpResponse + ) -> HttpResponse: + """ + If request.session was modified, or if the configuration is to save the + session every time, save the changes and set a session cookie or delete + the session cookie if the session has been emptied. + """ + try: + accessed = request.session.accessed + modified = request.session.modified + empty = request.session.is_empty() + except AttributeError: + return response + # Set SameSite based on whether or not the request is secure + secure = SessionMiddleware.is_secure(request) + same_site = "None" if secure else "Lax" + # First check if we need to delete this cookie. + # The session should be deleted only if the session is entirely empty. + if settings.SESSION_COOKIE_NAME in request.COOKIES and empty: + response.delete_cookie( + settings.SESSION_COOKIE_NAME, + path=settings.SESSION_COOKIE_PATH, + domain=settings.SESSION_COOKIE_DOMAIN, + samesite=same_site, + ) + patch_vary_headers(response, ("Cookie",)) + else: + if accessed: + patch_vary_headers(response, ("Cookie",)) + if (modified or settings.SESSION_SAVE_EVERY_REQUEST) and not empty: + if request.session.get_expire_at_browser_close(): + max_age = None + expires = None + else: + max_age = request.session.get_expiry_age() + expires_time = time.time() + max_age + expires = http_date(expires_time) + # Save the session data and refresh the client cookie. + # Skip session save for 500 responses, refs #3881. + if response.status_code != 500: + try: + request.session.save() + except UpdateError: + raise SessionInterrupted( + "The request's session was deleted before the " + "request completed. The user may have logged " + "out in a concurrent request, for example." + ) + response.set_cookie( + settings.SESSION_COOKIE_NAME, + request.session.session_key, + max_age=max_age, + expires=expires, + domain=settings.SESSION_COOKIE_DOMAIN, + path=settings.SESSION_COOKIE_PATH, + secure=secure, + httponly=settings.SESSION_COOKIE_HTTPONLY or None, + samesite=same_site, + ) + return response diff --git a/authentik/root/settings.py b/authentik/root/settings.py index d9977031c..3b12469a0 100644 --- a/authentik/root/settings.py +++ b/authentik/root/settings.py @@ -203,14 +203,16 @@ DJANGO_REDIS_IGNORE_EXCEPTIONS = True DJANGO_REDIS_LOG_IGNORED_EXCEPTIONS = True SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "default" -SESSION_COOKIE_SAMESITE = "lax" +# Configured via custom SessionMiddleware +# SESSION_COOKIE_SAMESITE = "None" +# SESSION_COOKIE_SECURE = True SESSION_EXPIRE_AT_BROWSER_CLOSE = True MESSAGE_STORAGE = "authentik.root.messages.storage.ChannelsStorage" MIDDLEWARE = [ "django_prometheus.middleware.PrometheusBeforeMiddleware", - "django.contrib.sessions.middleware.SessionMiddleware", + "authentik.root.middleware.SessionMiddleware", "django.contrib.auth.middleware.AuthenticationMiddleware", "authentik.core.middleware.RequestIDMiddleware", "authentik.tenants.middleware.TenantMiddleware", diff --git a/web/package-lock.json b/web/package-lock.json index 680d55dfc..9d362bbef 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -26,11 +26,11 @@ "@rollup/plugin-typescript": "^8.2.1", "@sentry/browser": "^6.8.0", "@sentry/tracing": "^6.8.0", - "@types/chart.js": "^2.9.33", - "@types/codemirror": "5.60.1", - "@types/grecaptcha": "^3.0.2", - "@typescript-eslint/eslint-plugin": "^4.28.1", - "@typescript-eslint/parser": "^4.28.1", + "@types/chart.js": "^2.9.34", + "@types/codemirror": "5.60.2", + "@types/grecaptcha": "^3.0.3", + "@typescript-eslint/eslint-plugin": "^4.28.2", + "@typescript-eslint/parser": "^4.28.2", "@webcomponents/webcomponentsjs": "^2.5.0", "authentik-api": "file:api", "babel-plugin-macros": "^3.1.0", @@ -48,7 +48,7 @@ "lit-html": "^1.4.1", "moment": "^2.29.1", "rapidoc": "^9.0.0", - "rollup": "^2.52.7", + "rollup": "^2.52.8", "rollup-plugin-commonjs": "^10.1.0", "rollup-plugin-copy": "^3.4.0", "rollup-plugin-cssimport": "^1.0.2", @@ -2454,9 +2454,9 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@types/chart.js": { - "version": "2.9.33", - "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.33.tgz", - "integrity": "sha512-vB6ZFx1cA91aiCoVpreLQwCQHS/Cj+9YtjBTwFlTjKXyY0douXV2KV4+fluxdI+grDZ6hTCQeg2HY/aQ9NeLHA==", + "version": "2.9.34", + "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.34.tgz", + "integrity": "sha512-CtZVk+kh1IN67dv+fB0CWmCLCRrDJgqOj15qPic2B1VCMovNO6B7Vhf/TgPpNscjhAL1j+qUntDMWb9A4ZmPTg==", "dependencies": { "moment": "^2.10.2" } @@ -2471,9 +2471,9 @@ } }, "node_modules/@types/codemirror": { - "version": "5.60.1", - "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.1.tgz", - "integrity": "sha512-yV14LQ5VvghnW0uSuCw2bEfZC6NvxHQEckl2w3dEk5l0yPGzQh14dCaWvG5KD/2l3cgFSifR+6nIUD7LDLdUTg==", + "version": "5.60.2", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.2.tgz", + "integrity": "sha512-tk8YxckrdU49GaJYRKxdzzzXrTlyT2nQGnobb8rAk34jt+kYXOxPKGqNgr7SJpl5r6YGaRD4CDfqiL+6A+/z7w==", "dependencies": { "@types/tern": "*" } @@ -2501,9 +2501,9 @@ } }, "node_modules/@types/grecaptcha": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/grecaptcha/-/grecaptcha-3.0.2.tgz", - "integrity": "sha512-KMuF6aFT5mradNvxs1Lv1D7c+H5InmUeR+gscpoyaz16GnJY4NmzWBlyNr66mj20U/QS2MR+/WPxuYH6bdJATA==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/grecaptcha/-/grecaptcha-3.0.3.tgz", + "integrity": "sha512-osLqWRzsRsDtCfiCl1lbtUY8ANGCQsG/hhht3E7g1pVT7fD5SXgAg53S2grKjjSkXcm0fvMDbhUeL9NyAJvzGQ==" }, "node_modules/@types/html-minifier": { "version": "3.5.3", @@ -2599,12 +2599,12 @@ "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.1.tgz", - "integrity": "sha512-9yfcNpDaNGQ6/LQOX/KhUFTR1sCKH+PBr234k6hI9XJ0VP5UqGxap0AnNwBnWFk1MNyWBylJH9ZkzBXC+5akZQ==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.2.tgz", + "integrity": "sha512-PGqpLLzHSxq956rzNGasO3GsAPf2lY9lDUBXhS++SKonglUmJypaUtcKzRtUte8CV7nruwnDxtLUKpVxs0wQBw==", "dependencies": { - "@typescript-eslint/experimental-utils": "4.28.1", - "@typescript-eslint/scope-manager": "4.28.1", + "@typescript-eslint/experimental-utils": "4.28.2", + "@typescript-eslint/scope-manager": "4.28.2", "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", "regexpp": "^3.1.0", @@ -2629,14 +2629,14 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.1.tgz", - "integrity": "sha512-n8/ggadrZ+uyrfrSEchx3jgODdmcx7MzVM2sI3cTpI/YlfSm0+9HEUaWw3aQn2urL2KYlWYMDgn45iLfjDYB+Q==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.2.tgz", + "integrity": "sha512-MwHPsL6qo98RC55IoWWP8/opTykjTp4JzfPu1VfO2Z0MshNP0UZ1GEV5rYSSnZSUI8VD7iHvtIPVGW5Nfh7klQ==", "dependencies": { "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.28.1", - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/typescript-estree": "4.28.1", + "@typescript-eslint/scope-manager": "4.28.2", + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/typescript-estree": "4.28.2", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -2669,13 +2669,13 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.1.tgz", - "integrity": "sha512-UjrMsgnhQIIK82hXGaD+MCN8IfORS1CbMdu7VlZbYa8LCZtbZjJA26De4IPQB7XYZbL8gJ99KWNj0l6WD0guJg==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.2.tgz", + "integrity": "sha512-Q0gSCN51eikAgFGY+gnd5p9bhhCUAl0ERMiDKrTzpSoMYRubdB8MJrTTR/BBii8z+iFwz8oihxd0RAdP4l8w8w==", "dependencies": { - "@typescript-eslint/scope-manager": "4.28.1", - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/typescript-estree": "4.28.1", + "@typescript-eslint/scope-manager": "4.28.2", + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/typescript-estree": "4.28.2", "debug": "^4.3.1" }, "engines": { @@ -2695,12 +2695,12 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.1.tgz", - "integrity": "sha512-o95bvGKfss6705x7jFGDyS7trAORTy57lwJ+VsYwil/lOUxKQ9tA7Suuq+ciMhJc/1qPwB3XE2DKh9wubW8YYA==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz", + "integrity": "sha512-MqbypNjIkJFEFuOwPWNDjq0nqXAKZvDNNs9yNseoGBB1wYfz1G0WHC2AVOy4XD7di3KCcW3+nhZyN6zruqmp2A==", "dependencies": { - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/visitor-keys": "4.28.1" + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/visitor-keys": "4.28.2" }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" @@ -2711,9 +2711,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.1.tgz", - "integrity": "sha512-4z+knEihcyX7blAGi7O3Fm3O6YRCP+r56NJFMNGsmtdw+NCdpG5SgNz427LS9nQkRVTswZLhz484hakQwB8RRg==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz", + "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==", "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, @@ -2723,12 +2723,12 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.1.tgz", - "integrity": "sha512-GhKxmC4sHXxHGJv8e8egAZeTZ6HI4mLU6S7FUzvFOtsk7ZIDN1ksA9r9DyOgNqowA9yAtZXV0Uiap61bIO81FQ==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz", + "integrity": "sha512-86lLstLvK6QjNZjMoYUBMMsULFw0hPHJlk1fzhAVoNjDBuPVxiwvGuPQq3fsBMCxuDJwmX87tM/AXoadhHRljg==", "dependencies": { - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/visitor-keys": "4.28.1", + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/visitor-keys": "4.28.2", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", @@ -2768,11 +2768,11 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.1.tgz", - "integrity": "sha512-K4HMrdFqr9PFquPu178SaSb92CaWe2yErXyPumc8cYWxFmhgJsNY9eSePmO05j0JhBvf2Cdhptd6E6Yv9HVHcg==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz", + "integrity": "sha512-aT2B4PLyyRDUVUafXzpZFoc0C9t0za4BJAKP5sgWIhG+jHECQZUEjuQSCIwZdiJJ4w4cgu5r3Kh20SOdtEBl0w==", "dependencies": { - "@typescript-eslint/types": "4.28.1", + "@typescript-eslint/types": "4.28.2", "eslint-visitor-keys": "^2.0.0" }, "engines": { @@ -6791,9 +6791,9 @@ } }, "node_modules/rollup": { - "version": "2.52.7", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.52.7.tgz", - "integrity": "sha512-55cSH4CCU6MaPr9TAOyrIC+7qFCHscL7tkNsm1MBfIJRRqRbCEY0mmeFn4Wg8FKsHtEH8r389Fz38r/o+kgXLg==", + "version": "2.52.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.52.8.tgz", + "integrity": "sha512-IjAB0C6KK5/lvqzJWAzsvOik+jV5Bt907QdkQ/gDP4j+R9KYNI1tjqdxiPitGPVrWC21Mf/ucXgowUjN/VemaQ==", "bin": { "rollup": "dist/bin/rollup" }, @@ -9307,6 +9307,7 @@ "@babel/types": "^7.11.5", "@lingui/babel-plugin-extract-messages": "^3.10.2", "@lingui/conf": "^3.10.2", + "babel-plugin-macros": "^3.0.1", "bcp-47": "^1.0.7", "chalk": "^4.1.0", "chokidar": "3.5.1", @@ -9816,9 +9817,9 @@ } }, "@types/chart.js": { - "version": "2.9.33", - "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.33.tgz", - "integrity": "sha512-vB6ZFx1cA91aiCoVpreLQwCQHS/Cj+9YtjBTwFlTjKXyY0douXV2KV4+fluxdI+grDZ6hTCQeg2HY/aQ9NeLHA==", + "version": "2.9.34", + "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.34.tgz", + "integrity": "sha512-CtZVk+kh1IN67dv+fB0CWmCLCRrDJgqOj15qPic2B1VCMovNO6B7Vhf/TgPpNscjhAL1j+qUntDMWb9A4ZmPTg==", "requires": { "moment": "^2.10.2" } @@ -9833,9 +9834,9 @@ } }, "@types/codemirror": { - "version": "5.60.1", - "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.1.tgz", - "integrity": "sha512-yV14LQ5VvghnW0uSuCw2bEfZC6NvxHQEckl2w3dEk5l0yPGzQh14dCaWvG5KD/2l3cgFSifR+6nIUD7LDLdUTg==", + "version": "5.60.2", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.2.tgz", + "integrity": "sha512-tk8YxckrdU49GaJYRKxdzzzXrTlyT2nQGnobb8rAk34jt+kYXOxPKGqNgr7SJpl5r6YGaRD4CDfqiL+6A+/z7w==", "requires": { "@types/tern": "*" } @@ -9863,9 +9864,9 @@ } }, "@types/grecaptcha": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/grecaptcha/-/grecaptcha-3.0.2.tgz", - "integrity": "sha512-KMuF6aFT5mradNvxs1Lv1D7c+H5InmUeR+gscpoyaz16GnJY4NmzWBlyNr66mj20U/QS2MR+/WPxuYH6bdJATA==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/grecaptcha/-/grecaptcha-3.0.3.tgz", + "integrity": "sha512-osLqWRzsRsDtCfiCl1lbtUY8ANGCQsG/hhht3E7g1pVT7fD5SXgAg53S2grKjjSkXcm0fvMDbhUeL9NyAJvzGQ==" }, "@types/html-minifier": { "version": "3.5.3", @@ -9961,12 +9962,12 @@ "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.1.tgz", - "integrity": "sha512-9yfcNpDaNGQ6/LQOX/KhUFTR1sCKH+PBr234k6hI9XJ0VP5UqGxap0AnNwBnWFk1MNyWBylJH9ZkzBXC+5akZQ==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.2.tgz", + "integrity": "sha512-PGqpLLzHSxq956rzNGasO3GsAPf2lY9lDUBXhS++SKonglUmJypaUtcKzRtUte8CV7nruwnDxtLUKpVxs0wQBw==", "requires": { - "@typescript-eslint/experimental-utils": "4.28.1", - "@typescript-eslint/scope-manager": "4.28.1", + "@typescript-eslint/experimental-utils": "4.28.2", + "@typescript-eslint/scope-manager": "4.28.2", "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", "regexpp": "^3.1.0", @@ -9975,14 +9976,14 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.1.tgz", - "integrity": "sha512-n8/ggadrZ+uyrfrSEchx3jgODdmcx7MzVM2sI3cTpI/YlfSm0+9HEUaWw3aQn2urL2KYlWYMDgn45iLfjDYB+Q==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.2.tgz", + "integrity": "sha512-MwHPsL6qo98RC55IoWWP8/opTykjTp4JzfPu1VfO2Z0MshNP0UZ1GEV5rYSSnZSUI8VD7iHvtIPVGW5Nfh7klQ==", "requires": { "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.28.1", - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/typescript-estree": "4.28.1", + "@typescript-eslint/scope-manager": "4.28.2", + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/typescript-estree": "4.28.2", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -9998,37 +9999,37 @@ } }, "@typescript-eslint/parser": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.1.tgz", - "integrity": "sha512-UjrMsgnhQIIK82hXGaD+MCN8IfORS1CbMdu7VlZbYa8LCZtbZjJA26De4IPQB7XYZbL8gJ99KWNj0l6WD0guJg==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.2.tgz", + "integrity": "sha512-Q0gSCN51eikAgFGY+gnd5p9bhhCUAl0ERMiDKrTzpSoMYRubdB8MJrTTR/BBii8z+iFwz8oihxd0RAdP4l8w8w==", "requires": { - "@typescript-eslint/scope-manager": "4.28.1", - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/typescript-estree": "4.28.1", + "@typescript-eslint/scope-manager": "4.28.2", + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/typescript-estree": "4.28.2", "debug": "^4.3.1" } }, "@typescript-eslint/scope-manager": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.1.tgz", - "integrity": "sha512-o95bvGKfss6705x7jFGDyS7trAORTy57lwJ+VsYwil/lOUxKQ9tA7Suuq+ciMhJc/1qPwB3XE2DKh9wubW8YYA==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz", + "integrity": "sha512-MqbypNjIkJFEFuOwPWNDjq0nqXAKZvDNNs9yNseoGBB1wYfz1G0WHC2AVOy4XD7di3KCcW3+nhZyN6zruqmp2A==", "requires": { - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/visitor-keys": "4.28.1" + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/visitor-keys": "4.28.2" } }, "@typescript-eslint/types": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.1.tgz", - "integrity": "sha512-4z+knEihcyX7blAGi7O3Fm3O6YRCP+r56NJFMNGsmtdw+NCdpG5SgNz427LS9nQkRVTswZLhz484hakQwB8RRg==" + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz", + "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==" }, "@typescript-eslint/typescript-estree": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.1.tgz", - "integrity": "sha512-GhKxmC4sHXxHGJv8e8egAZeTZ6HI4mLU6S7FUzvFOtsk7ZIDN1ksA9r9DyOgNqowA9yAtZXV0Uiap61bIO81FQ==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz", + "integrity": "sha512-86lLstLvK6QjNZjMoYUBMMsULFw0hPHJlk1fzhAVoNjDBuPVxiwvGuPQq3fsBMCxuDJwmX87tM/AXoadhHRljg==", "requires": { - "@typescript-eslint/types": "4.28.1", - "@typescript-eslint/visitor-keys": "4.28.1", + "@typescript-eslint/types": "4.28.2", + "@typescript-eslint/visitor-keys": "4.28.2", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", @@ -10052,11 +10053,11 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.1.tgz", - "integrity": "sha512-K4HMrdFqr9PFquPu178SaSb92CaWe2yErXyPumc8cYWxFmhgJsNY9eSePmO05j0JhBvf2Cdhptd6E6Yv9HVHcg==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz", + "integrity": "sha512-aT2B4PLyyRDUVUafXzpZFoc0C9t0za4BJAKP5sgWIhG+jHECQZUEjuQSCIwZdiJJ4w4cgu5r3Kh20SOdtEBl0w==", "requires": { - "@typescript-eslint/types": "4.28.1", + "@typescript-eslint/types": "4.28.2", "eslint-visitor-keys": "^2.0.0" } }, @@ -13238,9 +13239,9 @@ } }, "rollup": { - "version": "2.52.7", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.52.7.tgz", - "integrity": "sha512-55cSH4CCU6MaPr9TAOyrIC+7qFCHscL7tkNsm1MBfIJRRqRbCEY0mmeFn4Wg8FKsHtEH8r389Fz38r/o+kgXLg==", + "version": "2.52.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.52.8.tgz", + "integrity": "sha512-IjAB0C6KK5/lvqzJWAzsvOik+jV5Bt907QdkQ/gDP4j+R9KYNI1tjqdxiPitGPVrWC21Mf/ucXgowUjN/VemaQ==", "requires": { "fsevents": "~2.3.2" } diff --git a/web/package.json b/web/package.json index 8d78f4ec8..2f620834f 100644 --- a/web/package.json +++ b/web/package.json @@ -7,7 +7,7 @@ "extract": "lingui extract", "build": "lingui compile && rollup -c ./rollup.config.js", "watch": "lingui compile && rollup -c -w", - "lint": "eslint . --max-warnings 0", + "lint": "eslint . --max-warnings 0 --fix", "lit-analyse": "lit-analyzer src" }, "lingui": { @@ -55,11 +55,11 @@ "@rollup/plugin-typescript": "^8.2.1", "@sentry/browser": "^6.8.0", "@sentry/tracing": "^6.8.0", - "@types/chart.js": "^2.9.33", - "@types/codemirror": "5.60.1", - "@types/grecaptcha": "^3.0.2", - "@typescript-eslint/eslint-plugin": "^4.28.1", - "@typescript-eslint/parser": "^4.28.1", + "@types/chart.js": "^2.9.34", + "@types/codemirror": "5.60.2", + "@types/grecaptcha": "^3.0.3", + "@typescript-eslint/eslint-plugin": "^4.28.2", + "@typescript-eslint/parser": "^4.28.2", "@webcomponents/webcomponentsjs": "^2.5.0", "authentik-api": "file:api", "babel-plugin-macros": "^3.1.0", @@ -77,7 +77,7 @@ "lit-html": "^1.4.1", "moment": "^2.29.1", "rapidoc": "^9.0.0", - "rollup": "^2.52.7", + "rollup": "^2.52.8", "rollup-plugin-commonjs": "^10.1.0", "rollup-plugin-copy": "^3.4.0", "rollup-plugin-cssimport": "^1.0.2", diff --git a/web/src/api/Config.ts b/web/src/api/Config.ts index 530d0f5fd..6d4d9c6a4 100644 --- a/web/src/api/Config.ts +++ b/web/src/api/Config.ts @@ -10,7 +10,8 @@ export class LoggingMiddleware implements Middleware { let msg = `authentik/api[${tenant.matchedDomain}]: `; msg += `${context.response.status} ${context.init.method} ${context.url}`; if (context.response.status >= 400) { - context.response.text().then(t => { + const resClone = context.response.clone(); + resClone.text().then(t => { msg += ` => ${t}`; console.debug(msg); }); diff --git a/web/src/api/Sentry.ts b/web/src/api/Sentry.ts index 008069359..6e939f79f 100644 --- a/web/src/api/Sentry.ts +++ b/web/src/api/Sentry.ts @@ -37,7 +37,9 @@ export function configureSentry(canDoPpi: boolean = false): Promise { if (response.status < 500) { return null; } - const body = await response.json(); + // Need to clone the response, otherwise the .text() and .json() can't be re-used + const resCopy = response.clone(); + const body = await resCopy.json(); event.message = `${response.status} ${response.url}: ${JSON.stringify(body)}` } if (event.exception) { diff --git a/web/src/assets/images/flow_background.jpg b/web/src/assets/images/flow_background.jpg index fa38f931b..953ce4f78 100644 Binary files a/web/src/assets/images/flow_background.jpg and b/web/src/assets/images/flow_background.jpg differ diff --git a/web/src/flows/FlowExecutor.ts b/web/src/flows/FlowExecutor.ts index 3a7b6e4ad..a31202f0f 100644 --- a/web/src/flows/FlowExecutor.ts +++ b/web/src/flows/FlowExecutor.ts @@ -278,7 +278,7 @@ export class FlowExecutor extends LitElement implements StageHost {
  • ${t`Powered by authentik`}
  • ` : html``} ${this.challenge?.flowInfo?.background?.startsWith("/static") ? html` -
  • ${t`Background image`}
  • +
  • ${t`Background image`}
  • ` : html``} diff --git a/web/src/locales/en.po b/web/src/locales/en.po index ecd51bc6c..74e976223 100644 --- a/web/src/locales/en.po +++ b/web/src/locales/en.po @@ -1832,6 +1832,10 @@ msgstr "If enabled, use the local connection. Required Docker socket/Kubernetes msgid "If left empty, authentik will try to extract the launch URL based on the selected provider." msgstr "If left empty, authentik will try to extract the launch URL based on the selected provider." +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +msgid "If no explicit redirect URIs are specified, any redirect URI is allowed." +msgstr "If no explicit redirect URIs are specified, any redirect URI is allowed." + #: src/pages/tenants/TenantForm.ts msgid "If set, users are able to unenroll themselves using this flow. If no flow is set, option is not shown." msgstr "If set, users are able to unenroll themselves using this flow. If no flow is set, option is not shown." diff --git a/web/src/locales/pseudo-LOCALE.po b/web/src/locales/pseudo-LOCALE.po index 2659bbc15..f49c3907b 100644 --- a/web/src/locales/pseudo-LOCALE.po +++ b/web/src/locales/pseudo-LOCALE.po @@ -13,4614 +13,4618 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: -#: -#: -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/stages/user_login/UserLoginStageForm.ts msgid "(Format: hours=-1;minutes=-2;seconds=-3)." msgstr "" -#: +#: src/pages/policies/BoundPoliciesList.ts msgid "-" msgstr "" -#: +#: src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts msgid "6 digits, widely compatible" msgstr "" -#: +#: src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts msgid "8 digits, not compatible with apps like Google Authenticator" msgstr "" -#: +#: src/interfaces/AdminInterface.ts msgid "A newer version of the frontend is available." msgstr "" -#: +#: src/pages/policies/dummy/DummyPolicyForm.ts msgid "A policy used for testing. Always returns the same result as specified below after waiting a random duration." msgstr "" -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/providers/saml/SAMLProviderViewPage.ts msgid "ACS URL" msgstr "" -#: -#: +#: src/pages/applications/ApplicationForm.ts +#: src/pages/flows/FlowForm.ts msgid "ALL, all policies must match to grant access." msgstr "" -#: +#: src/pages/flows/StageBindingForm.ts msgid "ALL, all policies must match to include this stage access." msgstr "" -#: -#: +#: src/pages/applications/ApplicationForm.ts +#: src/pages/flows/FlowForm.ts msgid "ANY, any policy must match to grant access." msgstr "" -#: +#: src/pages/flows/StageBindingForm.ts msgid "ANY, any policy must match to include this stage access." msgstr "" -#: +#: src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts msgid "API Hostname" msgstr "" -#: +#: src/elements/notifications/APIDrawer.ts msgid "API Requests" msgstr "" -#: +#: src/elements/messages/Middleware.ts msgid "API request failed" msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceViewPage.ts msgid "Access Key" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Access code validity" msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts msgid "Access token URL" msgstr "" -#: -#: -#: -#: +#: src/elements/events/ObjectChangelog.ts +#: src/elements/events/UserEvents.ts +#: src/pages/events/EventListPage.ts +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts msgid "Action" msgstr "" -#: -#: -#: +#: src/pages/groups/MemberSelectModal.ts +#: src/pages/users/UserListPage.ts +#: src/pages/users/UserViewPage.ts msgid "Active" msgstr "" -#: +#: src/pages/groups/MemberSelectModal.ts msgid "Add" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Addition Group DN" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Addition User DN" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Additional group DN, prepended to the Base DN." msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Additional user DN, prepended to the Base DN." msgstr "" -#: -#: -#: -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/proxy/ProxyProviderForm.ts +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Advanced protocol settings" msgstr "" -#: -#: +#: src/pages/policies/password/PasswordPolicyForm.ts +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Advanced settings" msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "Affected model:" msgstr "" -#: +#: src/pages/events/RuleForm.ts msgid "Alert" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Algorithm used to sign the JWT Tokens." msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Allow IDP-initiated logins" msgstr "" -#: +#: src/pages/sources/plex/PlexSourceForm.ts msgid "Allow friends to authenticate via Plex, even if you don't share any servers" msgstr "" -#: +#: src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts msgid "Allow up to N occurrences in the HIBP database." msgstr "" -#: +#: src/pages/policies/PolicyListPage.ts msgid "Allow users to use Applications based on properties, enforce Password Criteria and selectively apply Stages." msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderViewPage.ts msgid "Allowed Redirect URIs" msgstr "" -#: +#: src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts msgid "Allowed count" msgstr "" -#: +#: src/pages/sources/plex/PlexSourceForm.ts msgid "Allowed servers" msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Allows authentication flows initiated by the IdP. This can be a security risk, as no validation of the request ID is done." msgstr "" -#: +#: src/pages/policies/reputation/ReputationPolicyForm.ts msgid "Allows/denys requests based on the users and/or the IPs reputation." msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Also known as Entity ID. Defaults the Metadata URL." msgstr "" -#: +#: src/flows/stages/authenticator_duo/AuthenticatorDuoStage.ts msgid "Alternatively, if your current device has Duo installed, click on this link:" msgstr "" -#: +#: src/pages/stages/consent/ConsentStageForm.ts msgid "Always require consent" msgstr "" -#: -#: +#: src/pages/events/EventInfo.ts +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts msgid "App" msgstr "" -#: -#: -#: -#: +#: src/elements/user/UserConsentList.ts +#: src/pages/admin-overview/TopApplicationsTable.ts +#: src/pages/applications/ApplicationListPage.ts +#: src/pages/providers/ProviderListPage.ts msgid "Application" msgstr "" -#: +#: src/pages/applications/ApplicationListPage.ts msgid "Application Icon" msgstr "" -#: +#: src/flows/stages/consent/ConsentStage.ts msgid "Application requires following permissions:" msgstr "" -#: +#: src/pages/applications/ApplicationForm.ts msgid "Application's display Name." msgstr "" -#: -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/LibraryPage.ts +#: src/pages/applications/ApplicationListPage.ts msgid "Applications" msgstr "" -#: +#: src/pages/admin-overview/AdminOverviewPage.ts msgid "Apps with most usage" msgstr "" -#: +#: src/pages/flows/FlowListPage.ts msgid "" "Are you sure you want to clear the flow cache?\n" "This will cause all flows to be re-evaluated on their next usage." msgstr "" -#: +#: src/pages/policies/PolicyListPage.ts msgid "" "Are you sure you want to clear the policy cache?\n" "This will cause all policies to be re-evaluated on their next usage." msgstr "" -#: +#: src/elements/forms/DeleteForm.ts msgid "Are you sure you want to delete {0} {objName} ?" msgstr "" -#: +#: src/pages/users/UserActiveForm.ts msgid "Are you sure you want to update {0} \"{1}\"?" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Assertion not valid on or after current time + this value (Format: hours=1;minutes=2;seconds=3)." msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Assertion valid not before" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Assertion valid not on or after" msgstr "" -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts msgid "Assertions is empty" msgstr "" -#: -#: -#: -#: -#: +#: src/pages/providers/ProviderListPage.ts +#: src/pages/providers/ldap/LDAPProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/proxy/ProxyProviderViewPage.ts +#: src/pages/providers/saml/SAMLProviderViewPage.ts msgid "Assigned to application" msgstr "" -#: +#: src/pages/policies/PolicyListPage.ts msgid "Assigned to {0} objects." msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "Attempted to log in as {0}" msgstr "" -#: +#: src/pages/property-mappings/PropertyMappingSAMLForm.ts msgid "Attribute name used for SAML Assertions. Can be a URN OID, a schema reference, or a any other string. If this property mapping is used for NameID Property, this field is discarded." msgstr "" -#: -#: -#: +#: src/pages/groups/GroupForm.ts +#: src/pages/stages/invitation/InvitationForm.ts +#: src/pages/users/UserForm.ts msgid "Attributes" msgstr "" -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/providers/saml/SAMLProviderViewPage.ts msgid "Audience" msgstr "" -#: +#: src/flows/sources/plex/PlexLoginInit.ts msgid "Authenticating with Plex..." msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Authentication" msgstr "" -#: -#: -#: -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts +#: src/pages/tenants/TenantForm.ts msgid "Authentication flow" msgstr "" -#: -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts +#: src/pages/user-settings/settings/UserSettingsAuthenticatorWebAuthn.ts msgid "Authenticator" msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Authorization" msgstr "" -#: +#: src/elements/oauth/UserCodeList.ts msgid "Authorization Code" msgstr "" -#: -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/oauth/OAuthSourceViewPage.ts msgid "Authorization URL" msgstr "" -#: -#: -#: -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/proxy/ProxyProviderForm.ts +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/providers/saml/SAMLProviderImportForm.ts msgid "Authorization flow" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts msgid "Authorize URL" msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "Authorized application:" msgstr "" -#: +#: src/pages/stages/password/PasswordStageForm.ts msgid "Backends" msgstr "" -#: -#: +#: src/pages/flows/FlowForm.ts +#: src/pages/flows/FlowForm.ts msgid "Background" msgstr "" -#: +#: src/flows/FlowExecutor.ts msgid "Background image" msgstr "" -#: -#: -#: +#: src/pages/flows/FlowForm.ts +#: src/pages/flows/FlowForm.ts +#: src/pages/flows/FlowImportForm.ts msgid "Background shown during execution." msgstr "" -#: +#: src/pages/admin-overview/cards/BackupStatusCard.ts msgid "Backup finished with errors." msgstr "" -#: +#: src/pages/admin-overview/cards/BackupStatusCard.ts msgid "Backup finished with warnings/backup not supported." msgstr "" -#: +#: src/pages/admin-overview/AdminOverviewPage.ts msgid "Backup status" msgstr "" -#: -#: -#: -#: +#: src/pages/providers/ldap/LDAPProviderForm.ts +#: src/pages/providers/ldap/LDAPProviderViewPage.ts +#: src/pages/sources/ldap/LDAPSourceForm.ts +#: src/pages/sources/ldap/LDAPSourceViewPage.ts msgid "Base DN" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Based on the Hashed User ID" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Based on the User's Email. This is recommended over the UPN method." msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Based on the User's UPN, only works if user has a 'upn' attribute set. Use this method only if you have different UPN and Mail domains." msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Based on the username" msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderViewPage.ts msgid "Basic-Auth" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Bind CN" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Bind Password" msgstr "" -#: +#: src/pages/providers/ldap/LDAPProviderForm.ts msgid "Bind flow" msgstr "" -#: -#: +#: src/pages/flows/BoundStagesList.ts +#: src/pages/flows/BoundStagesList.ts msgid "Bind stage" msgstr "" -#: -#: +#: src/pages/events/EventInfo.ts +#: src/pages/events/EventInfo.ts msgid "Binding" msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Binding Type" msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Branding settings" msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Branding shown in page title and several other places." msgstr "" -#: +#: src/elements/user/SessionList.ts msgid "Browser" msgstr "" -#: +#: src/pages/admin-overview/cards/VersionStatusCard.ts msgid "Build hash: {0}" msgstr "" -#: -#: +#: src/pages/sources/SourcesListPage.ts +#: src/pages/sources/SourcesListPage.ts msgid "Built-in" msgstr "" -#: +#: src/pages/outposts/ServiceConnectionDockerForm.ts msgid "CA which the endpoint's Certificate is verified against. Can be left empty for no validation." msgstr "" -#: +#: src/pages/admin-overview/charts/FlowStatusChart.ts msgid "Cached flows" msgstr "" -#: +#: src/pages/admin-overview/charts/PolicyStatusChart.ts msgid "Cached policies" msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceViewPage.ts msgid "Callback URL" msgstr "" -#: +#: src/pages/outposts/ServiceConnectionDockerForm.ts msgid "Can be in the format of 'unix://' when connecting to a local docker daemon, or 'https://:2376' when connecting to a remote system." msgstr "" -#: -#: -#: -#: -#: +#: src/elements/forms/ConfirmationForm.ts +#: src/elements/forms/DeleteForm.ts +#: src/elements/forms/ModalForm.ts +#: src/pages/groups/MemberSelectModal.ts +#: src/pages/users/UserActiveForm.ts msgid "Cancel" msgstr "" -#: +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "Case insensitive matching" msgstr "" -#: -#: +#: src/pages/crypto/CertificateKeyPairForm.ts +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Certificate" msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts msgid "Certificate Fingerprint (SHA1)" msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts msgid "Certificate Fingerprint (SHA256)" msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts msgid "Certificate Subjet" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Certificate used to sign outgoing Responses going to the Service Provider." msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts msgid "Certificate-Key Pair" msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts msgid "Certificate-Key Pairs" msgstr "" -#: +#: src/pages/outposts/ServiceConnectionDockerForm.ts msgid "Certificate/Key used for authentication. Can be left empty for no authentication." msgstr "" -#: +#: src/interfaces/AdminInterface.ts msgid "Certificates" msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsPassword.ts msgid "Change password" msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsPassword.ts msgid "Change your password" msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/pages/applications/ApplicationViewPage.ts +#: src/pages/flows/FlowViewPage.ts +#: src/pages/providers/ldap/LDAPProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/proxy/ProxyProviderViewPage.ts +#: src/pages/providers/saml/SAMLProviderViewPage.ts +#: src/pages/sources/ldap/LDAPSourceViewPage.ts +#: src/pages/sources/oauth/OAuthSourceViewPage.ts +#: src/pages/sources/plex/PlexSourceViewPage.ts +#: src/pages/sources/saml/SAMLSourceViewPage.ts +#: src/pages/users/UserViewPage.ts msgid "Changelog" msgstr "" -#: +#: src/pages/policies/password/PasswordPolicyForm.ts msgid "Characters which are considered as symbols." msgstr "" -#: +#: src/pages/applications/ApplicationViewPage.ts msgid "Check" msgstr "" -#: +#: src/pages/applications/ApplicationViewPage.ts msgid "Check Application access" msgstr "" -#: +#: src/pages/policies/reputation/ReputationPolicyForm.ts msgid "Check IP" msgstr "" -#: +#: src/pages/policies/reputation/ReputationPolicyForm.ts msgid "Check Username" msgstr "" -#: +#: src/pages/applications/ApplicationViewPage.ts msgid "Check access" msgstr "" -#: +#: src/flows/stages/authenticator_duo/AuthenticatorDuoStage.ts msgid "Check status" msgstr "" -#: +#: src/flows/stages/email/EmailStage.ts msgid "Check your Emails for a password reset link." msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Checkbox" msgstr "" -#: +#: src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts msgid "" "Checks a value from the policy request against the Have I been Pwned API, and denys the request based upon that.\n" "Note that only a part of the hash of the password is sent, the full comparison is done clientside." msgstr "" -#: +#: src/pages/policies/expiry/ExpiryPolicyForm.ts msgid "Checks if the request's user's password has been changed in the last x days, and denys based on settings." msgstr "" -#: +#: src/pages/policies/password/PasswordPolicyForm.ts msgid "Checks the value from the policy request against several rules, mostly used to ensure password strength." msgstr "" -#: +#: src/pages/flows/FlowListPage.ts msgid "Clear Flow cache" msgstr "" -#: +#: src/pages/policies/PolicyListPage.ts msgid "Clear Policy cache" msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Clear background image" msgstr "" -#: -#: -#: -#: +#: src/pages/flows/FlowListPage.ts +#: src/pages/flows/FlowListPage.ts +#: src/pages/policies/PolicyListPage.ts +#: src/pages/policies/PolicyListPage.ts msgid "Clear cache" msgstr "" -#: +#: src/pages/applications/ApplicationForm.ts msgid "Clear icon" msgstr "" -#: +#: src/elements/forms/HorizontalFormElement.ts msgid "Click to change value" msgstr "" -#: +#: src/pages/outposts/OutpostDeploymentModal.ts msgid "Click to copy token" msgstr "" -#: -#: -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/sources/plex/PlexSourceForm.ts msgid "Client ID" msgstr "" -#: -#: -#: -#: +#: src/elements/events/ObjectChangelog.ts +#: src/elements/events/UserEvents.ts +#: src/pages/events/EventListPage.ts +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts msgid "Client IP" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Client Secret" msgstr "" -#: -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts msgid "Client type" msgstr "" -#: +#: src/pages/outposts/OutpostDeploymentModal.ts msgid "Close" msgstr "" -#: -#: +#: src/flows/stages/authenticator_totp/AuthenticatorTOTPStage.ts +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageCode.ts msgid "Code" msgstr "" -#: +#: src/pages/crypto/CertificateGenerateForm.ts msgid "Common Name" msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Compatibility mode" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Confidential" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Confidential clients are capable of maintaining the confidentiality of their credentials. Public clients are incapable." msgstr "" -#: +#: src/pages/outposts/OutpostForm.ts msgid "Configuration" msgstr "" -#: -#: -#: -#: +#: src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts +#: src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts +#: src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts +#: src/pages/stages/password/PasswordStageForm.ts msgid "Configuration flow" msgstr "" -#: +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts msgid "Configuration stage" msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorWebAuthn.ts msgid "Configure WebAuthn" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Configure how long access codes are valid for." msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Configure how long refresh tokens and their id_tokens are valid for." msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Configure how the NameID value will be created. When left empty, the NameIDPolicy of the incoming request will be respected." msgstr "" -#: +#: src/pages/flows/StageBindingForm.ts msgid "Configure how the flow executor should handle an invalid response to a challenge." msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Configure how the issuer field of the ID Token should be filled." msgstr "" -#: +#: src/pages/user-settings/UserSettingsPage.ts msgid "Configure settings relevant to your user profile." msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Configure the maximum allowed time drift for an asseration." msgstr "" -#: +#: src/pages/tenants/TenantListPage.ts msgid "Configure visual settings and defaults for different domains." msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Configure what data should be used as unique User Identifier. For most cases, the default should be fine." msgstr "" -#: +#: src/pages/user-settings/settings/SourceSettingsOAuth.ts msgid "Connect" msgstr "" -#: +#: src/pages/user-settings/settings/SourceSettingsOAuth.ts msgid "Connected." msgstr "" -#: +#: src/elements/messages/MessageContainer.ts msgid "Connection error, reconnecting..." msgstr "" -#: -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts +#: src/pages/stages/email/EmailStageForm.ts msgid "Connection settings" msgstr "" -#: +#: src/elements/user/UserConsentList.ts msgid "Consent" msgstr "" -#: +#: src/pages/stages/consent/ConsentStageForm.ts msgid "Consent expires in" msgstr "" -#: +#: src/pages/stages/consent/ConsentStageForm.ts msgid "Consent expires." msgstr "" -#: +#: src/pages/stages/consent/ConsentStageForm.ts msgid "Consent given last indefinitely" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Consider Objects matching this filter to be Groups." msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Consider Objects matching this filter to be Users." msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts msgid "Consumer key" msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts msgid "Consumer secret" msgstr "" -#: -#: -#: -#: -#: +#: src/pages/events/EventInfo.ts +#: src/pages/events/EventInfo.ts +#: src/pages/events/EventInfo.ts +#: src/pages/policies/PolicyTestForm.ts +#: src/pages/property-mappings/PropertyMappingTestForm.ts msgid "Context" msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/flows/stages/authenticator_static/AuthenticatorStaticStage.ts +#: src/flows/stages/authenticator_totp/AuthenticatorTOTPStage.ts +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageCode.ts +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageDuo.ts +#: src/flows/stages/autosubmit/AutosubmitStage.ts +#: src/flows/stages/consent/ConsentStage.ts +#: src/flows/stages/dummy/DummyStage.ts +#: src/flows/stages/password/PasswordStage.ts +#: src/flows/stages/prompt/PromptStage.ts +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts msgid "Continue" msgstr "" -#: +#: src/pages/stages/invitation/InvitationStageForm.ts msgid "Continue flow without invitation" msgstr "" -#: +#: src/pages/property-mappings/PropertyMappingListPage.ts msgid "Control how authentik exposes and interprets information." msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Cookie domain" msgstr "" -#: +#: src/flows/stages/authenticator_totp/AuthenticatorTOTPStage.ts msgid "Copy" msgstr "" -#: -#: +#: src/pages/tokens/TokenListPage.ts +#: src/pages/user-settings/tokens/UserTokenList.ts msgid "Copy Key" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderViewPage.ts msgid "Copy download URL" msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/pages/applications/ApplicationForm.ts +#: src/pages/applications/ApplicationListPage.ts +#: src/pages/applications/ApplicationListPage.ts +#: src/pages/crypto/CertificateKeyPairListPage.ts +#: src/pages/crypto/CertificateKeyPairListPage.ts +#: src/pages/events/RuleListPage.ts +#: src/pages/events/RuleListPage.ts +#: src/pages/events/TransportListPage.ts +#: src/pages/events/TransportListPage.ts +#: src/pages/flows/BoundStagesList.ts +#: src/pages/flows/BoundStagesList.ts +#: src/pages/flows/BoundStagesList.ts +#: src/pages/flows/FlowListPage.ts +#: src/pages/flows/FlowListPage.ts +#: src/pages/groups/GroupListPage.ts +#: src/pages/groups/GroupListPage.ts +#: src/pages/outposts/OutpostListPage.ts +#: src/pages/outposts/OutpostListPage.ts +#: src/pages/outposts/ServiceConnectionListPage.ts +#: src/pages/outposts/ServiceConnectionListPage.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/PolicyListPage.ts +#: src/pages/policies/PolicyListPage.ts +#: src/pages/property-mappings/PropertyMappingListPage.ts +#: src/pages/property-mappings/PropertyMappingListPage.ts +#: src/pages/providers/ProviderListPage.ts +#: src/pages/providers/ProviderListPage.ts +#: src/pages/providers/RelatedApplicationButton.ts +#: src/pages/providers/RelatedApplicationButton.ts +#: src/pages/sources/SourcesListPage.ts +#: src/pages/sources/SourcesListPage.ts +#: src/pages/stages/StageListPage.ts +#: src/pages/stages/StageListPage.ts +#: src/pages/stages/invitation/InvitationListPage.ts +#: src/pages/stages/invitation/InvitationListPage.ts +#: src/pages/stages/prompt/PromptListPage.ts +#: src/pages/stages/prompt/PromptListPage.ts +#: src/pages/stages/prompt/PromptStageForm.ts +#: src/pages/stages/prompt/PromptStageForm.ts +#: src/pages/tenants/TenantListPage.ts +#: src/pages/tenants/TenantListPage.ts +#: src/pages/user-settings/tokens/UserTokenList.ts +#: src/pages/user-settings/tokens/UserTokenList.ts +#: src/pages/users/UserListPage.ts +#: src/pages/users/UserListPage.ts msgid "Create" msgstr "" -#: -#: +#: src/pages/applications/ApplicationListPage.ts +#: src/pages/providers/RelatedApplicationButton.ts msgid "Create Application" msgstr "" -#: -#: -#: -#: +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/BoundPoliciesList.ts msgid "Create Binding" msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts msgid "Create Certificate-Key Pair" msgstr "" -#: +#: src/pages/flows/FlowListPage.ts msgid "Create Flow" msgstr "" -#: +#: src/pages/groups/GroupListPage.ts msgid "Create Group" msgstr "" -#: +#: src/pages/stages/invitation/InvitationListPage.ts msgid "Create Invitation" msgstr "" -#: +#: src/pages/stages/invitation/InvitationListPage.ts msgid "Create Invitation Links to enroll Users, and optionally force specific attributes of their account." msgstr "" -#: +#: src/pages/events/RuleListPage.ts msgid "Create Notification Rule" msgstr "" -#: +#: src/pages/events/TransportListPage.ts msgid "Create Notification Transport" msgstr "" -#: +#: src/pages/outposts/OutpostListPage.ts msgid "Create Outpost" msgstr "" -#: +#: src/pages/policies/BoundPoliciesList.ts msgid "Create Policy" msgstr "" -#: -#: +#: src/pages/stages/prompt/PromptListPage.ts +#: src/pages/stages/prompt/PromptStageForm.ts msgid "Create Prompt" msgstr "" -#: +#: src/pages/flows/BoundStagesList.ts msgid "Create Stage" msgstr "" -#: -#: +#: src/pages/flows/BoundStagesList.ts +#: src/pages/flows/BoundStagesList.ts msgid "Create Stage binding" msgstr "" -#: +#: src/pages/tenants/TenantListPage.ts msgid "Create Tenant" msgstr "" -#: +#: src/pages/user-settings/tokens/UserTokenList.ts msgid "Create Token" msgstr "" -#: +#: src/pages/users/UserListPage.ts msgid "Create User" msgstr "" -#: +#: src/pages/applications/ApplicationForm.ts msgid "Create provider" msgstr "" -#: +#: src/pages/stages/user_write/UserWriteStageForm.ts msgid "Create users as inactive" msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/pages/applications/ApplicationForm.ts +#: src/pages/flows/BoundStagesList.ts +#: src/pages/outposts/ServiceConnectionListPage.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/PolicyListPage.ts +#: src/pages/property-mappings/PropertyMappingListPage.ts +#: src/pages/providers/ProviderListPage.ts +#: src/pages/sources/SourcesListPage.ts +#: src/pages/stages/StageListPage.ts msgid "Create {0}" msgstr "" -#: +#: src/pages/stages/invitation/InvitationListPage.ts msgid "Created by" msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorWebAuthn.ts msgid "Created {0}" msgstr "" -#: -#: -#: +#: src/elements/events/ObjectChangelog.ts +#: src/elements/events/UserEvents.ts +#: src/pages/events/EventListPage.ts msgid "Creation Date" msgstr "" -#: -#: +#: src/pages/applications/ApplicationForm.ts +#: src/pages/flows/FlowForm.ts msgid "Currently set to:" msgstr "" -#: +#: src/interfaces/AdminInterface.ts msgid "Customisation" msgstr "" -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "DSA-SHA1" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Date" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Date Time" msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Decides what this Flow is used for. For example, the Authentication flow is redirect to when an un-authenticated user visits authentik." msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Default" msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Default flows" msgstr "" -#: +#: src/pages/tenants/TenantListPage.ts msgid "Default?" msgstr "" -#: +#: src/pages/events/TransportListPage.ts msgid "Define how notifications are sent to users, like Email or Webhook." msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/elements/forms/DeleteForm.ts +#: src/pages/applications/ApplicationListPage.ts +#: src/pages/crypto/CertificateKeyPairListPage.ts +#: src/pages/events/RuleListPage.ts +#: src/pages/events/TransportListPage.ts +#: src/pages/flows/FlowListPage.ts +#: src/pages/groups/GroupListPage.ts +#: src/pages/outposts/OutpostListPage.ts +#: src/pages/outposts/ServiceConnectionListPage.ts +#: src/pages/policies/PolicyListPage.ts +#: src/pages/policies/reputation/IPReputationListPage.ts +#: src/pages/policies/reputation/UserReputationListPage.ts +#: src/pages/property-mappings/PropertyMappingListPage.ts +#: src/pages/providers/ProviderListPage.ts +#: src/pages/sources/SourcesListPage.ts +#: src/pages/stages/StageListPage.ts +#: src/pages/stages/invitation/InvitationListPage.ts +#: src/pages/stages/prompt/PromptListPage.ts +#: src/pages/tenants/TenantListPage.ts +#: src/pages/tokens/TokenListPage.ts +#: src/pages/user-settings/settings/UserSettingsAuthenticatorWebAuthn.ts +#: src/pages/user-settings/tokens/UserTokenList.ts +#: src/pages/users/UserListPage.ts msgid "Delete" msgstr "" -#: +#: src/elements/oauth/UserCodeList.ts msgid "Delete Authorization Code" msgstr "" -#: -#: +#: src/pages/flows/BoundStagesList.ts +#: src/pages/policies/BoundPoliciesList.ts msgid "Delete Binding" msgstr "" -#: +#: src/elements/user/UserConsentList.ts msgid "Delete Consent" msgstr "" -#: +#: src/elements/oauth/UserRefreshList.ts msgid "Delete Refresh Code" msgstr "" -#: +#: src/elements/user/SessionList.ts msgid "Delete Session" msgstr "" -#: +#: src/pages/user-settings/UserDetailsPage.ts msgid "Delete account" msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Delete currently set background image." msgstr "" -#: +#: src/pages/applications/ApplicationForm.ts msgid "Delete currently set icon." msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Delete temporary users after" msgstr "" -#: +#: src/pages/stages/user_delete/UserDeleteStageForm.ts msgid "" "Delete the currently pending user. CAUTION, this stage does not ask for\n" "confirmation. Use a consent stage to ensure the user is aware of their actions." msgstr "" -#: +#: src/elements/forms/DeleteForm.ts msgid "Delete {0}" msgstr "" -#: +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts msgid "Deny the user access" msgstr "" -#: -#: -#: -#: +#: src/pages/applications/ApplicationForm.ts +#: src/pages/property-mappings/PropertyMappingScopeForm.ts +#: src/pages/system-tasks/SystemTaskListPage.ts +#: src/pages/user-settings/tokens/UserTokenForm.ts msgid "Description" msgstr "" -#: +#: src/pages/property-mappings/PropertyMappingScopeForm.ts msgid "Description shown to the user when consenting. If left empty, the user won't be informed." msgstr "" -#: +#: src/pages/users/UserForm.ts msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." msgstr "" -#: -#: +#: src/pages/flows/FlowForm.ts +#: src/pages/flows/FlowListPage.ts msgid "Designation" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Determines how authentik sends the response back to the Service Provider." msgstr "" -#: +#: src/pages/stages/user_login/UserLoginStageForm.ts msgid "Determines how long a session lasts. Default of 0 seconds means that the sessions lasts until the browser is closed." msgstr "" -#: +#: src/elements/user/SessionList.ts msgid "Device" msgstr "" -#: +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts msgid "Device classes" msgstr "" -#: +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts msgid "Device classes which can be used to authenticate." msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorWebAuthn.ts msgid "Device name" msgstr "" -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Digest algorithm" msgstr "" -#: +#: src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts msgid "Digits" msgstr "" -#: -#: +#: src/pages/users/UserListPage.ts +#: src/pages/users/UserListPage.ts msgid "Disable" msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorDuo.ts msgid "Disable Duo authenticator" msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorStatic.ts msgid "Disable Static Tokens" msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorTOTP.ts msgid "Disable Time-based OTP" msgstr "" -#: +#: src/pages/sources/SourcesListPage.ts msgid "Disabled" msgstr "" -#: +#: src/pages/user-settings/settings/SourceSettingsOAuth.ts msgid "Disconnect" msgstr "" -#: +#: src/pages/outposts/ServiceConnectionDockerForm.ts msgid "Docker URL" msgstr "" -#: -#: +#: src/pages/tenants/TenantForm.ts +#: src/pages/tenants/TenantListPage.ts msgid "Domain" msgstr "" -#: -#: -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts +#: src/pages/providers/saml/SAMLProviderViewPage.ts +#: src/pages/sources/saml/SAMLSourceViewPage.ts msgid "Download" msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts msgid "Download Certificate" msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts msgid "Download Private key" msgstr "" -#: +#: src/pages/stages/dummy/DummyStageForm.ts msgid "Dummy stage used for testing. Shows a simple continue button and always passes." msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorDuo.ts msgid "Duo" msgstr "" -#: +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts msgid "Duo Authenticators" msgstr "" -#: +#: src/flows/stages/authenticator_duo/AuthenticatorDuoStage.ts msgid "Duo activation" msgstr "" -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts msgid "Duo push-notifications" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Each provider has a different issuer, based on the application slug." msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/pages/applications/ApplicationListPage.ts +#: src/pages/applications/ApplicationViewPage.ts +#: src/pages/applications/ApplicationViewPage.ts +#: src/pages/crypto/CertificateKeyPairListPage.ts +#: src/pages/events/RuleListPage.ts +#: src/pages/events/TransportListPage.ts +#: src/pages/flows/FlowListPage.ts +#: src/pages/groups/GroupListPage.ts +#: src/pages/outposts/OutpostListPage.ts +#: src/pages/outposts/ServiceConnectionListPage.ts +#: src/pages/policies/PolicyListPage.ts +#: src/pages/property-mappings/PropertyMappingListPage.ts +#: src/pages/providers/ProviderListPage.ts +#: src/pages/providers/ldap/LDAPProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/proxy/ProxyProviderViewPage.ts +#: src/pages/providers/saml/SAMLProviderViewPage.ts +#: src/pages/sources/SourcesListPage.ts +#: src/pages/sources/ldap/LDAPSourceViewPage.ts +#: src/pages/sources/oauth/OAuthSourceViewPage.ts +#: src/pages/sources/plex/PlexSourceViewPage.ts +#: src/pages/sources/saml/SAMLSourceViewPage.ts +#: src/pages/stages/StageListPage.ts +#: src/pages/stages/prompt/PromptListPage.ts +#: src/pages/tenants/TenantListPage.ts +#: src/pages/user-settings/tokens/UserTokenList.ts +#: src/pages/users/UserListPage.ts +#: src/pages/users/UserViewPage.ts msgid "Edit" msgstr "" -#: -#: +#: src/pages/flows/BoundStagesList.ts +#: src/pages/policies/BoundPoliciesList.ts msgid "Edit Binding" msgstr "" -#: +#: src/pages/policies/BoundPoliciesList.ts msgid "Edit Group" msgstr "" -#: +#: src/pages/policies/BoundPoliciesList.ts msgid "Edit Policy" msgstr "" -#: +#: src/pages/flows/BoundStagesList.ts msgid "Edit Stage" msgstr "" -#: +#: src/pages/policies/BoundPoliciesList.ts msgid "Edit User" msgstr "" -#: +#: src/pages/LibraryPage.ts msgid "Either no applications are defined, or you don't have access to any." msgstr "" -#: -#: -#: -#: -#: -#: +#: src/flows/stages/identification/IdentificationStage.ts +#: src/pages/events/TransportForm.ts +#: src/pages/stages/identification/IdentificationStageForm.ts +#: src/pages/user-settings/UserDetailsPage.ts +#: src/pages/users/UserForm.ts +#: src/pages/users/UserViewPage.ts msgid "Email" msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Email address" msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "Email info:" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Email: Text field with Email type." msgstr "" -#: -#: +#: src/pages/users/UserListPage.ts +#: src/pages/users/UserListPage.ts msgid "Enable" msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorDuo.ts msgid "Enable Duo authenticator" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Enable StartTLS" msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorStatic.ts msgid "Enable Static Tokens" msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorTOTP.ts msgid "Enable TOTP" msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Enable compatibility mode, increases compatibility with password managers on mobile devices." msgstr "" -#: -#: -#: -#: -#: -#: +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/PolicyBindingForm.ts +#: src/pages/sources/ldap/LDAPSourceForm.ts +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Enabled" msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Enrollment" msgstr "" -#: -#: -#: -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "Enrollment flow" msgstr "" -#: +#: src/pages/system-tasks/SystemTaskListPage.ts msgid "Error" msgstr "" -#: +#: src/flows/stages/authenticator_webauthn/WebAuthnAuthenticatorRegisterStage.ts msgid "Error creating credential: {err}" msgstr "" -#: +#: src/pages/policies/password/PasswordPolicyForm.ts msgid "Error message" msgstr "" -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts msgid "Error when creating credential: {err}" msgstr "" -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts msgid "Error when validating assertion on server: {err}" msgstr "" -#: +#: src/pages/user-settings/UserSettingsPage.ts msgid "Error: unsupported source settings: {0}" msgstr "" -#: +#: src/pages/user-settings/UserSettingsPage.ts msgid "Error: unsupported stage settings: {0}" msgstr "" -#: +#: src/pages/flows/StageBindingForm.ts msgid "Evaluate on plan" msgstr "" -#: +#: src/pages/flows/StageBindingForm.ts msgid "Evaluate policies before the Stage is present to the user." msgstr "" -#: +#: src/pages/flows/StageBindingForm.ts msgid "Evaluate policies during the Flow planning process. Disable this for input-based policies. Should be used in conjunction with 'Re-evaluate policies', as with both options disabled, policies are **not** evaluated." msgstr "" -#: +#: src/pages/events/EventListPage.ts msgid "Event Log" msgstr "" -#: +#: src/pages/events/EventInfoPage.ts msgid "Event info" msgstr "" -#: +#: src/pages/events/EventInfoPage.ts msgid "Event {0}" msgstr "" -#: +#: src/interfaces/AdminInterface.ts msgid "Events" msgstr "" -#: -#: -#: +#: src/pages/events/EventInfo.ts +#: src/pages/events/EventInfo.ts +#: src/pages/events/EventInfo.ts msgid "Exception" msgstr "" -#: -#: +#: src/pages/flows/FlowListPage.ts +#: src/pages/flows/FlowViewPage.ts msgid "Execute" msgstr "" -#: +#: src/pages/flows/FlowViewPage.ts msgid "Execute flow" msgstr "" -#: +#: src/pages/policies/expression/ExpressionPolicyForm.ts msgid "Executes the python snippet to determine whether to allow or deny a request." msgstr "" -#: -#: -#: -#: -#: -#: -#: +#: src/pages/policies/dummy/DummyPolicyForm.ts +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts +#: src/pages/policies/expiry/ExpiryPolicyForm.ts +#: src/pages/policies/expression/ExpressionPolicyForm.ts +#: src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts +#: src/pages/policies/password/PasswordPolicyForm.ts +#: src/pages/policies/reputation/ReputationPolicyForm.ts msgid "Execution logging" msgstr "" -#: -#: -#: -#: -#: +#: src/elements/oauth/UserCodeList.ts +#: src/elements/oauth/UserRefreshList.ts +#: src/elements/user/SessionList.ts +#: src/elements/user/UserConsentList.ts +#: src/pages/stages/invitation/InvitationForm.ts msgid "Expires" msgstr "" -#: +#: src/pages/tokens/TokenListPage.ts msgid "Expires?" msgstr "" -#: -#: +#: src/pages/user-settings/tokens/UserTokenList.ts +#: src/pages/user-settings/tokens/UserTokenList.ts msgid "Expiring" msgstr "" -#: +#: src/pages/stages/invitation/InvitationListPage.ts msgid "Expiry" msgstr "" -#: -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts +#: src/pages/tokens/TokenListPage.ts msgid "Expiry date" msgstr "" -#: +#: src/pages/users/UserViewPage.ts msgid "Explicit Consent" msgstr "" -#: -#: +#: src/pages/flows/FlowListPage.ts +#: src/pages/flows/FlowViewPage.ts msgid "Export" msgstr "" -#: +#: src/pages/flows/FlowViewPage.ts msgid "Export flow" msgstr "" -#: -#: -#: -#: -#: +#: src/pages/events/EventInfo.ts +#: src/pages/policies/expression/ExpressionPolicyForm.ts +#: src/pages/property-mappings/PropertyMappingLDAPForm.ts +#: src/pages/property-mappings/PropertyMappingSAMLForm.ts +#: src/pages/property-mappings/PropertyMappingScopeForm.ts msgid "Expression" msgstr "" -#: -#: -#: -#: +#: src/pages/policies/expression/ExpressionPolicyForm.ts +#: src/pages/property-mappings/PropertyMappingLDAPForm.ts +#: src/pages/property-mappings/PropertyMappingSAMLForm.ts +#: src/pages/property-mappings/PropertyMappingScopeForm.ts msgid "Expression using Python." msgstr "" -#: +#: src/pages/applications/ApplicationListPage.ts msgid "External Applications which use authentik as Identity-Provider, utilizing protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access." msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderViewPage.ts msgid "External Host" msgstr "" -#: -#: -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts +#: src/pages/providers/proxy/ProxyProviderForm.ts +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "External host" msgstr "" -#: +#: src/pages/stages/password/PasswordStageForm.ts msgid "Failed attempts before cancel" msgstr "" -#: +#: src/pages/admin-overview/charts/LDAPSyncStatusChart.ts msgid "Failed sources" msgstr "" -#: +#: src/pages/flows/FlowListPage.ts msgid "Failed to delete flow cache" msgstr "" -#: +#: src/pages/policies/PolicyListPage.ts msgid "Failed to delete policy cache" msgstr "" -#: +#: src/elements/forms/DeleteForm.ts msgid "Failed to delete {0}: {1}" msgstr "" -#: +#: src/pages/users/UserActiveForm.ts msgid "Failed to update {0}: {1}" msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Favicon" msgstr "" -#: +#: src/pages/stages/prompt/PromptListPage.ts msgid "Field" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Field Key" msgstr "" -#: -#: +#: src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts +#: src/pages/policies/password/PasswordPolicyForm.ts msgid "Field key to check, field keys defined in Prompt stages are available." msgstr "" -#: +#: src/pages/property-mappings/PropertyMappingLDAPForm.ts msgid "Field of the user object this value is written to." msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Field which contains a unique Identifier." msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Field which contains members of a group." msgstr "" -#: +#: src/pages/stages/prompt/PromptStageForm.ts msgid "Fields" msgstr "" -#: +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "Fields a user can identify themselves with. If no fields are selected, the user will only be able to use sources." msgstr "" -#: -#: +#: src/pages/flows/FlowImportForm.ts +#: src/pages/flows/FlowListPage.ts msgid "Flow" msgstr "" -#: +#: src/pages/flows/FlowViewPage.ts msgid "Flow Overview" msgstr "" -#: -#: -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Flow settings" msgstr "" -#: -#: -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Flow to use when authenticating existing users." msgstr "" -#: -#: -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Flow to use when enrolling new users." msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Flow used before authentication." msgstr "" -#: +#: src/pages/stages/password/PasswordStageForm.ts msgid "Flow used by an authenticated user to configure their password. If empty, user will not be able to configure change their password." msgstr "" -#: -#: -#: +#: src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts +#: src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts +#: src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts msgid "Flow used by an authenticated user to configure this Stage. If empty, user will not be able to configure this stage." msgstr "" -#: +#: src/pages/providers/ldap/LDAPProviderForm.ts msgid "Flow used for users to authenticate. Currently only identification and password stages are supported." msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Flow used to authenticate users. If left empty, the first applicable flow sorted by the slug is used." msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Flow used to logout. If left empty, the first applicable flow sorted by the slug is used." msgstr "" -#: -#: -#: -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/proxy/ProxyProviderForm.ts +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/providers/saml/SAMLProviderImportForm.ts msgid "Flow used when authorizing this provider." msgstr "" -#: -#: -#: -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/interfaces/AdminInterface.ts +#: src/pages/admin-overview/AdminOverviewPage.ts +#: src/pages/flows/FlowListPage.ts +#: src/pages/stages/StageListPage.ts msgid "Flows" msgstr "" -#: +#: src/pages/flows/FlowListPage.ts msgid "Flows describe a chain of Stages to authenticate, enroll or recover a user. Stages are chosen based on policies applied to them." msgstr "" -#: +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts msgid "Force the user to configure an authenticator" msgstr "" -#: +#: src/flows/stages/password/PasswordStage.ts msgid "Forgot password?" msgstr "" -#: +#: src/flows/stages/identification/IdentificationStage.ts msgid "Forgot username or password?" msgstr "" -#: +#: src/elements/forms/ModalForm.ts msgid "Form didn't return a promise for submitting" msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Forward auth (domain level)" msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Forward auth (single application)" msgstr "" -#: +#: src/pages/property-mappings/PropertyMappingSAMLForm.ts msgid "Friendly Name" msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "From" msgstr "" -#: +#: src/pages/stages/email/EmailStageForm.ts msgid "From address" msgstr "" -#: +#: src/pages/admin-overview/AdminOverviewPage.ts msgid "General system status" msgstr "" -#: -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts +#: src/pages/crypto/CertificateKeyPairListPage.ts msgid "Generate" msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts msgid "Generate Certificate-Key Pair" msgstr "" -#: +#: src/elements/table/TablePagination.ts msgid "Go to next page" msgstr "" -#: +#: src/elements/table/TablePagination.ts msgid "Go to previous page" msgstr "" -#: -#: -#: -#: -#: +#: src/pages/events/RuleForm.ts +#: src/pages/groups/GroupListPage.ts +#: src/pages/policies/PolicyBindingForm.ts +#: src/pages/policies/PolicyBindingForm.ts +#: src/pages/providers/ldap/LDAPProviderForm.ts msgid "Group" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Group Property Mappings" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Group membership field" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Group object filter" msgstr "" -#: +#: src/pages/groups/GroupListPage.ts msgid "Group users together and give them permissions based on the membership." msgstr "" -#: +#: src/pages/policies/BoundPoliciesList.ts msgid "Group {0}" msgstr "" -#: -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/admin-overview/AdminOverviewPage.ts +#: src/pages/groups/GroupListPage.ts msgid "Groups" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "HS256 (Symmetric Encryption)" msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "HTTP-Basic Password Key" msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "HTTP-Basic Username Key" msgstr "" -#: +#: src/pages/outposts/OutpostListPage.ts msgid "Health and Version" msgstr "" -#: +#: src/pages/admin-overview/charts/OutpostStatusChart.ts msgid "Healthy outposts" msgstr "" -#: +#: src/pages/admin-overview/charts/LDAPSyncStatusChart.ts msgid "Healthy sources" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Hidden: Hidden field, can be used to insert data into form." msgstr "" -#: +#: src/pages/property-mappings/PropertyMappingListPage.ts msgid "Hide managed mappings" msgstr "" -#: +#: src/pages/users/UserListPage.ts msgid "Hide service-accounts" msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/pages/events/RuleForm.ts +#: src/pages/groups/GroupForm.ts +#: src/pages/outposts/OutpostForm.ts +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/ldap/LDAPSourceForm.ts +#: src/pages/sources/ldap/LDAPSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts +#: src/pages/stages/identification/IdentificationStageForm.ts +#: src/pages/stages/identification/IdentificationStageForm.ts +#: src/pages/stages/password/PasswordStageForm.ts +#: src/pages/stages/prompt/PromptStageForm.ts +#: src/pages/stages/prompt/PromptStageForm.ts msgid "Hold control/command to select multiple items." msgstr "" -#: +#: src/pages/stages/password/PasswordStageForm.ts msgid "How many attempts a user has before the flow is canceled. To lock the user out, use a reputation policy and a user_write stage." msgstr "" -#: +#: src/pages/stages/invitation/InvitationListPage.ts msgid "ID" msgstr "" -#: +#: src/elements/oauth/UserRefreshList.ts msgid "ID Token" msgstr "" -#: +#: src/pages/policies/reputation/IPReputationListPage.ts msgid "IP" msgstr "" -#: -#: +#: src/pages/policies/reputation/IPReputationListPage.ts +#: src/pages/policies/reputation/IPReputationListPage.ts msgid "IP Reputation" msgstr "" -#: -#: +#: src/pages/applications/ApplicationForm.ts +#: src/pages/applications/ApplicationForm.ts msgid "Icon" msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Icon shown in sidebar/header and flow executor." msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Icon shown in the browser tab." msgstr "" -#: -#: -#: -#: -#: +#: src/pages/flows/FlowListPage.ts +#: src/pages/system-tasks/SystemTaskListPage.ts +#: src/pages/tokens/TokenListPage.ts +#: src/pages/user-settings/tokens/UserTokenForm.ts +#: src/pages/user-settings/tokens/UserTokenList.ts msgid "Identifier" msgstr "" -#: +#: src/interfaces/AdminInterface.ts msgid "Identity & Cryptography" msgstr "" -#: -#: +#: src/pages/outposts/ServiceConnectionDockerForm.ts +#: src/pages/outposts/ServiceConnectionKubernetesForm.ts msgid "If enabled, use the local connection. Required Docker socket/Kubernetes Integration." msgstr "" -#: +#: src/pages/applications/ApplicationForm.ts msgid "If left empty, authentik will try to extract the launch URL based on the selected provider." msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +msgid "If no explicit redirect URIs are specified, any redirect URI is allowed." +msgstr "" + +#: src/pages/tenants/TenantForm.ts msgid "If set, users are able to unenroll themselves using this flow. If no flow is set, option is not shown." msgstr "" -#: +#: src/pages/stages/invitation/InvitationStageForm.ts msgid "If this flag is set, this Stage will jump to the next Stage when no Invitation is given. By default this Stage will cancel the Flow when no invitation is given." msgstr "" -#: +#: src/pages/outposts/OutpostDeploymentModal.ts msgid "If your authentik Instance is using a self-signed certificate, set this value." msgstr "" -#: +#: src/pages/users/UserListPage.ts msgid "Impersonate" msgstr "" -#: -#: +#: src/pages/flows/FlowListPage.ts +#: src/pages/flows/FlowListPage.ts msgid "Import" msgstr "" -#: +#: src/pages/flows/FlowListPage.ts msgid "Import Flow" msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts msgid "Import certificates of external providers or create certificates to sign requests with." msgstr "" -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts msgid "In case you can't access any other method." msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Include User claims from scopes in the id_token, for applications that don't access the userinfo endpoint." msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Include claims in id_token" msgstr "" -#: +#: src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts msgid "Integration key" msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderViewPage.ts msgid "Internal Host" msgstr "" -#: +#: src/pages/applications/ApplicationForm.ts msgid "Internal application name, used in URLs." msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Internal host" msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Internal host SSL Validation" msgstr "" -#: +#: src/pages/flows/StageBindingForm.ts msgid "Invalid response action" msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Invalidation" msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Invalidation flow" msgstr "" -#: +#: src/pages/stages/invitation/InvitationListPage.ts msgid "Invitation" msgstr "" -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/stages/invitation/InvitationListPage.ts msgid "Invitations" msgstr "" -#: +#: src/pages/users/UserForm.ts msgid "Is active" msgstr "" -#: +#: src/pages/groups/GroupForm.ts msgid "Is superuser" msgstr "" -#: -#: -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/providers/saml/SAMLProviderViewPage.ts +#: src/pages/sources/saml/SAMLSourceForm.ts +#: src/pages/sources/saml/SAMLSourceViewPage.ts msgid "Issuer" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Issuer mode" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "JWT Algorithm" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Key used to sign the tokens. Only required when JWT Algorithm is set to RS256." msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Keypair which is used to sign outgoing requests. Leave empty to disable signing." msgstr "" -#: +#: src/pages/outposts/ServiceConnectionKubernetesForm.ts msgid "Kubeconfig" msgstr "" -#: +#: src/pages/outposts/OutpostForm.ts msgid "LDAP (Technical preview)" msgstr "" -#: +#: src/pages/providers/ldap/LDAPProviderForm.ts msgid "LDAP DN under which bind requests and search requests can be made." msgstr "" -#: +#: src/pages/admin-overview/AdminOverviewPage.ts msgid "LDAP Sync status" msgstr "" -#: -#: +#: src/pages/stages/prompt/PromptForm.ts +#: src/pages/stages/prompt/PromptListPage.ts msgid "Label" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Label shown next to/above the prompt." msgstr "" -#: +#: src/elements/user/SessionList.ts msgid "Last IP" msgstr "" -#: -#: -#: +#: src/pages/groups/MemberSelectModal.ts +#: src/pages/users/UserListPage.ts +#: src/pages/users/UserViewPage.ts msgid "Last login" msgstr "" -#: +#: src/pages/system-tasks/SystemTaskListPage.ts msgid "Last run" msgstr "" -#: +#: src/pages/outposts/OutpostHealth.ts msgid "Last seen: {0}" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceViewPage.ts msgid "Last sync: {0}" msgstr "" -#: -#: +#: src/pages/applications/ApplicationViewPage.ts +#: src/pages/applications/ApplicationViewPage.ts msgid "Launch" msgstr "" -#: +#: src/pages/applications/ApplicationForm.ts msgid "Launch URL" msgstr "" -#: +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "Let the user identify themselves with their username or Email address." msgstr "" -#: +#: src/interfaces/AdminInterface.ts msgid "Library" msgstr "" -#: -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts msgid "Link to a user with identical email address. Can have security implications when a source doesn't validate email addresses" msgstr "" -#: -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts msgid "Link to a user with identical username address. Can have security implications when a username is used with another source." msgstr "" -#: -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts msgid "Link users on unique identifier" msgstr "" -#: +#: src/pages/sources/plex/PlexSourceForm.ts msgid "Load servers" msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/elements/table/Table.ts +#: src/flows/FlowExecutor.ts +#: src/flows/FlowExecutor.ts +#: src/flows/access_denied/FlowAccessDenied.ts +#: src/flows/stages/authenticator_duo/AuthenticatorDuoStage.ts +#: src/flows/stages/authenticator_static/AuthenticatorStaticStage.ts +#: src/flows/stages/authenticator_totp/AuthenticatorTOTPStage.ts +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageCode.ts +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageDuo.ts +#: src/flows/stages/autosubmit/AutosubmitStage.ts +#: src/flows/stages/captcha/CaptchaStage.ts +#: src/flows/stages/consent/ConsentStage.ts +#: src/flows/stages/dummy/DummyStage.ts +#: src/flows/stages/email/EmailStage.ts +#: src/flows/stages/identification/IdentificationStage.ts +#: src/flows/stages/password/PasswordStage.ts +#: src/flows/stages/prompt/PromptStage.ts +#: src/pages/applications/ApplicationViewPage.ts +#: src/pages/applications/ApplicationViewPage.ts +#: src/pages/user-settings/UserDetailsPage.ts +#: src/utils.ts msgid "Loading" msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/elements/Spinner.ts +#: src/pages/applications/ApplicationCheckAccessForm.ts +#: src/pages/applications/ApplicationForm.ts +#: src/pages/events/RuleForm.ts +#: src/pages/events/RuleForm.ts +#: src/pages/flows/StageBindingForm.ts +#: src/pages/flows/StageBindingForm.ts +#: src/pages/groups/GroupForm.ts +#: src/pages/groups/GroupForm.ts +#: src/pages/outposts/OutpostForm.ts +#: src/pages/outposts/OutpostForm.ts +#: src/pages/outposts/ServiceConnectionDockerForm.ts +#: src/pages/outposts/ServiceConnectionDockerForm.ts +#: src/pages/policies/PolicyBindingForm.ts +#: src/pages/policies/PolicyBindingForm.ts +#: src/pages/policies/PolicyBindingForm.ts +#: src/pages/policies/PolicyTestForm.ts +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts +#: src/pages/property-mappings/PropertyMappingTestForm.ts +#: src/pages/providers/ldap/LDAPProviderForm.ts +#: src/pages/providers/ldap/LDAPProviderForm.ts +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/proxy/ProxyProviderForm.ts +#: src/pages/providers/proxy/ProxyProviderForm.ts +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/providers/saml/SAMLProviderImportForm.ts +#: src/pages/sources/ldap/LDAPSourceForm.ts +#: src/pages/sources/ldap/LDAPSourceForm.ts +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts +#: src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts +#: src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts +#: src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts +#: src/pages/stages/email/EmailStageForm.ts +#: src/pages/stages/identification/IdentificationStageForm.ts +#: src/pages/stages/identification/IdentificationStageForm.ts +#: src/pages/stages/identification/IdentificationStageForm.ts +#: src/pages/stages/identification/IdentificationStageForm.ts +#: src/pages/stages/password/PasswordStageForm.ts +#: src/pages/stages/prompt/PromptStageForm.ts +#: src/pages/stages/prompt/PromptStageForm.ts +#: src/pages/tenants/TenantForm.ts +#: src/pages/tenants/TenantForm.ts +#: src/pages/tenants/TenantForm.ts +#: src/pages/tenants/TenantForm.ts msgid "Loading..." msgstr "" -#: -#: -#: +#: src/pages/outposts/ServiceConnectionDockerForm.ts +#: src/pages/outposts/ServiceConnectionKubernetesForm.ts +#: src/pages/outposts/ServiceConnectionListPage.ts msgid "Local" msgstr "" -#: +#: src/pages/stages/user_login/UserLoginStageForm.ts msgid "Log the currently pending user in." msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Login password is synced from LDAP into authentik automatically. Enable this option only to write password changes in authentik back to LDAP." msgstr "" -#: +#: src/flows/stages/identification/IdentificationStage.ts msgid "Login to continue to {0}." msgstr "" -#: +#: src/pages/admin-overview/TopApplicationsTable.ts msgid "Logins" msgstr "" -#: -#: +#: src/pages/admin-overview/AdminOverviewPage.ts +#: src/pages/applications/ApplicationViewPage.ts msgid "Logins over the last 24 hours" msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Logo" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts msgid "Logout URL" msgstr "" -#: +#: src/interfaces/AdminInterface.ts msgid "Logs" msgstr "" -#: +#: src/pages/system-tasks/SystemTaskListPage.ts msgid "Long-running operations which authentik executes in the background." msgstr "" -#: +#: src/pages/stages/user_write/UserWriteStageForm.ts msgid "Mark newly created users as inactive." msgstr "" -#: +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts msgid "Match created events with this action type. When left empty, all action types will be matched." msgstr "" -#: +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts msgid "Match events created by selected application. When left empty, all applications are matched." msgstr "" -#: +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts msgid "Matches Event's Client IP (strict matching, for network matching use an Expression Policy." msgstr "" -#: +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts msgid "Matches an event against a set of criteria. If any of the configured values match, the policy passes." msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Matching is done based on domain suffix, so if you enter domain.tld, foo.domain.tld will still match." msgstr "" -#: +#: src/pages/policies/expiry/ExpiryPolicyForm.ts msgid "Maximum age (in days)" msgstr "" -#: -#: +#: src/pages/groups/GroupForm.ts +#: src/pages/groups/GroupListPage.ts msgid "Members" msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "Message" msgstr "" -#: -#: -#: -#: +#: src/pages/applications/ApplicationCheckAccessForm.ts +#: src/pages/events/EventInfo.ts +#: src/pages/policies/PolicyTestForm.ts +#: src/pages/system-tasks/SystemTaskListPage.ts msgid "Messages" msgstr "" -#: -#: -#: -#: +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/saml/SAMLProviderImportForm.ts +#: src/pages/providers/saml/SAMLProviderViewPage.ts +#: src/pages/sources/saml/SAMLSourceViewPage.ts msgid "Metadata" msgstr "" -#: +#: src/pages/policies/password/PasswordPolicyForm.ts msgid "Minimum amount of Lowercase Characters" msgstr "" -#: +#: src/pages/policies/password/PasswordPolicyForm.ts msgid "Minimum amount of Symbols Characters" msgstr "" -#: +#: src/pages/policies/password/PasswordPolicyForm.ts msgid "Minimum amount of Uppercase Characters" msgstr "" -#: +#: src/pages/policies/password/PasswordPolicyForm.ts msgid "Minimum length" msgstr "" -#: -#: -#: -#: +#: src/pages/events/TransportForm.ts +#: src/pages/events/TransportListPage.ts +#: src/pages/providers/proxy/ProxyProviderViewPage.ts +#: src/pages/stages/consent/ConsentStageForm.ts msgid "Mode" msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "Model Name" msgstr "" -#: +#: src/interfaces/AdminInterface.ts msgid "Monitor" msgstr "" -#: +#: src/pages/LibraryPage.ts msgid "My Applications" msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/pages/applications/ApplicationForm.ts +#: src/pages/applications/ApplicationListPage.ts +#: src/pages/crypto/CertificateKeyPairForm.ts +#: src/pages/crypto/CertificateKeyPairListPage.ts +#: src/pages/events/EventInfo.ts +#: src/pages/events/RuleForm.ts +#: src/pages/events/RuleListPage.ts +#: src/pages/events/TransportForm.ts +#: src/pages/events/TransportListPage.ts +#: src/pages/flows/BoundStagesList.ts +#: src/pages/flows/FlowForm.ts +#: src/pages/flows/FlowListPage.ts +#: src/pages/groups/GroupForm.ts +#: src/pages/groups/GroupListPage.ts +#: src/pages/groups/MemberSelectModal.ts +#: src/pages/outposts/OutpostForm.ts +#: src/pages/outposts/OutpostListPage.ts +#: src/pages/outposts/ServiceConnectionDockerForm.ts +#: src/pages/outposts/ServiceConnectionKubernetesForm.ts +#: src/pages/outposts/ServiceConnectionListPage.ts +#: src/pages/policies/PolicyListPage.ts +#: src/pages/policies/dummy/DummyPolicyForm.ts +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts +#: src/pages/policies/expiry/ExpiryPolicyForm.ts +#: src/pages/policies/expression/ExpressionPolicyForm.ts +#: src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts +#: src/pages/policies/password/PasswordPolicyForm.ts +#: src/pages/policies/reputation/ReputationPolicyForm.ts +#: src/pages/property-mappings/PropertyMappingLDAPForm.ts +#: src/pages/property-mappings/PropertyMappingListPage.ts +#: src/pages/property-mappings/PropertyMappingSAMLForm.ts +#: src/pages/property-mappings/PropertyMappingScopeForm.ts +#: src/pages/providers/ProviderListPage.ts +#: src/pages/providers/ldap/LDAPProviderForm.ts +#: src/pages/providers/ldap/LDAPProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/proxy/ProxyProviderForm.ts +#: src/pages/providers/proxy/ProxyProviderViewPage.ts +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/providers/saml/SAMLProviderImportForm.ts +#: src/pages/providers/saml/SAMLProviderViewPage.ts +#: src/pages/sources/SourcesListPage.ts +#: src/pages/sources/ldap/LDAPSourceForm.ts +#: src/pages/sources/ldap/LDAPSourceViewPage.ts +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/oauth/OAuthSourceViewPage.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/sources/plex/PlexSourceViewPage.ts +#: src/pages/sources/saml/SAMLSourceForm.ts +#: src/pages/sources/saml/SAMLSourceViewPage.ts +#: src/pages/stages/StageListPage.ts +#: src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts +#: src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts +#: src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts +#: src/pages/stages/authenticator_webauthn/AuthenticateWebAuthnStageForm.ts +#: src/pages/stages/captcha/CaptchaStageForm.ts +#: src/pages/stages/consent/ConsentStageForm.ts +#: src/pages/stages/deny/DenyStageForm.ts +#: src/pages/stages/dummy/DummyStageForm.ts +#: src/pages/stages/email/EmailStageForm.ts +#: src/pages/stages/identification/IdentificationStageForm.ts +#: src/pages/stages/invitation/InvitationStageForm.ts +#: src/pages/stages/password/PasswordStageForm.ts +#: src/pages/stages/prompt/PromptStageForm.ts +#: src/pages/stages/user_delete/UserDeleteStageForm.ts +#: src/pages/stages/user_login/UserLoginStageForm.ts +#: src/pages/stages/user_logout/UserLogoutStageForm.ts +#: src/pages/stages/user_write/UserWriteStageForm.ts +#: src/pages/user-settings/UserDetailsPage.ts +#: src/pages/users/UserForm.ts +#: src/pages/users/UserListPage.ts +#: src/pages/users/UserViewPage.ts msgid "Name" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Name of the form field, also used to store the value." msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "NameID Policy" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "NameID Property Mapping" msgstr "" -#: +#: src/flows/stages/identification/IdentificationStage.ts msgid "Need an account?" msgstr "" -#: +#: src/pages/policies/PolicyBindingForm.ts msgid "Negate result" msgstr "" -#: +#: src/pages/policies/PolicyBindingForm.ts msgid "Negates the outcome of the binding. Messages are unaffected." msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "New version available!" msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/elements/oauth/UserRefreshList.ts +#: src/pages/applications/ApplicationCheckAccessForm.ts +#: src/pages/crypto/CertificateKeyPairListPage.ts +#: src/pages/groups/GroupListPage.ts +#: src/pages/groups/MemberSelectModal.ts +#: src/pages/outposts/ServiceConnectionListPage.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/PolicyTestForm.ts +#: src/pages/providers/proxy/ProxyProviderViewPage.ts +#: src/pages/tenants/TenantListPage.ts +#: src/pages/tokens/TokenListPage.ts +#: src/pages/user-settings/tokens/UserTokenList.ts +#: src/pages/users/UserListPage.ts msgid "No" msgstr "" -#: +#: src/pages/LibraryPage.ts msgid "No Applications available." msgstr "" -#: -#: +#: src/elements/events/ObjectChangelog.ts +#: src/elements/events/UserEvents.ts msgid "No Events found." msgstr "" -#: +#: src/pages/policies/BoundPoliciesList.ts msgid "No Policies bound." msgstr "" -#: +#: src/pages/flows/BoundStagesList.ts msgid "No Stages bound" msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "No additional data available." msgstr "" -#: +#: src/elements/forms/ModalForm.ts msgid "No form found" msgstr "" -#: -#: +#: src/elements/events/ObjectChangelog.ts +#: src/elements/events/UserEvents.ts msgid "No matching events could be found." msgstr "" -#: +#: src/elements/table/Table.ts msgid "No objects found." msgstr "" -#: +#: src/pages/policies/BoundPoliciesList.ts msgid "No policies are currently bound to this object." msgstr "" -#: +#: src/pages/users/UserListPage.ts msgid "No recovery flow is configured." msgstr "" -#: +#: src/pages/flows/BoundStagesList.ts msgid "No stages are currently bound to this flow." msgstr "" -#: +#: src/pages/admin-overview/cards/WorkerStatusCard.ts msgid "No workers connected. Background tasks will not run." msgstr "" -#: +#: src/pages/events/RuleListPage.ts msgid "None (rule disabled)" msgstr "" -#: +#: src/pages/outposts/OutpostHealth.ts msgid "Not available" msgstr "" -#: +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts msgid "Not configured action" msgstr "" -#: +#: src/pages/user-settings/settings/SourceSettingsOAuth.ts msgid "Not connected." msgstr "" -#: +#: src/elements/router/Router404.ts msgid "Not found" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceViewPage.ts msgid "Not synced yet." msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: +#: src/flows/stages/authenticator_duo/AuthenticatorDuoStage.ts +#: src/flows/stages/authenticator_static/AuthenticatorStaticStage.ts +#: src/flows/stages/authenticator_totp/AuthenticatorTOTPStage.ts +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageCode.ts +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageDuo.ts +#: src/flows/stages/captcha/CaptchaStage.ts +#: src/flows/stages/consent/ConsentStage.ts +#: src/flows/stages/password/PasswordStage.ts msgid "Not you?" msgstr "" -#: +#: src/pages/events/RuleForm.ts msgid "Notice" msgstr "" -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/events/RuleListPage.ts msgid "Notification Rules" msgstr "" -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/events/TransportListPage.ts msgid "Notification Transports" msgstr "" -#: +#: src/pages/events/RuleListPage.ts msgid "Notification rule" msgstr "" -#: +#: src/elements/notifications/NotificationDrawer.ts msgid "Notifications" msgstr "" -#: +#: src/pages/events/TransportListPage.ts msgid "Notifications Transport" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Number" msgstr "" -#: +#: src/pages/users/UserViewPage.ts msgid "OAuth Authorization Codes" msgstr "" -#: +#: src/pages/users/UserViewPage.ts msgid "OAuth Refresh Codes" msgstr "" -#: -#: +#: src/pages/events/EventInfo.ts +#: src/pages/events/EventInfo.ts msgid "Object" msgstr "" -#: +#: src/pages/property-mappings/PropertyMappingLDAPForm.ts msgid "Object field" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Object uniqueness field" msgstr "" -#: +#: src/pages/stages/consent/ConsentStageForm.ts msgid "Offset after which consent expires. (Format: hours=1;minutes=2;seconds=3)." msgstr "" -#: -#: -#: +#: src/elements/events/ObjectChangelog.ts +#: src/elements/events/UserEvents.ts +#: src/pages/events/EventListPage.ts msgid "On behalf of {0}" msgstr "" -#: +#: src/pages/policies/expiry/ExpiryPolicyForm.ts msgid "Only fail the policy, don't invalidate user's password." msgstr "" -#: +#: src/pages/events/TransportForm.ts msgid "Only send notification once, for example when sending a webhook into a chat channel." msgstr "" -#: +#: src/pages/applications/ApplicationListPage.ts msgid "Open application" msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "Open issue on GitHub..." msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts msgid "OpenID Configuration Issuer" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts msgid "OpenID Configuration URL" msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairForm.ts msgid "Optional Private Key. If this is set, you can use this keypair for encryption." msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Optional URL if the IDP supports Single-Logout." msgstr "" -#: +#: src/pages/stages/invitation/InvitationForm.ts msgid "Optional data which is loaded into the flow's 'prompt_data' context variable. YAML or JSON." msgstr "" -#: +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "Optional enrollment flow, which is linked at the bottom of the page." msgstr "" -#: +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "Optional recovery flow, which is linked at the bottom of the page." msgstr "" -#: +#: src/pages/crypto/CertificateGenerateForm.ts msgid "Optional, comma-separated SubjectAlt Names." msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Optionally pre-fill the input value" msgstr "" -#: +#: src/pages/property-mappings/PropertyMappingSAMLForm.ts msgid "Optionally set the 'FriendlyName' value of the Assertion attribute." msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Optionally set this to your parent domain, if you want authentication and authorization to happen on a domain level. If you're running applications as app1.domain.tld, app2.domain.tld, set this to 'domain.tld'." msgstr "" -#: -#: -#: -#: -#: -#: +#: src/pages/flows/BoundStagesList.ts +#: src/pages/flows/StageBindingForm.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/PolicyBindingForm.ts +#: src/pages/stages/prompt/PromptForm.ts +#: src/pages/stages/prompt/PromptListPage.ts msgid "Order" msgstr "" -#: +#: src/pages/admin-overview/charts/OutpostStatusChart.ts msgid "Outdated outposts" msgstr "" -#: +#: src/pages/outposts/OutpostListPage.ts msgid "Outpost" msgstr "" -#: +#: src/pages/outposts/OutpostDeploymentModal.ts msgid "Outpost Deployment Info" msgstr "" -#: +#: src/pages/outposts/ServiceConnectionListPage.ts msgid "Outpost Service-connection" msgstr "" -#: +#: src/pages/admin-overview/AdminOverviewPage.ts msgid "Outpost status" msgstr "" -#: -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/interfaces/AdminInterface.ts +#: src/pages/outposts/OutpostListPage.ts msgid "Outposts" msgstr "" -#: +#: src/pages/outposts/OutpostListPage.ts msgid "Outposts are deployments of authentik components to support different environments and protocols, like reverse proxies." msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/applications/ApplicationViewPage.ts +#: src/pages/providers/ldap/LDAPProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/proxy/ProxyProviderViewPage.ts +#: src/pages/providers/saml/SAMLProviderViewPage.ts +#: src/pages/sources/ldap/LDAPSourceViewPage.ts +#: src/pages/sources/oauth/OAuthSourceViewPage.ts +#: src/pages/sources/plex/PlexSourceViewPage.ts +#: src/pages/sources/saml/SAMLSourceViewPage.ts +#: src/pages/users/UserViewPage.ts msgid "Overview" msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairForm.ts msgid "PEM-encoded Certificate data." msgstr "" -#: -#: +#: src/pages/groups/GroupForm.ts +#: src/pages/groups/GroupListPage.ts msgid "Parent" msgstr "" -#: +#: src/pages/policies/dummy/DummyPolicyForm.ts msgid "Pass policy?" msgstr "" -#: -#: -#: +#: src/pages/applications/ApplicationCheckAccessForm.ts +#: src/pages/events/EventInfo.ts +#: src/pages/policies/PolicyTestForm.ts msgid "Passing" msgstr "" -#: -#: -#: +#: src/flows/stages/identification/IdentificationStage.ts +#: src/flows/stages/identification/IdentificationStage.ts +#: src/flows/stages/password/PasswordStage.ts msgid "Password" msgstr "" -#: -#: +#: src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts +#: src/pages/policies/password/PasswordPolicyForm.ts msgid "Password field" msgstr "" -#: +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "Password stage" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Password: Masked input, password is validated against sources. Policies still have to be applied to this Stage. If two of these are used in the same stage, they are ensured to be identical." msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Persistent" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Placeholder" msgstr "" -#: -#: +#: src/flows/stages/authenticator_totp/AuthenticatorTOTPStage.ts +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageCode.ts msgid "Please enter your TOTP Code" msgstr "" -#: +#: src/flows/stages/password/PasswordStage.ts msgid "Please enter your password" msgstr "" -#: -#: -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/admin-overview/AdminOverviewPage.ts +#: src/pages/flows/FlowListPage.ts +#: src/pages/policies/PolicyListPage.ts msgid "Policies" msgstr "" -#: -#: -#: -#: +#: src/pages/policies/PolicyBindingForm.ts +#: src/pages/policies/PolicyBindingForm.ts +#: src/pages/policies/PolicyBindingForm.ts +#: src/pages/policies/PolicyListPage.ts msgid "Policy" msgstr "" -#: -#: +#: src/pages/applications/ApplicationViewPage.ts +#: src/pages/flows/FlowViewPage.ts msgid "Policy / Group / User Bindings" msgstr "" -#: +#: src/pages/policies/BoundPoliciesList.ts msgid "Policy / User / Group" msgstr "" -#: -#: -#: +#: src/pages/sources/oauth/OAuthSourceViewPage.ts +#: src/pages/sources/plex/PlexSourceViewPage.ts +#: src/pages/sources/saml/SAMLSourceViewPage.ts msgid "Policy Bindings" msgstr "" -#: +#: src/pages/policies/BoundPoliciesList.ts msgid "Policy binding" msgstr "" -#: -#: -#: -#: +#: src/pages/applications/ApplicationForm.ts +#: src/pages/applications/ApplicationViewPage.ts +#: src/pages/flows/FlowForm.ts +#: src/pages/flows/StageBindingForm.ts msgid "Policy engine mode" msgstr "" -#: +#: src/pages/policies/BoundPoliciesList.ts msgid "Policy {0}" msgstr "" -#: -#: -#: -#: -#: -#: -#: +#: src/pages/policies/dummy/DummyPolicyForm.ts +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts +#: src/pages/policies/expiry/ExpiryPolicyForm.ts +#: src/pages/policies/expression/ExpressionPolicyForm.ts +#: src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts +#: src/pages/policies/password/PasswordPolicyForm.ts +#: src/pages/policies/reputation/ReputationPolicyForm.ts msgid "Policy-specific settings" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Post" msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Post binding" msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Post binding (auto-submit)" msgstr "" -#: +#: src/flows/FlowExecutor.ts msgid "Powered by authentik" msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Pre-authentication flow" msgstr "" -#: -#: +#: src/pages/crypto/CertificateKeyPairForm.ts +#: src/pages/stages/captcha/CaptchaStageForm.ts msgid "Private Key" msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts msgid "Private key available?" msgstr "" -#: +#: src/pages/stages/captcha/CaptchaStageForm.ts msgid "Private key, acquired from https://www.google.com/recaptcha/intro/v3.html." msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts msgid "Profile URL" msgstr "" -#: +#: src/pages/stages/prompt/PromptListPage.ts msgid "Prompt" msgstr "" -#: +#: src/pages/stages/consent/ConsentStageForm.ts msgid "Prompt for the user's consent. The consent can either be permanent or expire in a defined amount of time." msgstr "" -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/stages/prompt/PromptListPage.ts msgid "Prompts" msgstr "" -#: +#: src/pages/property-mappings/PropertyMappingListPage.ts msgid "Property Mapping" msgstr "" -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/property-mappings/PropertyMappingListPage.ts msgid "Property Mappings" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Property mappings" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Property mappings used to group creation." msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Property mappings used to user creation." msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderViewPage.ts msgid "Protocol Settings" msgstr "" -#: -#: -#: -#: -#: -#: +#: src/pages/providers/ldap/LDAPProviderForm.ts +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Protocol settings" msgstr "" -#: +#: src/pages/providers/ProviderListPage.ts msgid "Provide support for protocols like SAML and OAuth to assigned applications." msgstr "" -#: -#: -#: -#: -#: -#: +#: src/elements/oauth/UserCodeList.ts +#: src/elements/oauth/UserRefreshList.ts +#: src/pages/applications/ApplicationForm.ts +#: src/pages/applications/ApplicationListPage.ts +#: src/pages/applications/ApplicationViewPage.ts +#: src/pages/providers/ProviderListPage.ts msgid "Provider" msgstr "" -#: -#: +#: src/pages/applications/ApplicationListPage.ts +#: src/pages/sources/oauth/OAuthSourceViewPage.ts msgid "Provider Type" msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts msgid "Provider type" msgstr "" -#: -#: -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/outposts/OutpostForm.ts +#: src/pages/outposts/OutpostListPage.ts +#: src/pages/providers/ProviderListPage.ts msgid "Providers" msgstr "" -#: -#: +#: src/pages/outposts/OutpostForm.ts +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Proxy" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Public" msgstr "" -#: +#: src/pages/stages/captcha/CaptchaStageForm.ts msgid "Public Key" msgstr "" -#: +#: src/pages/stages/captcha/CaptchaStageForm.ts msgid "Public key, acquired from https://www.google.com/recaptcha/intro/v3.html." msgstr "" -#: +#: src/pages/applications/ApplicationForm.ts msgid "Publisher" msgstr "" -#: +#: src/pages/flows/StageBindingForm.ts msgid "RESTART restarts the flow from the beginning, while keeping the flow context." msgstr "" -#: +#: src/pages/flows/StageBindingForm.ts msgid "RESTART restarts the flow from the beginning." msgstr "" -#: +#: src/pages/flows/StageBindingForm.ts msgid "RETRY returns the error message and a similar challenge to the executor." msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "RS256 (Asymmetric Encryption)" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "RSA Key" msgstr "" -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "RSA-SHA1" msgstr "" -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "RSA-SHA256" msgstr "" -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "RSA-SHA384" msgstr "" -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "RSA-SHA512" msgstr "" -#: +#: src/pages/flows/StageBindingForm.ts msgid "Re-evaluate policies" msgstr "" -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts msgid "Receive a push notification on your phone to prove your identity." msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Recovery" msgstr "" -#: -#: +#: src/pages/stages/identification/IdentificationStageForm.ts +#: src/pages/tenants/TenantForm.ts msgid "Recovery flow" msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Recovery flow. If left empty, the first applicable flow sorted by the slug is used." msgstr "" -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts msgid "Recovery keys" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Redirect" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts msgid "Redirect URIs" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Redirect URIs/Origins" msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Redirect binding" msgstr "" -#: +#: src/elements/table/Table.ts msgid "Refresh" msgstr "" -#: +#: src/elements/oauth/UserRefreshList.ts msgid "Refresh Code" msgstr "" -#: +#: src/flows/stages/authenticator_webauthn/WebAuthnAuthenticatorRegisterStage.ts msgid "Register device" msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Regular expressions for which authentication is not required. Each new line is interpreted as a new Regular Expression." msgstr "" -#: -#: +#: src/pages/applications/ApplicationViewPage.ts +#: src/pages/flows/FlowViewPage.ts msgid "Related" msgstr "" -#: +#: src/pages/stages/user_logout/UserLogoutStageForm.ts msgid "Remove the user from the current session." msgstr "" -#: +#: src/pages/policies/reputation/IPReputationListPage.ts msgid "Reputation for IPs. Scores are decreased for each failed login and increased for each successful login." msgstr "" -#: +#: src/pages/policies/reputation/UserReputationListPage.ts msgid "Reputation for usernames. Scores are decreased for each failed login and increased for each successful login." msgstr "" -#: +#: src/interfaces/AdminInterface.ts msgid "Reputation policy - IPs" msgstr "" -#: +#: src/interfaces/AdminInterface.ts msgid "Reputation policy - Users" msgstr "" -#: -#: +#: src/pages/events/EventInfo.ts +#: src/pages/events/EventInfo.ts msgid "Request" msgstr "" -#: +#: src/flows/access_denied/FlowAccessDenied.ts msgid "Request has been denied." msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts msgid "Request token URL" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Required" msgstr "" -#: -#: +#: src/pages/user-settings/UserDetailsPage.ts +#: src/pages/users/UserForm.ts msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only." msgstr "" -#: -#: +#: src/pages/users/UserListPage.ts +#: src/pages/users/UserViewPage.ts msgid "Reset Password" msgstr "" -#: +#: src/interfaces/AdminInterface.ts msgid "Resources" msgstr "" -#: -#: +#: src/pages/events/EventInfo.ts +#: src/pages/property-mappings/PropertyMappingTestForm.ts msgid "Result" msgstr "" -#: -#: +#: src/pages/sources/ldap/LDAPSourceViewPage.ts +#: src/pages/system-tasks/SystemTaskListPage.ts msgid "Retry Task" msgstr "" -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts msgid "Retry authentication" msgstr "" -#: +#: src/flows/FlowExecutor.ts msgid "Return" msgstr "" -#: +#: src/elements/router/Router404.ts msgid "Return home" msgstr "" -#: -#: -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageCode.ts +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageDuo.ts +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts msgid "Return to device picker" msgstr "" -#: +#: src/elements/oauth/UserRefreshList.ts msgid "Revoked?" msgstr "" -#: +#: src/pages/property-mappings/PropertyMappingSAMLForm.ts msgid "SAML Attribute Name" msgstr "" -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "SHA1" msgstr "" -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "SHA256" msgstr "" -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "SHA384" msgstr "" -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "SHA512" msgstr "" -#: -#: +#: src/pages/sources/saml/SAMLSourceForm.ts +#: src/pages/sources/saml/SAMLSourceViewPage.ts msgid "SLO URL" msgstr "" -#: +#: src/pages/stages/email/EmailStageForm.ts msgid "SMTP Host" msgstr "" -#: +#: src/pages/stages/email/EmailStageForm.ts msgid "SMTP Password" msgstr "" -#: +#: src/pages/stages/email/EmailStageForm.ts msgid "SMTP Port" msgstr "" -#: +#: src/pages/stages/email/EmailStageForm.ts msgid "SMTP Username" msgstr "" -#: -#: +#: src/pages/sources/saml/SAMLSourceForm.ts +#: src/pages/sources/saml/SAMLSourceViewPage.ts msgid "SSO URL" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Same identifier is used for all providers" msgstr "" -#: +#: src/pages/property-mappings/PropertyMappingScopeForm.ts msgid "Scope name" msgstr "" -#: +#: src/pages/property-mappings/PropertyMappingScopeForm.ts msgid "Scope which the client can specify to access these properties." msgstr "" -#: -#: -#: +#: src/elements/oauth/UserCodeList.ts +#: src/elements/oauth/UserRefreshList.ts +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Scopes" msgstr "" -#: -#: +#: src/pages/policies/reputation/IPReputationListPage.ts +#: src/pages/policies/reputation/UserReputationListPage.ts msgid "Score" msgstr "" -#: +#: src/elements/table/TableSearch.ts msgid "Search..." msgstr "" -#: +#: src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts msgid "Secret key" msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "Secret:" msgstr "" -#: -#: -#: -#: +#: src/pages/policies/expression/ExpressionPolicyForm.ts +#: src/pages/property-mappings/PropertyMappingLDAPForm.ts +#: src/pages/property-mappings/PropertyMappingSAMLForm.ts +#: src/pages/property-mappings/PropertyMappingScopeForm.ts msgid "See documentation for a list of all variables." msgstr "" -#: +#: src/pages/applications/ApplicationForm.ts msgid "Select a provider that this application should use. Alternatively, create a new provider." msgstr "" -#: +#: src/elements/table/Table.ts msgid "Select all rows" msgstr "" -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts msgid "Select an identification method." msgstr "" -#: +#: src/flows/stages/identification/IdentificationStage.ts msgid "Select one of the sources below to login." msgstr "" -#: +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "Select sources should be shown for users to authenticate with. This only affects web-based sources, not LDAP." msgstr "" -#: +#: src/pages/groups/MemberSelectModal.ts msgid "Select users to add" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Select which scopes can be used by the client. The client stil has to specify the scope to access the data." msgstr "" -#: +#: src/pages/sources/plex/PlexSourceForm.ts msgid "Select which server a user has to be a member of to be allowed to authenticate." msgstr "" -#: +#: src/pages/events/RuleForm.ts msgid "Select which transports should be used to notify the user. If none are selected, the notification will only be shown in the authentik UI." msgstr "" -#: +#: src/pages/stages/prompt/PromptStageForm.ts msgid "Selected policies are executed when the stage is submitted to validate the data." msgstr "" -#: +#: src/pages/outposts/OutpostForm.ts msgid "Selecting a service-connection enables the management of the outpost by authentik." msgstr "" -#: +#: src/pages/stages/password/PasswordStageForm.ts msgid "Selection of backends to test the password against." msgstr "" -#: +#: src/flows/stages/email/EmailStage.ts msgid "Send Email again." msgstr "" -#: +#: src/pages/events/RuleListPage.ts msgid "Send notifications whenever a specific Event is created and matched by policies." msgstr "" -#: +#: src/pages/events/TransportForm.ts msgid "Send once" msgstr "" -#: +#: src/pages/events/RuleListPage.ts msgid "Sent to group" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Separator: Static Separator Line" msgstr "" -#: -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts +#: src/pages/sources/ldap/LDAPSourceViewPage.ts msgid "Server URI" msgstr "" -#: +#: src/flows/stages/authenticator_webauthn/WebAuthnAuthenticatorRegisterStage.ts msgid "Server validation of credential failed: {err}" msgstr "" -#: +#: src/interfaces/AdminInterface.ts msgid "Service Connections" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Service Provider Binding" msgstr "" -#: -#: +#: src/pages/outposts/OutpostForm.ts +#: src/pages/outposts/OutpostListPage.ts msgid "Service connection" msgstr "" -#: +#: src/elements/user/SessionList.ts msgid "Session" msgstr "" -#: +#: src/pages/stages/user_login/UserLoginStageForm.ts msgid "Session duration" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Session not valid on or after current time + this value (Format: hours=1;minutes=2;seconds=3)." msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Session valid not on or after" msgstr "" -#: +#: src/pages/users/UserViewPage.ts msgid "Sessions" msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Set HTTP-Basic Authentication" msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Set a custom HTTP-Basic Authentication header based on values from authentik." msgstr "" -#: -#: -#: -#: -#: +#: src/pages/groups/GroupForm.ts +#: src/pages/outposts/OutpostForm.ts +#: src/pages/outposts/ServiceConnectionKubernetesForm.ts +#: src/pages/policies/PolicyTestForm.ts +#: src/pages/users/UserForm.ts msgid "Set custom attributes using YAML or JSON." msgstr "" -#: -#: +#: src/pages/events/RuleForm.ts +#: src/pages/events/RuleListPage.ts msgid "Severity" msgstr "" -#: +#: src/pages/stages/prompt/PromptStageForm.ts msgid "Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable." msgstr "" -#: +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "Show matched user" msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Shown as the Title in Flow pages." msgstr "" -#: +#: src/flows/stages/identification/IdentificationStage.ts msgid "Sign up." msgstr "" -#: -#: +#: src/pages/providers/saml/SAMLProviderForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Signature algorithm" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Signing Certificate" msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Signing keypair" msgstr "" -#: +#: src/pages/stages/prompt/PromptListPage.ts msgid "Single Prompts that can be used for Prompt Stages." msgstr "" -#: +#: src/pages/stages/invitation/InvitationForm.ts msgid "Single use" msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Skip path regex" msgstr "" -#: -#: -#: -#: -#: -#: -#: +#: src/pages/applications/ApplicationForm.ts +#: src/pages/applications/ApplicationListPage.ts +#: src/pages/flows/FlowForm.ts +#: src/pages/sources/ldap/LDAPSourceForm.ts +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Slug" msgstr "" -#: +#: src/flows/FlowExecutor.ts msgid "Something went wrong! Please try again later." msgstr "" -#: +#: src/pages/sources/SourcesListPage.ts msgid "Source" msgstr "" -#: +#: src/pages/user-settings/settings/SourceSettingsOAuth.ts msgid "Source {0}" msgstr "" -#: -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/sources/SourcesListPage.ts +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "Sources" msgstr "" -#: +#: src/pages/sources/SourcesListPage.ts msgid "Sources of identities, which can either be synced into authentik's database, like LDAP, or can be used by users to authenticate and enroll themselves, like OAuth and social logins" msgstr "" -#: +#: src/pages/flows/StageBindingForm.ts msgid "Stage" msgstr "" -#: +#: src/pages/flows/FlowViewPage.ts msgid "Stage Bindings" msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Stage Configuration" msgstr "" -#: +#: src/pages/flows/BoundStagesList.ts msgid "Stage binding" msgstr "" -#: +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts msgid "Stage used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again." msgstr "" -#: +#: src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts msgid "Stage used to configure a TOTP authenticator (i.e. Authy/Google Authenticator)." msgstr "" -#: +#: src/pages/stages/authenticator_webauthn/AuthenticateWebAuthnStageForm.ts msgid "Stage used to configure a WebAutnn authenticator (i.e. Yubikey, FaceID/Windows Hello)." msgstr "" -#: +#: src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts msgid "Stage used to configure a duo-based authenticator. This stage should be used for configuration flows." msgstr "" -#: +#: src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts msgid "Stage used to configure a static authenticator (i.e. static tokens). This stage should be used for configuration flows." msgstr "" -#: +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts msgid "Stage used to validate any authenticator. This stage should be used during authentication or authorization flows." msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts +#: src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts +#: src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts +#: src/pages/stages/captcha/CaptchaStageForm.ts +#: src/pages/stages/consent/ConsentStageForm.ts +#: src/pages/stages/email/EmailStageForm.ts +#: src/pages/stages/identification/IdentificationStageForm.ts +#: src/pages/stages/invitation/InvitationStageForm.ts +#: src/pages/stages/password/PasswordStageForm.ts +#: src/pages/stages/prompt/PromptStageForm.ts +#: src/pages/stages/user_login/UserLoginStageForm.ts +#: src/pages/stages/user_write/UserWriteStageForm.ts msgid "Stage-specific settings" msgstr "" -#: -#: -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/flows/FlowListPage.ts +#: src/pages/stages/StageListPage.ts +#: src/pages/stages/prompt/PromptListPage.ts msgid "Stages" msgstr "" -#: +#: src/pages/stages/StageListPage.ts msgid "Stages are single steps of a Flow that a user is guided through. A stage can only be executed from within a flow." msgstr "" -#: +#: src/pages/outposts/ServiceConnectionListPage.ts msgid "State" msgstr "" -#: +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts msgid "Static Tokens" msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorStatic.ts msgid "Static tokens" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Static: Static value, displayed as-is." msgstr "" -#: +#: src/pages/stages/deny/DenyStageForm.ts msgid "Statically deny the flow. To use this stage effectively, disable *Evaluate on plan* on the respective binding." msgstr "" -#: +#: src/pages/system-tasks/SystemTaskListPage.ts msgid "Status" msgstr "" -#: -#: -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorDuo.ts +#: src/pages/user-settings/settings/UserSettingsAuthenticatorStatic.ts +#: src/pages/user-settings/settings/UserSettingsAuthenticatorTOTP.ts msgid "Status: Disabled" msgstr "" -#: -#: -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorDuo.ts +#: src/pages/user-settings/settings/UserSettingsAuthenticatorStatic.ts +#: src/pages/user-settings/settings/UserSettingsAuthenticatorTOTP.ts msgid "Status: Enabled" msgstr "" -#: -#: +#: src/pages/events/EventInfo.ts +#: src/pages/stages/email/EmailStageForm.ts msgid "Subject" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Subject mode" msgstr "" -#: +#: src/pages/crypto/CertificateGenerateForm.ts msgid "Subject-alt name" msgstr "" -#: +#: src/pages/system-tasks/SystemTaskListPage.ts msgid "Successful" msgstr "" -#: +#: src/pages/flows/FlowListPage.ts msgid "Successfully cleared flow cache" msgstr "" -#: +#: src/pages/policies/PolicyListPage.ts msgid "Successfully cleared policy cache" msgstr "" -#: +#: src/flows/stages/authenticator_totp/AuthenticatorTOTPStage.ts msgid "Successfully copied TOTP Config." msgstr "" -#: +#: src/pages/applications/ApplicationForm.ts msgid "Successfully created application." msgstr "" -#: -#: +#: src/pages/flows/StageBindingForm.ts +#: src/pages/policies/PolicyBindingForm.ts msgid "Successfully created binding." msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairForm.ts msgid "Successfully created certificate-key pair." msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Successfully created flow." msgstr "" -#: +#: src/pages/groups/GroupForm.ts msgid "Successfully created group." msgstr "" -#: +#: src/pages/stages/invitation/InvitationForm.ts msgid "Successfully created invitation." msgstr "" -#: -#: -#: +#: src/pages/property-mappings/PropertyMappingLDAPForm.ts +#: src/pages/property-mappings/PropertyMappingSAMLForm.ts +#: src/pages/property-mappings/PropertyMappingScopeForm.ts msgid "Successfully created mapping." msgstr "" -#: +#: src/pages/outposts/OutpostForm.ts msgid "Successfully created outpost." msgstr "" -#: -#: -#: -#: -#: -#: -#: +#: src/pages/policies/dummy/DummyPolicyForm.ts +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts +#: src/pages/policies/expiry/ExpiryPolicyForm.ts +#: src/pages/policies/expression/ExpressionPolicyForm.ts +#: src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts +#: src/pages/policies/password/PasswordPolicyForm.ts +#: src/pages/policies/reputation/ReputationPolicyForm.ts msgid "Successfully created policy." msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Successfully created prompt." msgstr "" -#: -#: -#: -#: +#: src/pages/providers/ldap/LDAPProviderForm.ts +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/proxy/ProxyProviderForm.ts +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Successfully created provider." msgstr "" -#: +#: src/pages/events/RuleForm.ts msgid "Successfully created rule." msgstr "" -#: -#: +#: src/pages/outposts/ServiceConnectionDockerForm.ts +#: src/pages/outposts/ServiceConnectionKubernetesForm.ts msgid "Successfully created service-connection." msgstr "" -#: -#: -#: -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Successfully created source." msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts +#: src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts +#: src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts +#: src/pages/stages/authenticator_webauthn/AuthenticateWebAuthnStageForm.ts +#: src/pages/stages/captcha/CaptchaStageForm.ts +#: src/pages/stages/consent/ConsentStageForm.ts +#: src/pages/stages/deny/DenyStageForm.ts +#: src/pages/stages/dummy/DummyStageForm.ts +#: src/pages/stages/email/EmailStageForm.ts +#: src/pages/stages/identification/IdentificationStageForm.ts +#: src/pages/stages/invitation/InvitationStageForm.ts +#: src/pages/stages/password/PasswordStageForm.ts +#: src/pages/stages/prompt/PromptStageForm.ts +#: src/pages/stages/user_delete/UserDeleteStageForm.ts +#: src/pages/stages/user_login/UserLoginStageForm.ts +#: src/pages/stages/user_logout/UserLogoutStageForm.ts +#: src/pages/stages/user_write/UserWriteStageForm.ts msgid "Successfully created stage." msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Successfully created tenant." msgstr "" -#: +#: src/pages/user-settings/tokens/UserTokenForm.ts msgid "Successfully created token." msgstr "" -#: +#: src/pages/events/TransportForm.ts msgid "Successfully created transport." msgstr "" -#: +#: src/pages/users/UserForm.ts msgid "Successfully created user." msgstr "" -#: +#: src/elements/forms/DeleteForm.ts msgid "Successfully deleted {0} {1}" msgstr "" -#: +#: src/pages/crypto/CertificateGenerateForm.ts msgid "Successfully generated certificate-key pair." msgstr "" -#: -#: +#: src/pages/users/UserListPage.ts +#: src/pages/users/UserViewPage.ts msgid "Successfully generated recovery link" msgstr "" -#: +#: src/pages/flows/FlowImportForm.ts msgid "Successfully imported flow." msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderImportForm.ts msgid "Successfully imported provider." msgstr "" -#: -#: -#: +#: src/pages/applications/ApplicationCheckAccessForm.ts +#: src/pages/policies/PolicyTestForm.ts +#: src/pages/property-mappings/PropertyMappingTestForm.ts msgid "Successfully sent test-request." msgstr "" -#: +#: src/pages/applications/ApplicationForm.ts msgid "Successfully updated application." msgstr "" -#: -#: +#: src/pages/flows/StageBindingForm.ts +#: src/pages/policies/PolicyBindingForm.ts msgid "Successfully updated binding." msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairForm.ts msgid "Successfully updated certificate-key pair." msgstr "" -#: +#: src/pages/user-settings/UserDetailsPage.ts msgid "Successfully updated details." msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorWebAuthn.ts msgid "Successfully updated device." msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Successfully updated flow." msgstr "" -#: +#: src/pages/groups/GroupForm.ts msgid "Successfully updated group." msgstr "" -#: +#: src/pages/stages/invitation/InvitationForm.ts msgid "Successfully updated invitation." msgstr "" -#: -#: -#: +#: src/pages/property-mappings/PropertyMappingLDAPForm.ts +#: src/pages/property-mappings/PropertyMappingSAMLForm.ts +#: src/pages/property-mappings/PropertyMappingScopeForm.ts msgid "Successfully updated mapping." msgstr "" -#: +#: src/pages/outposts/OutpostForm.ts msgid "Successfully updated outpost." msgstr "" -#: -#: -#: -#: -#: -#: -#: +#: src/pages/policies/dummy/DummyPolicyForm.ts +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts +#: src/pages/policies/expiry/ExpiryPolicyForm.ts +#: src/pages/policies/expression/ExpressionPolicyForm.ts +#: src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts +#: src/pages/policies/password/PasswordPolicyForm.ts +#: src/pages/policies/reputation/ReputationPolicyForm.ts msgid "Successfully updated policy." msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Successfully updated prompt." msgstr "" -#: -#: -#: -#: +#: src/pages/providers/ldap/LDAPProviderForm.ts +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts +#: src/pages/providers/proxy/ProxyProviderForm.ts +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Successfully updated provider." msgstr "" -#: +#: src/pages/events/RuleForm.ts msgid "Successfully updated rule." msgstr "" -#: -#: +#: src/pages/outposts/ServiceConnectionDockerForm.ts +#: src/pages/outposts/ServiceConnectionKubernetesForm.ts msgid "Successfully updated service-connection." msgstr "" -#: -#: -#: -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Successfully updated source." msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts +#: src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts +#: src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts +#: src/pages/stages/authenticator_webauthn/AuthenticateWebAuthnStageForm.ts +#: src/pages/stages/captcha/CaptchaStageForm.ts +#: src/pages/stages/consent/ConsentStageForm.ts +#: src/pages/stages/deny/DenyStageForm.ts +#: src/pages/stages/dummy/DummyStageForm.ts +#: src/pages/stages/email/EmailStageForm.ts +#: src/pages/stages/identification/IdentificationStageForm.ts +#: src/pages/stages/invitation/InvitationStageForm.ts +#: src/pages/stages/password/PasswordStageForm.ts +#: src/pages/stages/prompt/PromptStageForm.ts +#: src/pages/stages/user_delete/UserDeleteStageForm.ts +#: src/pages/stages/user_login/UserLoginStageForm.ts +#: src/pages/stages/user_logout/UserLogoutStageForm.ts +#: src/pages/stages/user_write/UserWriteStageForm.ts msgid "Successfully updated stage." msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Successfully updated tenant." msgstr "" -#: +#: src/pages/user-settings/tokens/UserTokenForm.ts msgid "Successfully updated token." msgstr "" -#: +#: src/pages/events/TransportForm.ts msgid "Successfully updated transport." msgstr "" -#: +#: src/pages/users/UserForm.ts msgid "Successfully updated user." msgstr "" -#: +#: src/pages/users/UserActiveForm.ts msgid "Successfully updated {0} {1}" msgstr "" -#: +#: src/pages/users/UserViewPage.ts msgid "Superuser" msgstr "" -#: +#: src/pages/groups/GroupListPage.ts msgid "Superuser privileges?" msgstr "" -#: +#: src/pages/admin-overview/charts/GroupCountStatusChart.ts msgid "Superuser-groups" msgstr "" -#: +#: src/pages/admin-overview/charts/UserCountStatusChart.ts msgid "Superusers" msgstr "" -#: +#: src/pages/policies/password/PasswordPolicyForm.ts msgid "Symbol charset" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceViewPage.ts msgid "Sync" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Sync groups" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceViewPage.ts msgid "Sync status" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "Sync users" msgstr "" -#: +#: src/pages/admin-overview/AdminOverviewPage.ts msgid "System Overview" msgstr "" -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/system-tasks/SystemTaskListPage.ts msgid "System Tasks" msgstr "" -#: +#: src/pages/outposts/ServiceConnectionDockerForm.ts msgid "TLS Authentication Certificate" msgstr "" -#: +#: src/pages/outposts/ServiceConnectionDockerForm.ts msgid "TLS Verification Certificate" msgstr "" -#: +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts msgid "TOTP Authenticators" msgstr "" -#: +#: src/pages/flows/StageBindingForm.ts msgid "Target" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceViewPage.ts msgid "Task finished with errors" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceViewPage.ts msgid "Task finished with warnings" msgstr "" -#: +#: src/pages/stages/email/EmailStageForm.ts msgid "Template" msgstr "" -#: -#: +#: src/pages/events/EventListPage.ts +#: src/pages/tenants/TenantListPage.ts msgid "Tenant" msgstr "" -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/tenants/TenantListPage.ts msgid "Tenants" msgstr "" -#: -#: -#: -#: -#: -#: +#: src/pages/applications/ApplicationViewPage.ts +#: src/pages/events/TransportListPage.ts +#: src/pages/policies/PolicyListPage.ts +#: src/pages/policies/PolicyListPage.ts +#: src/pages/property-mappings/PropertyMappingListPage.ts +#: src/pages/property-mappings/PropertyMappingListPage.ts msgid "Test" msgstr "" -#: +#: src/pages/policies/PolicyListPage.ts msgid "Test Policy" msgstr "" -#: +#: src/pages/property-mappings/PropertyMappingListPage.ts msgid "Test Property Mapping" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Text: Simple Text input" msgstr "" -#: +#: src/elements/router/Router404.ts msgid "The URL \"{0}\" was not found." msgstr "" -#: -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "The external URL you'll access the application at. Include any non-standard port." msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "The external URL you'll authenticate at. Can be the same domain as authentik." msgstr "" -#: +#: src/elements/forms/DeleteForm.ts msgid "The following objects use {objName}" msgstr "" -#: +#: src/pages/policies/reputation/ReputationPolicyForm.ts msgid "" "The policy passes when the reputation score is above the threshold, and\n" "doesn't pass when either or both of the selected options are equal or less than the\n" "threshold." msgstr "" -#: +#: src/pages/policies/dummy/DummyPolicyForm.ts msgid "The policy takes a random time to execute. This controls the minimum time it will take." msgstr "" -#: +#: src/pages/flows/BoundStagesList.ts msgid "These bindings control if this stage will be applied to the flow." msgstr "" -#: +#: src/pages/events/RuleListPage.ts msgid "" "These bindings control upon which events this rule triggers. Bindings to\n" "groups/users are checked against the user of the event." msgstr "" -#: +#: src/pages/flows/FlowViewPage.ts msgid "These bindings control which users can access this flow." msgstr "" -#: -#: -#: +#: src/pages/sources/oauth/OAuthSourceViewPage.ts +#: src/pages/sources/plex/PlexSourceViewPage.ts +#: src/pages/sources/saml/SAMLSourceViewPage.ts msgid "" "These bindings control which users can access this source.\n" "You can only use policies here as access is checked before the user is authenticated." msgstr "" -#: +#: src/pages/applications/ApplicationViewPage.ts msgid "These policies control which users can access this application." msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "This provider will behave like a transparent reverse-proxy, except requests must be authenticated. If your upstream application uses HTTPS, make sure to connect to the outpost using HTTPS as well." msgstr "" -#: +#: src/pages/stages/invitation/InvitationStageForm.ts msgid "This stage can be included in enrollment flows to accept invitations." msgstr "" -#: +#: src/pages/stages/captcha/CaptchaStageForm.ts msgid "This stage checks the user's current session against the Google reCaptcha service." msgstr "" -#: +#: src/pages/policies/reputation/ReputationPolicyForm.ts msgid "Threshold" msgstr "" -#: +#: src/pages/stages/email/EmailStageForm.ts msgid "Time in minutes the token sent is valid." msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. (Format: hours=1;minutes=2;seconds=3)." msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorTOTP.ts msgid "Time-based One-Time Passwords" msgstr "" -#: -#: -#: +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/PolicyBindingForm.ts +#: src/pages/stages/email/EmailStageForm.ts msgid "Timeout" msgstr "" -#: -#: +#: src/pages/flows/FlowForm.ts +#: src/pages/tenants/TenantForm.ts msgid "Title" msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "To" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "To use SSL instead, use 'ldaps://' and disable this option." msgstr "" -#: -#: +#: src/pages/tokens/TokenListPage.ts +#: src/pages/user-settings/tokens/UserTokenList.ts msgid "Token" msgstr "" -#: -#: +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/sources/oauth/OAuthSourceViewPage.ts msgid "Token URL" msgstr "" -#: +#: src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts msgid "Token count" msgstr "" -#: +#: src/pages/stages/email/EmailStageForm.ts msgid "Token expiry" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Token validity" msgstr "" -#: -#: -#: -#: +#: src/flows/stages/authenticator_static/AuthenticatorStaticStage.ts +#: src/interfaces/AdminInterface.ts +#: src/pages/tokens/TokenListPage.ts +#: src/pages/user-settings/UserSettingsPage.ts msgid "Tokens" msgstr "" -#: +#: src/pages/tokens/TokenListPage.ts msgid "Tokens are used throughout authentik for Email validation stages, Recovery keys and API access." msgstr "" -#: +#: src/pages/admin-overview/charts/FlowStatusChart.ts msgid "Total flows" msgstr "" -#: +#: src/pages/admin-overview/charts/GroupCountStatusChart.ts msgid "Total groups" msgstr "" -#: +#: src/pages/admin-overview/charts/PolicyStatusChart.ts msgid "Total policies" msgstr "" -#: +#: src/pages/admin-overview/charts/UserCountStatusChart.ts msgid "Total users" msgstr "" -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts msgid "Traditional authenticator" msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Transient" msgstr "" -#: +#: src/pages/events/RuleForm.ts msgid "Transports" msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/pages/flows/BoundStagesList.ts +#: src/pages/outposts/OutpostForm.ts +#: src/pages/outposts/ServiceConnectionListPage.ts +#: src/pages/policies/PolicyListPage.ts +#: src/pages/property-mappings/PropertyMappingListPage.ts +#: src/pages/providers/ProviderListPage.ts +#: src/pages/sources/SourcesListPage.ts +#: src/pages/stages/prompt/PromptForm.ts +#: src/pages/stages/prompt/PromptListPage.ts msgid "Type" msgstr "" -#: +#: src/pages/applications/ApplicationForm.ts msgid "UI settings" msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "UID" msgstr "" -#: -#: +#: src/flows/stages/identification/IdentificationStage.ts +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "UPN" msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts msgid "URL settings" msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "URL that the initial Login request is sent to." msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts msgid "URL the user is redirect to to consent the authorization." msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts msgid "URL used by authentik to get user information." msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts msgid "URL used by authentik to retrieve tokens." msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts msgid "URL used to request the initial token. This URL is only required for OAuth 1." msgstr "" -#: +#: src/pages/admin-overview/charts/PolicyStatusChart.ts msgid "Unbound policies" msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Unenrollment" msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Unenrollment flow" msgstr "" -#: +#: src/pages/outposts/ServiceConnectionListPage.ts msgid "Unhealthy" msgstr "" -#: +#: src/pages/admin-overview/charts/OutpostStatusChart.ts msgid "Unhealthy outposts" msgstr "" -#: +#: src/pages/system-tasks/SystemTaskListPage.ts msgid "Unknown" msgstr "" -#: +#: src/pages/outposts/OutpostListPage.ts msgid "Unmanaged" msgstr "" -#: +#: src/pages/admin-overview/charts/LDAPSyncStatusChart.ts msgid "Unsynced sources" msgstr "" -#: +#: src/pages/admin-overview/cards/VersionStatusCard.ts msgid "Up-to-date!" msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/pages/applications/ApplicationListPage.ts +#: src/pages/applications/ApplicationViewPage.ts +#: src/pages/crypto/CertificateKeyPairListPage.ts +#: src/pages/events/RuleListPage.ts +#: src/pages/events/TransportListPage.ts +#: src/pages/flows/BoundStagesList.ts +#: src/pages/flows/BoundStagesList.ts +#: src/pages/flows/FlowListPage.ts +#: src/pages/groups/GroupListPage.ts +#: src/pages/outposts/OutpostListPage.ts +#: src/pages/outposts/ServiceConnectionListPage.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/PolicyListPage.ts +#: src/pages/property-mappings/PropertyMappingListPage.ts +#: src/pages/providers/ProviderListPage.ts +#: src/pages/providers/ldap/LDAPProviderViewPage.ts +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts +#: src/pages/providers/proxy/ProxyProviderViewPage.ts +#: src/pages/providers/saml/SAMLProviderViewPage.ts +#: src/pages/sources/SourcesListPage.ts +#: src/pages/sources/ldap/LDAPSourceViewPage.ts +#: src/pages/sources/oauth/OAuthSourceViewPage.ts +#: src/pages/sources/plex/PlexSourceViewPage.ts +#: src/pages/sources/saml/SAMLSourceViewPage.ts +#: src/pages/stages/StageListPage.ts +#: src/pages/stages/prompt/PromptListPage.ts +#: src/pages/tenants/TenantListPage.ts +#: src/pages/user-settings/UserDetailsPage.ts +#: src/pages/user-settings/settings/UserSettingsAuthenticatorWebAuthn.ts +#: src/pages/user-settings/settings/UserSettingsAuthenticatorWebAuthn.ts +#: src/pages/user-settings/settings/UserSettingsAuthenticatorWebAuthn.ts +#: src/pages/user-settings/tokens/UserTokenList.ts +#: src/pages/users/UserActiveForm.ts +#: src/pages/users/UserListPage.ts +#: src/pages/users/UserViewPage.ts msgid "Update" msgstr "" -#: -#: +#: src/pages/applications/ApplicationListPage.ts +#: src/pages/applications/ApplicationViewPage.ts msgid "Update Application" msgstr "" -#: +#: src/pages/policies/BoundPoliciesList.ts msgid "Update Binding" msgstr "" -#: +#: src/pages/crypto/CertificateKeyPairListPage.ts msgid "Update Certificate-Key Pair" msgstr "" -#: +#: src/pages/flows/FlowListPage.ts msgid "Update Flow" msgstr "" -#: -#: +#: src/pages/groups/GroupListPage.ts +#: src/pages/policies/BoundPoliciesList.ts msgid "Update Group" msgstr "" -#: +#: src/pages/providers/ldap/LDAPProviderViewPage.ts msgid "Update LDAP Provider" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceViewPage.ts msgid "Update LDAP Source" msgstr "" -#: +#: src/pages/events/RuleListPage.ts msgid "Update Notification Rule" msgstr "" -#: +#: src/pages/events/TransportListPage.ts msgid "Update Notification Transport" msgstr "" -#: +#: src/pages/sources/oauth/OAuthSourceViewPage.ts msgid "Update OAuth Source" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts msgid "Update OAuth2 Provider" msgstr "" -#: +#: src/pages/outposts/OutpostListPage.ts msgid "Update Outpost" msgstr "" -#: +#: src/pages/sources/plex/PlexSourceViewPage.ts msgid "Update Plex Source" msgstr "" -#: +#: src/pages/stages/prompt/PromptListPage.ts msgid "Update Prompt" msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderViewPage.ts msgid "Update Proxy Provider" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderViewPage.ts msgid "Update SAML Provider" msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceViewPage.ts msgid "Update SAML Source" msgstr "" -#: +#: src/pages/flows/BoundStagesList.ts msgid "Update Stage binding" msgstr "" -#: +#: src/pages/tenants/TenantListPage.ts msgid "Update Tenant" msgstr "" -#: +#: src/pages/user-settings/tokens/UserTokenList.ts msgid "Update Token" msgstr "" -#: -#: -#: +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/users/UserListPage.ts +#: src/pages/users/UserViewPage.ts msgid "Update User" msgstr "" -#: +#: src/pages/user-settings/UserDetailsPage.ts msgid "Update details" msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/pages/flows/BoundStagesList.ts +#: src/pages/outposts/ServiceConnectionListPage.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/PolicyListPage.ts +#: src/pages/property-mappings/PropertyMappingListPage.ts +#: src/pages/providers/ProviderListPage.ts +#: src/pages/sources/SourcesListPage.ts +#: src/pages/stages/StageListPage.ts +#: src/pages/users/UserActiveForm.ts msgid "Update {0}" msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Upstream host that the requests are forwarded to." msgstr "" -#: +#: src/pages/stages/email/EmailStageForm.ts msgid "Use SSL" msgstr "" -#: +#: src/pages/stages/email/EmailStageForm.ts msgid "Use TLS" msgstr "" -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts msgid "Use a code-based authenticator." msgstr "" -#: +#: src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts msgid "Use a security key to prove your identity." msgstr "" -#: +#: src/pages/stages/email/EmailStageForm.ts msgid "Use global settings" msgstr "" -#: -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts msgid "Use the user's email address, but deny enrollment when the email address already exists." msgstr "" -#: -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts msgid "Use the user's username, but deny enrollment when the username already exists." msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /akprox must be routed to the outpost (when using a manged outpost, this is done for you)." msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application." msgstr "" -#: +#: src/pages/tenants/TenantForm.ts msgid "Use this tenant for each domain that doesn't have a dedicated tenant." msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/elements/events/ObjectChangelog.ts +#: src/elements/events/UserEvents.ts +#: src/pages/applications/ApplicationCheckAccessForm.ts +#: src/pages/events/EventInfo.ts +#: src/pages/events/EventListPage.ts +#: src/pages/policies/PolicyBindingForm.ts +#: src/pages/policies/PolicyBindingForm.ts +#: src/pages/policies/PolicyTestForm.ts +#: src/pages/property-mappings/PropertyMappingTestForm.ts +#: src/pages/tokens/TokenListPage.ts +#: src/pages/user-settings/tokens/UserTokenList.ts +#: src/pages/users/UserListPage.ts +#: src/pages/users/UserListPage.ts msgid "User" msgstr "" -#: +#: src/pages/users/UserViewPage.ts msgid "User Info" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "User Property Mappings" msgstr "" -#: -#: +#: src/pages/policies/reputation/UserReputationListPage.ts +#: src/pages/policies/reputation/UserReputationListPage.ts msgid "User Reputation" msgstr "" -#: +#: src/pages/user-settings/UserSettingsPage.ts msgid "User Settings" msgstr "" -#: +#: src/pages/user-settings/UserSettingsPage.ts msgid "User details" msgstr "" -#: +#: src/pages/users/UserViewPage.ts msgid "User events" msgstr "" -#: +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "User fields" msgstr "" -#: -#: +#: src/pages/sources/oauth/OAuthSourceForm.ts +#: src/pages/sources/plex/PlexSourceForm.ts msgid "User matching mode" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "User object filter" msgstr "" -#: +#: src/pages/sources/ldap/LDAPSourceForm.ts msgid "User password writeback" msgstr "" -#: -#: +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/users/UserViewPage.ts msgid "User {0}" msgstr "" -#: +#: src/flows/FormStatic.ts msgid "User's avatar" msgstr "" -#: -#: +#: src/pages/user-settings/UserDetailsPage.ts +#: src/pages/users/UserForm.ts msgid "User's display name." msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "User/Group Attribute used for the password part of the HTTP-Basic Header." msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "User/Group Attribute used for the user part of the HTTP-Basic Header. If not set, the user's Email address is used." msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts msgid "Userinfo URL" msgstr "" -#: -#: -#: -#: -#: -#: +#: src/flows/stages/identification/IdentificationStage.ts +#: src/pages/policies/reputation/UserReputationListPage.ts +#: src/pages/stages/identification/IdentificationStageForm.ts +#: src/pages/user-settings/UserDetailsPage.ts +#: src/pages/users/UserForm.ts +#: src/pages/users/UserViewPage.ts msgid "Username" msgstr "" -#: +#: src/pages/stages/prompt/PromptForm.ts msgid "Username: Same as Text input, but checks for and prevents duplicate usernames." msgstr "" -#: -#: -#: +#: src/interfaces/AdminInterface.ts +#: src/pages/admin-overview/AdminOverviewPage.ts +#: src/pages/users/UserListPage.ts msgid "Users" msgstr "" -#: +#: src/pages/groups/GroupForm.ts msgid "Users added to this group will be superusers." msgstr "" -#: +#: src/pages/providers/ldap/LDAPProviderForm.ts msgid "Users in the selected group can do search queries. If no group is selected, no LDAP Searches are allowed." msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "Using flow" msgstr "" -#: +#: src/pages/events/EventInfo.ts msgid "Using source" msgstr "" -#: +#: src/pages/providers/oauth2/OAuth2ProviderForm.ts msgid "Valid redirect URLs after a successful authorization flow. Also specify any origins here for Implicit flows." msgstr "" -#: +#: src/pages/providers/proxy/ProxyProviderForm.ts msgid "Validate SSL Certificates of upstream servers." msgstr "" -#: +#: src/pages/stages/password/PasswordStageForm.ts msgid "Validate the user's password against the selected backend(s)." msgstr "" -#: +#: src/pages/stages/prompt/PromptStageForm.ts msgid "Validation Policies" msgstr "" -#: +#: src/pages/crypto/CertificateGenerateForm.ts msgid "Validity days" msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "Verification Certificate" msgstr "" -#: +#: src/pages/stages/email/EmailStageForm.ts msgid "Verify the user's email address by sending them a one-time-link. Can also be used for recovery to verify the user's authenticity." msgstr "" -#: +#: src/pages/admin-overview/AdminOverviewPage.ts msgid "Version" msgstr "" -#: +#: src/pages/outposts/OutpostHealth.ts msgid "Version: {0}" msgstr "" -#: +#: src/pages/outposts/OutpostListPage.ts msgid "View Deployment Info" msgstr "" -#: +#: src/pages/outposts/OutpostDeploymentModal.ts msgid "View deployment documentation" msgstr "" -#: +#: src/pages/flows/FlowForm.ts msgid "Visible in the URL." msgstr "" -#: +#: src/pages/policies/dummy/DummyPolicyForm.ts msgid "Wait (max)" msgstr "" -#: +#: src/pages/policies/dummy/DummyPolicyForm.ts msgid "Wait (min)" msgstr "" -#: -#: +#: src/pages/events/RuleForm.ts +#: src/pages/system-tasks/SystemTaskListPage.ts msgid "Warning" msgstr "" -#: +#: src/pages/policies/PolicyListPage.ts msgid "Warning: Policy is not assigned." msgstr "" -#: +#: src/pages/providers/ProviderListPage.ts msgid "Warning: Provider not assigned to any application." msgstr "" -#: +#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts msgid "WebAuthn Authenticators" msgstr "" -#: +#: src/pages/user-settings/settings/UserSettingsAuthenticatorWebAuthn.ts msgid "WebAuthn Devices" msgstr "" -#: +#: src/pages/events/TransportForm.ts msgid "Webhook (Slack/Discord)" msgstr "" -#: +#: src/pages/events/TransportForm.ts msgid "Webhook (generic)" msgstr "" -#: +#: src/pages/events/TransportForm.ts msgid "Webhook URL" msgstr "" -#: +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "When a valid username/email has been entered, and this option is enabled, the user's username and avatar will be shown. Otherwise, the text that the user entered will be shown." msgstr "" -#: +#: src/pages/stages/email/EmailStageForm.ts msgid "When enabled, global Email connection settings will be used and connection settings below will be ignored." msgstr "" -#: +#: src/pages/stages/invitation/InvitationForm.ts msgid "When enabled, the invitation will be deleted after usage." msgstr "" -#: +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "When enabled, user fields are matched regardless of their casing." msgstr "" -#: +#: src/pages/stages/identification/IdentificationStageForm.ts msgid "When selected, a password field is shown on the same page instead of a separate page. This prevents username enumeration attacks." msgstr "" -#: +#: src/pages/providers/saml/SAMLProviderForm.ts msgid "When selected, incoming assertion's Signatures will be validated against this certificate. To allow unsigned Requests, leave on default." msgstr "" -#: -#: -#: -#: -#: -#: -#: +#: src/pages/policies/dummy/DummyPolicyForm.ts +#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts +#: src/pages/policies/expiry/ExpiryPolicyForm.ts +#: src/pages/policies/expression/ExpressionPolicyForm.ts +#: src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts +#: src/pages/policies/password/PasswordPolicyForm.ts +#: src/pages/policies/reputation/ReputationPolicyForm.ts msgid "When this option is enabled, all executions of this policy will be logged. By default, only execution errors are logged." msgstr "" -#: +#: src/flows/FlowExecutor.ts msgid "Whoops!" msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "Windows" msgstr "" -#: +#: src/pages/admin-overview/AdminOverviewPage.ts msgid "Workers" msgstr "" -#: +#: src/pages/stages/user_write/UserWriteStageForm.ts msgid "" "Write any data from the flow's context's 'prompt_data' to the currently pending user. If no user\n" "is pending, a new user is created, and data is written to them." msgstr "" -#: +#: src/pages/sources/saml/SAMLSourceForm.ts msgid "X509 Subject" msgstr "" -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: -#: +#: src/elements/oauth/UserRefreshList.ts +#: src/pages/applications/ApplicationCheckAccessForm.ts +#: src/pages/crypto/CertificateKeyPairListPage.ts +#: src/pages/groups/GroupListPage.ts +#: src/pages/groups/MemberSelectModal.ts +#: src/pages/outposts/ServiceConnectionListPage.ts +#: src/pages/policies/BoundPoliciesList.ts +#: src/pages/policies/PolicyTestForm.ts +#: src/pages/providers/proxy/ProxyProviderViewPage.ts +#: src/pages/tenants/TenantListPage.ts +#: src/pages/tokens/TokenListPage.ts +#: src/pages/user-settings/tokens/UserTokenList.ts +#: src/pages/users/UserListPage.ts msgid "Yes" msgstr "" -#: +#: src/pages/outposts/OutpostForm.ts msgid "You can only select providers that match the type of the outpost." msgstr "" -#: +#: src/interfaces/AdminInterface.ts msgid "You're currently impersonating {0}. Click to stop." msgstr "" -#: +#: src/pages/stages/password/PasswordStageForm.ts msgid "authentik Builtin Database" msgstr "" -#: +#: src/pages/stages/password/PasswordStageForm.ts msgid "authentik LDAP Backend" msgstr "" -#: +#: src/elements/forms/DeleteForm.ts msgid "connecting object will be deleted" msgstr "" -#: +#: src/elements/Tabs.ts msgid "no tabs defined" msgstr "" -#: +#: src/elements/forms/DeleteForm.ts msgid "object will be DELETED" msgstr "" -#: +#: src/elements/forms/DeleteForm.ts msgid "reference will be reset to default value" msgstr "" -#: +#: src/elements/forms/DeleteForm.ts msgid "reference will be set to an empty value" msgstr "" -#: -#: +#: src/elements/Expand.ts +#: src/elements/Expand.ts msgid "{0}" msgstr "" -#: +#: src/pages/stages/prompt/PromptStageForm.ts msgid "{0} (\"{1}\", of type {2})" msgstr "" -#: +#: src/pages/stages/prompt/PromptStageForm.ts msgid "{0} ({1})" msgstr "" -#: +#: src/elements/forms/DeleteForm.ts msgid "{0} ({consequence})" msgstr "" -#: +#: src/elements/table/TablePagination.ts msgid "{0} - {1} of {2}" msgstr "" -#: +#: src/pages/admin-overview/cards/VersionStatusCard.ts msgid "{0} is available!" msgstr "" -#: +#: src/elements/notifications/NotificationDrawer.ts msgid "{0} unread" msgstr "" -#: +#: src/pages/outposts/OutpostHealth.ts msgid "{0}, should be {1}" msgstr "" -#: +#: src/elements/forms/ConfirmationForm.ts msgid "{0}: {1}" msgstr "" diff --git a/web/src/pages/providers/oauth2/OAuth2ProviderForm.ts b/web/src/pages/providers/oauth2/OAuth2ProviderForm.ts index 64c1f8e7c..95ed2303c 100644 --- a/web/src/pages/providers/oauth2/OAuth2ProviderForm.ts +++ b/web/src/pages/providers/oauth2/OAuth2ProviderForm.ts @@ -117,6 +117,9 @@ export class OAuth2ProviderFormPage extends ModelForm {

    ${t`Valid redirect URLs after a successful authorization flow. Also specify any origins here for Implicit flows.`}

    +

    + ${t`If no explicit redirect URIs are specified, any redirect URI is allowed.`} +

    diff --git a/website/docs/outposts/proxy/proxy.md b/website/docs/outposts/proxy/proxy.md index 367a148dd..481bc4beb 100644 --- a/website/docs/outposts/proxy/proxy.md +++ b/website/docs/outposts/proxy/proxy.md @@ -22,3 +22,13 @@ The outpost listens on both 4180 for HTTP and 4443 for HTTPS. :::info If your upstream host is HTTPS, and you're not using forward auth, you need to access the outpost over HTTPS too. ::: + +# Logging out + +Login is done automatically when you visit the domain without a valid cookie. + +When using single-application mode, navigate to `app.domain.tld/akprox/sign_out`. + +When using domain-level mode, navigate to `auth.domain.tld/akprox/sign_out`, where auth.domain.tld is the external host configured for the provider. + +To log out, navigate to `/akprox/sign_out`.