1 Commits

Author SHA1 Message Date
51fce32e9f Update dependency @mui/x-tree-view to ^8.9.0
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2025-07-26 00:14:58 +00:00
11 changed files with 382 additions and 550 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -12,42 +12,42 @@
"dependencies": { "dependencies": {
"@emotion/react": "^11.14.0", "@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.1", "@emotion/styled": "^11.14.1",
"@fontsource/roboto": "^5.2.8", "@fontsource/roboto": "^5.2.6",
"@fullcalendar/core": "^6.1.19", "@fullcalendar/core": "^6.1.18",
"@fullcalendar/daygrid": "^6.1.19", "@fullcalendar/daygrid": "^6.1.18",
"@fullcalendar/interaction": "^6.1.19", "@fullcalendar/interaction": "^6.1.18",
"@fullcalendar/list": "^6.1.19", "@fullcalendar/list": "^6.1.18",
"@fullcalendar/react": "^6.1.19", "@fullcalendar/react": "^6.1.18",
"@mdi/js": "^7.4.47", "@mdi/js": "^7.4.47",
"@mdi/react": "^1.6.1", "@mdi/react": "^1.6.1",
"@mui/icons-material": "^7.2.0", "@mui/icons-material": "^7.2.0",
"@mui/lab": "^7.0.0-beta.17", "@mui/lab": "^7.0.0-beta.14",
"@mui/material": "^7.2.0", "@mui/material": "^7.2.0",
"@mui/x-data-grid": "^8.14.0", "@mui/x-data-grid": "^8.9.1",
"@mui/x-date-pickers": "^8.14.0", "@mui/x-date-pickers": "^8.9.0",
"@mui/x-tree-view": "^8.11.3", "@mui/x-tree-view": "^8.9.0",
"date-and-time": "^3.6.0", "date-and-time": "^3.6.0",
"dayjs": "^1.11.18", "dayjs": "^1.11.13",
"email-validator": "^2.0.4", "email-validator": "^2.0.4",
"filesize": "^11.0.13", "filesize": "^11.0.2",
"jspdf": "^3.0.3", "jspdf": "^3.0.1",
"mui-color-input": "^7.0.0", "mui-color-input": "^7.0.0",
"react": "^19.2.0", "react": "^19.1.0",
"react-dom": "^19.2.0", "react-dom": "^19.1.0",
"react-easy-crop": "^5.5.3", "react-easy-crop": "^5.5.0",
"react-qr-code": "^2.0.18", "react-qr-code": "^2.0.18",
"react-router-dom": "^7.4.0", "react-router-dom": "^7.4.0",
"react-zoom-pan-pinch": "^3.7.0", "react-zoom-pan-pinch": "^3.7.0",
"svg2pdf.js": "^2.5.0" "svg2pdf.js": "^2.5.0"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^9.37.0", "@eslint/js": "^9.31.0",
"@types/react": "^19.2.2", "@types/react": "^19.1.8",
"@types/react-dom": "^19.2.1", "@types/react-dom": "^19.1.6",
"@vitejs/plugin-react": "^4.7.0", "@vitejs/plugin-react": "^4.7.0",
"eslint": "^9.36.0", "eslint": "^9.31.0",
"eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.23", "eslint-plugin-react-refresh": "^0.4.20",
"globals": "^16.3.0", "globals": "^16.3.0",
"typescript": "^5.8.3", "typescript": "^5.8.3",
"typescript-eslint": "^8.38.0", "typescript-eslint": "^8.38.0",

View File

@@ -137,10 +137,8 @@ function UsersTable(p: {
<GridActionsCellItem <GridActionsCellItem
icon={<SaveIcon />} icon={<SaveIcon />}
label="Save" label="Save"
material={{ sx={{
sx: { color: "primary.main",
color: 'primary.main',
},
}} }}
onClick={handleSaveClick(id)} onClick={handleSaveClick(id)}
/>, />,

View File

@@ -8,7 +8,7 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a"
dependencies = [ dependencies = [
"bitflags", "bitflags 2.9.0",
"bytes", "bytes",
"futures-core", "futures-core",
"futures-sink", "futures-sink",
@@ -45,7 +45,7 @@ dependencies = [
"actix-service", "actix-service",
"actix-utils", "actix-utils",
"base64", "base64",
"bitflags", "bitflags 2.9.0",
"brotli", "brotli",
"bytes", "bytes",
"bytestring", "bytestring",
@@ -323,6 +323,12 @@ version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
[[package]]
name = "android-tzdata"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
[[package]] [[package]]
name = "android_system_properties" name = "android_system_properties"
version = "0.1.5" version = "0.1.5"
@@ -384,9 +390,9 @@ dependencies = [
[[package]] [[package]]
name = "anyhow" name = "anyhow"
version = "1.0.100" version = "1.0.98"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487"
[[package]] [[package]]
name = "arbitrary" name = "arbitrary"
@@ -529,9 +535,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]] [[package]]
name = "bcrypt" name = "bcrypt"
version = "0.17.1" version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abaf6da45c74385272ddf00e1ac074c7d8a6c1a1dda376902bd6a427522a8b2c" checksum = "92758ad6077e4c76a6cadbce5005f666df70d4f13b19976b1a8062eef880040f"
dependencies = [ dependencies = [
"base64", "base64",
"blowfish", "blowfish",
@@ -546,6 +552,12 @@ version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61"
[[package]]
name = "bitflags"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "2.9.0" version = "2.9.0"
@@ -681,16 +693,17 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]] [[package]]
name = "chrono" name = "chrono"
version = "0.4.42" version = "0.4.41"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d"
dependencies = [ dependencies = [
"android-tzdata",
"iana-time-zone", "iana-time-zone",
"js-sys", "js-sys",
"num-traits", "num-traits",
"serde", "serde",
"wasm-bindgen", "wasm-bindgen",
"windows-link 0.2.0", "windows-link",
] ]
[[package]] [[package]]
@@ -715,9 +728,9 @@ dependencies = [
[[package]] [[package]]
name = "clap" name = "clap"
version = "4.5.48" version = "4.5.41"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9"
dependencies = [ dependencies = [
"clap_builder", "clap_builder",
"clap_derive", "clap_derive",
@@ -725,9 +738,9 @@ dependencies = [
[[package]] [[package]]
name = "clap_builder" name = "clap_builder"
version = "4.5.48" version = "4.5.41"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d"
dependencies = [ dependencies = [
"anstream", "anstream",
"anstyle", "anstyle",
@@ -737,9 +750,9 @@ dependencies = [
[[package]] [[package]]
name = "clap_derive" name = "clap_derive"
version = "4.5.47" version = "4.5.41"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491"
dependencies = [ dependencies = [
"heck", "heck",
"proc-macro2", "proc-macro2",
@@ -1016,7 +1029,7 @@ version = "2.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "229850a212cd9b84d4f0290ad9d294afc0ae70fccaa8949dbe8b43ffafa1e20c" checksum = "229850a212cd9b84d4f0290ad9d294afc0ae70fccaa8949dbe8b43ffafa1e20c"
dependencies = [ dependencies = [
"bitflags", "bitflags 2.9.0",
"byteorder", "byteorder",
"diesel_derives", "diesel_derives",
"itoa", "itoa",
@@ -1234,26 +1247,6 @@ version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
[[package]]
name = "fax"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab"
dependencies = [
"fax_derive",
]
[[package]]
name = "fax_derive"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "fdeflate" name = "fdeflate"
version = "0.3.7" version = "0.3.7"
@@ -1435,7 +1428,7 @@ dependencies = [
"serde_with", "serde_with",
"sha2", "sha2",
"tempfile", "tempfile",
"thiserror 2.0.17", "thiserror 2.0.12",
"uuid", "uuid",
"zip", "zip",
] ]
@@ -1962,9 +1955,9 @@ dependencies = [
[[package]] [[package]]
name = "image" name = "image"
version = "0.25.8" version = "0.25.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7" checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a"
dependencies = [ dependencies = [
"bytemuck", "bytemuck",
"byteorder-lite", "byteorder-lite",
@@ -1972,7 +1965,6 @@ dependencies = [
"exr", "exr",
"gif", "gif",
"image-webp", "image-webp",
"moxcms",
"num-traits", "num-traits",
"png", "png",
"qoi", "qoi",
@@ -2054,7 +2046,7 @@ version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013"
dependencies = [ dependencies = [
"bitflags", "bitflags 2.9.0",
"cfg-if", "cfg-if",
"libc", "libc",
] ]
@@ -2130,6 +2122,12 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "jpeg-decoder"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
[[package]] [[package]]
name = "js-sys" name = "js-sys"
version = "0.3.77" version = "0.3.77"
@@ -2183,9 +2181,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
[[package]] [[package]]
name = "lettre" name = "lettre"
version = "0.11.19" version = "0.11.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e13e10e8818f8b2a60f52cb127041d388b89f3a96a62be9ceaffa22262fef7f" checksum = "cb2a0354e9ece2fcdcf9fa53417f6de587230c0c248068eb058fa26c4a753179"
dependencies = [ dependencies = [
"base64", "base64",
"chumsky", "chumsky",
@@ -2201,7 +2199,7 @@ dependencies = [
"nom 8.0.0", "nom 8.0.0",
"percent-encoding", "percent-encoding",
"quoted_printable", "quoted_printable",
"socket2 0.6.0", "socket2 0.5.8",
"tokio", "tokio",
"url", "url",
] ]
@@ -2254,7 +2252,7 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
dependencies = [ dependencies = [
"bitflags", "bitflags 2.9.0",
"libc", "libc",
] ]
@@ -2328,9 +2326,9 @@ checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e"
[[package]] [[package]]
name = "log" name = "log"
version = "0.4.28" version = "0.4.27"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
[[package]] [[package]]
name = "loop9" name = "loop9"
@@ -2343,9 +2341,9 @@ dependencies = [
[[package]] [[package]]
name = "mailchecker" name = "mailchecker"
version = "6.0.18" version = "6.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf91b5ebc7779f9dd9c59082f569f93b0b6f01cc80dc185bb79146f6ec32e25a" checksum = "db3c69370540384985601e4adbbbc3046a658853e4909a4bd744bb390f6f9759"
dependencies = [ dependencies = [
"fast_chemail", "fast_chemail",
"once_cell", "once_cell",
@@ -2458,16 +2456,6 @@ dependencies = [
"windows-sys 0.52.0", "windows-sys 0.52.0",
] ]
[[package]]
name = "moxcms"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddd32fa8935aeadb8a8a6b6b351e40225570a37c43de67690383d87ef170cd08"
dependencies = [
"num-traits",
"pxfm",
]
[[package]] [[package]]
name = "native-tls" name = "native-tls"
version = "0.2.14" version = "0.2.14"
@@ -2593,7 +2581,7 @@ version = "0.10.71"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd"
dependencies = [ dependencies = [
"bitflags", "bitflags 2.9.0",
"cfg-if", "cfg-if",
"foreign-types", "foreign-types",
"libc", "libc",
@@ -2754,11 +2742,11 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
[[package]] [[package]]
name = "png" name = "png"
version = "0.18.0" version = "0.17.16"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526"
dependencies = [ dependencies = [
"bitflags", "bitflags 1.3.2",
"crc32fast", "crc32fast",
"fdeflate", "fdeflate",
"flate2", "flate2",
@@ -2862,15 +2850,6 @@ dependencies = [
"cc", "cc",
] ]
[[package]]
name = "pxfm"
version = "0.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "376f733579ac4d3b9fbf0afca99bf8f6b698d541118affca554d0b86f73c2470"
dependencies = [
"num-traits",
]
[[package]] [[package]]
name = "qoi" name = "qoi"
version = "0.4.1" version = "0.4.1"
@@ -3013,9 +2992,9 @@ dependencies = [
[[package]] [[package]]
name = "ravif" name = "ravif"
version = "0.11.20" version = "0.11.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5825c26fddd16ab9f515930d49028a630efec172e903483c94796cfe31893e6b" checksum = "2413fd96bd0ea5cdeeb37eaf446a22e6ed7b981d792828721e74ded1980a45c6"
dependencies = [ dependencies = [
"avif-serialize", "avif-serialize",
"imgref", "imgref",
@@ -3048,9 +3027,9 @@ dependencies = [
[[package]] [[package]]
name = "redis" name = "redis"
version = "0.32.7" version = "0.32.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "014cc767fefab6a3e798ca45112bccad9c6e0e218fbd49720042716c73cfef44" checksum = "e1f66bf4cac9733a23bcdf1e0e01effbaaad208567beba68be8f67e5f4af3ee1"
dependencies = [ dependencies = [
"combine", "combine",
"itoa", "itoa",
@@ -3068,7 +3047,7 @@ version = "0.5.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1"
dependencies = [ dependencies = [
"bitflags", "bitflags 2.9.0",
] ]
[[package]] [[package]]
@@ -3282,7 +3261,7 @@ version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96"
dependencies = [ dependencies = [
"bitflags", "bitflags 2.9.0",
"errno", "errno",
"libc", "libc",
"linux-raw-sys", "linux-raw-sys",
@@ -3402,7 +3381,7 @@ version = "2.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
dependencies = [ dependencies = [
"bitflags", "bitflags 2.9.0",
"core-foundation", "core-foundation",
"core-foundation-sys", "core-foundation-sys",
"libc", "libc",
@@ -3427,28 +3406,18 @@ checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.228" version = "1.0.219"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
dependencies = [
"serde_core",
"serde_derive",
]
[[package]]
name = "serde_core"
version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.228" version = "1.0.219"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@@ -3457,15 +3426,14 @@ dependencies = [
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.145" version = "1.0.141"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3"
dependencies = [ dependencies = [
"itoa", "itoa",
"memchr", "memchr",
"ryu", "ryu",
"serde", "serde",
"serde_core",
] ]
[[package]] [[package]]
@@ -3714,7 +3682,7 @@ version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b"
dependencies = [ dependencies = [
"bitflags", "bitflags 2.9.0",
"core-foundation", "core-foundation",
"system-configuration-sys", "system-configuration-sys",
] ]
@@ -3783,11 +3751,11 @@ dependencies = [
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "2.0.17" version = "2.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
dependencies = [ dependencies = [
"thiserror-impl 2.0.17", "thiserror-impl 2.0.12",
] ]
[[package]] [[package]]
@@ -3803,9 +3771,9 @@ dependencies = [
[[package]] [[package]]
name = "thiserror-impl" name = "thiserror-impl"
version = "2.0.17" version = "2.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@@ -3814,16 +3782,13 @@ dependencies = [
[[package]] [[package]]
name = "tiff" name = "tiff"
version = "0.10.3" version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f" checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
dependencies = [ dependencies = [
"fax",
"flate2", "flate2",
"half", "jpeg-decoder",
"quick-error",
"weezl", "weezl",
"zune-jpeg",
] ]
[[package]] [[package]]
@@ -4262,9 +4227,9 @@ dependencies = [
[[package]] [[package]]
name = "weezl" name = "weezl"
version = "0.1.10" version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
[[package]] [[package]]
name = "winapi" name = "winapi"
@@ -4313,12 +4278,6 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"
[[package]]
name = "windows-link"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65"
[[package]] [[package]]
name = "windows-registry" name = "windows-registry"
version = "0.4.0" version = "0.4.0"
@@ -4336,7 +4295,7 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252"
dependencies = [ dependencies = [
"windows-link 0.1.1", "windows-link",
] ]
[[package]] [[package]]
@@ -4345,7 +4304,7 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319"
dependencies = [ dependencies = [
"windows-link 0.1.1", "windows-link",
] ]
[[package]] [[package]]
@@ -4509,7 +4468,7 @@ version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
dependencies = [ dependencies = [
"bitflags", "bitflags 2.9.0",
] ]
[[package]] [[package]]
@@ -4743,9 +4702,9 @@ dependencies = [
[[package]] [[package]]
name = "zune-jpeg" name = "zune-jpeg"
version = "0.4.21" version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713" checksum = "99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028"
dependencies = [ dependencies = [
"zune-core", "zune-core",
] ]

View File

@@ -6,12 +6,12 @@ edition = "2024"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
log = "0.4.28" log = "0.4.27"
env_logger = "0.11.8" env_logger = "0.11.8"
clap = { version = "4.5.48", features = ["derive", "env"] } clap = { version = "4.5.41", features = ["derive", "env"] }
lazy_static = "1.5.0" lazy_static = "1.5.0"
lazy-regex = "3.4.1" lazy-regex = "3.4.1"
anyhow = "1.0.100" anyhow = "1.0.98"
actix-web = "4.11.0" actix-web = "4.11.0"
actix-cors = "0.7.1" actix-cors = "0.7.1"
actix-multipart = "0.7.2" actix-multipart = "0.7.2"
@@ -19,20 +19,20 @@ actix-remote-ip = "0.1.0"
futures-util = "0.3.31" futures-util = "0.3.31"
diesel = { version = "2.2.12", features = ["postgres"] } diesel = { version = "2.2.12", features = ["postgres"] }
diesel_migrations = "2.2.0" diesel_migrations = "2.2.0"
serde = { version = "1.0.228", features = ["derive"] } serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1.0.145" serde_json = "1.0.141"
mailchecker = "6.0.18" mailchecker = "6.0.17"
redis = "0.32.7" redis = "0.32.4"
lettre = "0.11.19" lettre = "0.11.17"
rand = "0.9.2" rand = "0.9.2"
bcrypt = "0.17.1" bcrypt = "0.17.0"
light-openid = "1.0.4" light-openid = "1.0.4"
thiserror = "2.0.17" thiserror = "2.0.12"
serde_with = "3.14.0" serde_with = "3.14.0"
rust_iso3166 = "0.1.14" rust_iso3166 = "0.1.14"
rust-s3 = "0.35.1" rust-s3 = "0.35.1"
sha2 = "0.10.9" sha2 = "0.10.9"
image = "0.25.8" image = "0.25.6"
uuid = { version = "1.17.0", features = ["v4"] } uuid = { version = "1.17.0", features = ["v4"] }
httpdate = "1.0.3" httpdate = "1.0.3"
zip = "4.3.0" zip = "4.3.0"
@@ -40,4 +40,4 @@ mime_guess = "2.0.5"
tempfile = "3.20.0" tempfile = "3.20.0"
base64 = "0.22.1" base64 = "0.22.1"
ical = { version = "0.11.0", features = ["generator", "ical", "vcard"] } ical = { version = "0.11.0", features = ["generator", "ical", "vcard"] }
chrono = "0.4.42" chrono = "0.4.41"

View File

@@ -34,16 +34,18 @@ impl AccommodationRequest {
} }
accommodation.name = self.name; accommodation.name = self.name;
if let Some(d) = &self.description if let Some(d) = &self.description {
&& !c.accommodation_description_len.validate(d) { if !c.accommodation_description_len.validate(d) {
return Err(AccommodationListControllerErr::InvalidDescriptionLength.into()); return Err(AccommodationListControllerErr::InvalidDescriptionLength.into());
} }
}
accommodation.description.clone_from(&self.description); accommodation.description.clone_from(&self.description);
if let Some(c) = &self.color if let Some(c) = &self.color {
&& !lazy_regex::regex!("[a-fA-F0-9]{6}").is_match(c) { if !lazy_regex::regex!("[a-fA-F0-9]{6}").is_match(c) {
return Err(AccommodationListControllerErr::MalformedColor.into()); return Err(AccommodationListControllerErr::MalformedColor.into());
} }
}
accommodation.color.clone_from(&self.color); accommodation.color.clone_from(&self.color);
accommodation.need_validation = self.need_validation; accommodation.need_validation = self.need_validation;

View File

@@ -48,20 +48,23 @@ impl CoupleRequest {
} }
} }
if let Some(husband) = self.husband if let Some(husband) = self.husband {
&& !members_service::exists(couple.family_id(), husband).await? { if !members_service::exists(couple.family_id(), husband).await? {
return Err(CoupleControllerErr::HusbandNotExisting.into()); return Err(CoupleControllerErr::HusbandNotExisting.into());
} }
}
if let Some(d) = &self.wedding if let Some(d) = &self.wedding {
&& !d.check() { if !d.check() {
return Err(CoupleControllerErr::MalformedDateOfWedding.into()); return Err(CoupleControllerErr::MalformedDateOfWedding.into());
} }
}
if let Some(d) = &self.divorce if let Some(d) = &self.divorce {
&& !d.check() { if !d.check() {
return Err(CoupleControllerErr::MalformedDateOfDivorce.into()); return Err(CoupleControllerErr::MalformedDateOfDivorce.into());
} }
}
couple.set_wife(self.wife); couple.set_wife(self.wife);
couple.set_husband(self.husband); couple.set_husband(self.husband);

View File

@@ -95,10 +95,11 @@ fn check_opt_str_val(
c: SizeConstraint, c: SizeConstraint,
err: MemberControllerErr, err: MemberControllerErr,
) -> anyhow::Result<()> { ) -> anyhow::Result<()> {
if let Some(v) = val if let Some(v) = val {
&& !c.validate(v) { if !c.validate(v) {
return Err(err.into()); return Err(err.into());
} }
}
Ok(()) Ok(())
} }
@@ -150,10 +151,11 @@ impl MemberRequest {
MemberControllerErr::MalformedEmailAddress, MemberControllerErr::MalformedEmailAddress,
)?; )?;
if let Some(mail) = &self.email if let Some(mail) = &self.email {
&& !mailchecker::is_valid(mail) { if !mailchecker::is_valid(mail) {
return Err(MemberControllerErr::InvalidEmailAddress.into()); return Err(MemberControllerErr::InvalidEmailAddress.into());
} }
}
check_opt_str_val( check_opt_str_val(
&self.phone, &self.phone,
@@ -185,20 +187,23 @@ impl MemberRequest {
MemberControllerErr::MalformedCountry, MemberControllerErr::MalformedCountry,
)?; )?;
if let Some(c) = &self.country if let Some(c) = &self.country {
&& !countries_utils::is_code_valid(c) { if !countries_utils::is_code_valid(c) {
return Err(MemberControllerErr::InvalidCountryCode.into()); return Err(MemberControllerErr::InvalidCountryCode.into());
} }
}
if let Some(d) = &self.birth if let Some(d) = &self.birth {
&& !d.check() { if !d.check() {
return Err(MemberControllerErr::MalformedDateOfBirth.into()); return Err(MemberControllerErr::MalformedDateOfBirth.into());
} }
}
if let Some(d) = &self.death if let Some(d) = &self.death {
&& !d.check() { if !d.check() {
return Err(MemberControllerErr::MalformedDateOfDeath.into()); return Err(MemberControllerErr::MalformedDateOfDeath.into());
} }
}
check_opt_str_val( check_opt_str_val(
&self.note, &self.note,
@@ -216,10 +221,11 @@ impl MemberRequest {
} }
} }
if let Some(father) = self.father if let Some(father) = self.father {
&& !members_service::exists(member.family_id(), father).await? { if !members_service::exists(member.family_id(), father).await? {
return Err(MemberControllerErr::FatherNotExisting.into()); return Err(MemberControllerErr::FatherNotExisting.into());
} }
}
member.first_name = self.first_name; member.first_name = self.first_name;
member.last_name = self.last_name; member.last_name = self.last_name;

View File

@@ -36,15 +36,16 @@ async fn get_photo(id: &PhotoIdPath, full_size: bool, req: HttpRequest) -> HttpR
}; };
// Check if an upload is un-necessary // Check if an upload is un-necessary
if let Some(c) = req.headers().get(header::IF_NONE_MATCH) if let Some(c) = req.headers().get(header::IF_NONE_MATCH) {
&& c.to_str().unwrap_or("") == hash { if c.to_str().unwrap_or("") == hash {
return Ok(HttpResponse::NotModified().finish()); return Ok(HttpResponse::NotModified().finish());
} }
}
if let Some(c) = req.headers().get(header::IF_MODIFIED_SINCE) { if let Some(c) = req.headers().get(header::IF_MODIFIED_SINCE) {
let date_str = c.to_str().unwrap_or(""); let date_str = c.to_str().unwrap_or("");
if let Ok(date) = httpdate::parse_http_date(date_str) if let Ok(date) = httpdate::parse_http_date(date_str) {
&& date if date
.add(Duration::from_secs(1)) .add(Duration::from_secs(1))
.duration_since(UNIX_EPOCH) .duration_since(UNIX_EPOCH)
.unwrap() .unwrap()
@@ -53,6 +54,7 @@ async fn get_photo(id: &PhotoIdPath, full_size: bool, req: HttpRequest) -> HttpR
{ {
return Ok(HttpResponse::NotModified().finish()); return Ok(HttpResponse::NotModified().finish());
} }
}
} }
let bytes = s3_connection::get_file(&match full_size { let bytes = s3_connection::get_file(&match full_size {

View File

@@ -149,10 +149,11 @@ pub mod loop_detection {
impl LoopStack<'_> { impl LoopStack<'_> {
pub fn contains(&self, id: MemberID) -> bool { pub fn contains(&self, id: MemberID) -> bool {
if let Some(ls) = &self.prev if let Some(ls) = &self.prev {
&& ls.contains(id) { if ls.contains(id) {
return true; return true;
} }
}
self.curr == id self.curr == id
} }

View File

@@ -64,7 +64,7 @@ fn redis_key(state: &str) -> String {
format!("oidc-state-{state}") format!("oidc-state-{state}")
} }
async fn load_provider_info(prov_id: &str) -> anyhow::Result<OpenIDClient<'_>> { async fn load_provider_info(prov_id: &str) -> anyhow::Result<OpenIDClient> {
let prov = AppConfig::get() let prov = AppConfig::get()
.openid_providers() .openid_providers()
.into_iter() .into_iter()