diff --git a/Cargo.lock b/Cargo.lock index ba76ebe1c..ba847bbf2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -75,9 +75,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.19" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" dependencies = [ "memchr", ] @@ -99,9 +99,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anyhow" -version = "1.0.66" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" +checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61" [[package]] name = "anymap2" @@ -130,7 +130,7 @@ dependencies = [ "asn1-rs-derive", "asn1-rs-impl", "displaydoc", - "nom 7.1.1", + "nom 7.1.3", "num-traits", "rusticata-macros", "thiserror", @@ -162,11 +162,11 @@ dependencies = [ [[package]] name = "async-channel" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" +checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" dependencies = [ - "concurrent-queue 1.2.4", + "concurrent-queue", "event-listener", "futures-core", ] @@ -203,7 +203,7 @@ checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b" dependencies = [ "async-lock", "async-task", - "concurrent-queue 2.0.0", + "concurrent-queue", "fastrand", "futures-lite", "slab", @@ -243,13 +243,13 @@ dependencies = [ [[package]] name = "async-io" -version = "1.10.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8121296a9f05be7f34aa4196b1747243b3b62e048bb7906f644f3fbfc490cf7" +checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" dependencies = [ "async-lock", "autocfg", - "concurrent-queue 1.2.4", + "concurrent-queue", "futures-lite", "libc", "log", @@ -258,7 +258,7 @@ dependencies = [ "slab", "socket2", "waker-fn", - "winapi", + "windows-sys", ] [[package]] @@ -273,20 +273,20 @@ dependencies = [ [[package]] name = "async-process" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c" +checksum = "6381ead98388605d0d9ff86371043b5aa922a3905824244de40dc263a14fcba4" dependencies = [ "async-io", + "async-lock", "autocfg", "blocking", "cfg-if 1.0.0", "event-listener", "futures-lite", "libc", - "once_cell", "signal-hook", - "winapi", + "windows-sys", ] [[package]] @@ -372,9 +372,9 @@ checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" -version = "0.1.62" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "689894c2db1ea643a50834b999abf1c110887402542955ff5451dab8f861f9ed" +checksum = "eff18d764974428cf3a9328e23fc5c986f5fbed46e6cd4cdf42544df5d297ec1" dependencies = [ "proc-macro2", "quote", @@ -383,9 +383,9 @@ dependencies = [ [[package]] name = "atomic-waker" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" +checksum = "debc29dde2e69f9e47506b525f639ed42300fc014a3e007832592448fa8e4599" [[package]] name = "atty" @@ -393,7 +393,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi", + "hermit-abi 0.1.19", "libc", "winapi", ] @@ -413,7 +413,7 @@ dependencies = [ "libudev", "log", "memoffset 0.6.5", - "nom 7.1.1", + "nom 7.1.3", "openssl", "openssl-sys", "rand 0.8.5", @@ -559,16 +559,16 @@ dependencies = [ [[package]] name = "blocking" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc" +checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8" dependencies = [ "async-channel", + "async-lock", "async-task", "atomic-waker", "fastrand", "futures-lite", - "once_cell", ] [[package]] @@ -591,9 +591,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.11.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" +checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" [[package]] name = "byte-tools" @@ -603,9 +603,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.12.3" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa3a8d9a1ca92e282c96a32d6511b695d7d994d1d102ba85d279f9b2756947f" +checksum = "c041d3eab048880cb0b86b256447da3f18859a163c3b8d8893f4e6368abe6393" [[package]] name = "byteorder" @@ -619,12 +619,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" -[[package]] -name = "cache-padded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" - [[package]] name = "cast" version = "0.3.0" @@ -633,9 +627,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.77" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" +checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" dependencies = [ "jobserver", ] @@ -669,7 +663,7 @@ dependencies = [ "num-integer", "num-traits", "serde", - "time 0.1.44", + "time 0.1.45", "wasm-bindgen", "winapi", ] @@ -793,13 +787,14 @@ dependencies = [ [[package]] name = "concread" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6acd004617e219ee07c26b7f6f5f6b4d489c5595e432b87d0bbd8d88db1eebd3" +checksum = "5d3d825450e64aece76bdcf5c6d115c454ebb284c892da3e4cc7ff1e62e72069" dependencies = [ "ahash", - "crossbeam", "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", "lru 0.7.8", "smallvec", "sptr", @@ -809,34 +804,24 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "1.2.4" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" -dependencies = [ - "cache-padded", -] - -[[package]] -name = "concurrent-queue" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7bef69dc86e3c610e4e7aed41035e2a7ed12e72dd7530f61327a6579a4390b" +checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" dependencies = [ "crossbeam-utils", ] [[package]] name = "console" -version = "0.15.2" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c050367d967ced717c04b65d8c619d863ef9292ce0c5760028655a2fb298718c" +checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60" dependencies = [ "encode_unicode", "lazy_static", "libc", - "terminal_size", "unicode-width", - "winapi", + "windows-sys", ] [[package]] @@ -880,9 +865,9 @@ dependencies = [ [[package]] name = "cookie" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "344adc371239ef32293cb1c4fe519592fcf21206c79c02854320afcdf3ab4917" +checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", "time 0.3.17", @@ -895,7 +880,7 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e4b6aa369f41f5faa04bb80c9b1f4216ea81646ed6124d76ba5c49a7aafd9cd" dependencies = [ - "cookie 0.16.1", + "cookie 0.16.2", "idna 0.2.3", "log", "publicsuffix", @@ -988,7 +973,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ff76b51e4c068c52bfd2866e1567bee7c567ae8f24ada09fd4307019e25eab7" dependencies = [ "chrono", - "nom 7.1.1", + "nom 7.1.3", "once_cell", ] @@ -1029,9 +1014,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.12" +version = "0.9.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bf8df95e795db1a4aca2957ad884a2df35413b24bbeb3114422f3cc21498e8" +checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" dependencies = [ "autocfg", "cfg-if 1.0.0", @@ -1042,9 +1027,9 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebb3d1683412e9be6a15533314f00ec223c0762c522a3f77f048b265aab4470c" +checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -1052,9 +1037,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.13" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422f23e724af1240ec469ea1e834d87a4b59ce2efe2c6a96256b0c47e2fd86aa" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" dependencies = [ "cfg-if 1.0.0", ] @@ -1132,9 +1117,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.82" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453" +checksum = "b61a7545f753a88bcbe0a70de1fcc0221e10bfc752f576754fa91e663db1622e" dependencies = [ "cc", "cxxbridge-flags", @@ -1144,9 +1129,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.82" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0" +checksum = "f464457d494b5ed6905c63b0c4704842aba319084a0a3561cdc1359536b53200" dependencies = [ "cc", "codespan-reporting", @@ -1159,15 +1144,15 @@ dependencies = [ [[package]] name = "cxxbridge-flags" -version = "1.0.82" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71" +checksum = "43c7119ce3a3701ed81aca8410b9acf6fc399d2629d057b87e2efa4e63a3aaea" [[package]] name = "cxxbridge-macro" -version = "1.0.82" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470" +checksum = "65e07508b90551e610910fa648a1878991d367064997a596135b86df30daf07e" dependencies = [ "proc-macro2", "quote", @@ -1231,9 +1216,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" +checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" [[package]] name = "der-parser" @@ -1243,7 +1228,7 @@ checksum = "fe398ac75057914d7d07307bf67dc7f3f574a26783b4fc7805a20ffa9f506e82" dependencies = [ "asn1-rs", "displaydoc", - "nom 7.1.1", + "nom 7.1.3", "num-bigint", "num-traits", "rusticata-macros", @@ -1287,7 +1272,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9313f104b590510b46fc01c0a324fc76505c13871454d3c48490468d04c8d395" dependencies = [ "libc", - "nom 7.1.1", + "nom 7.1.3", ] [[package]] @@ -1396,9 +1381,9 @@ dependencies = [ [[package]] name = "erased-serde" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54558e0ba96fbe24280072642eceb9d7d442e32c7ec0ea9e7ecd7b4ea2cf4e11" +checksum = "e4ca605381c017ec7a5fef5e548f1cfaa419ed0f6df6367339300db74c92aa7d" dependencies = [ "serde", ] @@ -1484,14 +1469,14 @@ dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", - "windows-sys 0.42.0", + "windows-sys", ] [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" dependencies = [ "crc32fast", "miniz_oxide", @@ -1783,14 +1768,14 @@ dependencies = [ [[package]] name = "gloo-history" -version = "0.1.0" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81af52c0d31e86242eecefe1ed4d066deb79cfb80f9f7da0847fac417396bfe" +checksum = "dd451019e0b7a2b8a7a7b23e74916601abf1135c54664e57ff71dcc26dfcdeb7" dependencies = [ "gloo-events", "gloo-utils", "serde", - "serde-wasm-bindgen 0.3.1", + "serde-wasm-bindgen", "serde_urlencoded", "thiserror", "wasm-bindgen", @@ -1844,9 +1829,9 @@ dependencies = [ [[package]] name = "gloo-timers" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" dependencies = [ "futures-channel", "futures-core", @@ -1856,9 +1841,9 @@ dependencies = [ [[package]] name = "gloo-utils" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40913a05c8297adca04392f707b1e73b12ba7b8eab7244a4961580b1fd34063c" +checksum = "a8e8fc851e9c7b9852508bc6e3f690f452f474417e8545ec9857b7f7377036b5" dependencies = [ "js-sys", "serde", @@ -1943,6 +1928,15 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + [[package]] name = "hex" version = "0.4.3" @@ -1987,7 +1981,7 @@ checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", - "itoa 1.0.4", + "itoa 1.0.5", ] [[package]] @@ -2062,7 +2056,7 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.4", + "itoa 1.0.5", "pin-project-lite 0.2.9", "socket2", "tokio", @@ -2202,9 +2196,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.5.1" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f88c5561171189e69df9d98bcf18fd5f9558300f7ea7b801eb8a0fd748bd8745" +checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" [[package]] name = "itertools" @@ -2232,9 +2226,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" +checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" [[package]] name = "jobserver" @@ -2508,7 +2502,7 @@ dependencies = [ "kanidm_proto", "qrcode", "serde", - "serde-wasm-bindgen 0.4.5", + "serde-wasm-bindgen", "serde_json", "url", "uuid", @@ -2557,8 +2551,9 @@ dependencies = [ [[package]] name = "ldap3_client" -version = "0.3.0" -source = "git+https://github.com/kanidm/ldap3.git#b3c7653471916e803dc8f24d2163fd2710dfb161" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9599af178521f7eb322e27c8e9998bcb864a374613b50e2cf941474102296b4f" dependencies = [ "base64 0.13.1", "base64urlsafedata", @@ -2576,8 +2571,9 @@ dependencies = [ [[package]] name = "ldap3_proto" -version = "0.3.0" -source = "git+https://github.com/kanidm/ldap3.git#b3c7653471916e803dc8f24d2163fd2710dfb161" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4162706b6f3b3d58f577990e22e9a0e03e2f9bedc2b8181d8abab2498da32003" dependencies = [ "bytes", "lber", @@ -2690,9 +2686,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" dependencies = [ "cc", ] @@ -2762,9 +2758,9 @@ dependencies = [ [[package]] name = "matches" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "mathru" @@ -2813,9 +2809,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.5.4" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" dependencies = [ "adler", ] @@ -2829,7 +2825,7 @@ dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.42.0", + "windows-sys", ] [[package]] @@ -2869,14 +2865,23 @@ dependencies = [ [[package]] name = "nom" -version = "7.1.1" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", ] +[[package]] +name = "nom8" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8" +dependencies = [ + "memchr", +] + [[package]] name = "nss_kanidm" version = "1.1.0-alpha.11-dev" @@ -2952,28 +2957,28 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" dependencies = [ - "hermit-abi", + "hermit-abi 0.2.6", "libc", ] [[package]] name = "num_enum" -version = "0.5.7" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" +checksum = "8d829733185c1ca374f17e52b762f24f535ec625d2cc1f070e34c8a9068f341b" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.7" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" +checksum = "2be1598bf1c313dcdd12092e3f1920f463462525a21b7b4e11b4168353d0123e" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -3011,9 +3016,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" +checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" [[package]] name = "oncemutex" @@ -3151,15 +3156,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.4" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" +checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf" dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", - "windows-sys 0.42.0", + "windows-sys", ] [[package]] @@ -3325,16 +3330,16 @@ dependencies = [ [[package]] name = "polling" -version = "2.4.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4609a838d88b73d8238967b60dd115cc08d38e2bbaf51ee1e4b695f89122e2" +checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" dependencies = [ "autocfg", "cfg-if 1.0.0", "libc", "log", "wepoll-ffi", - "winapi", + "windows-sys", ] [[package]] @@ -3356,9 +3361,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "prettyplease" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8992a85d8e93a28bdf76137db888d3874e3b230dee5ed8bebac4c9f7617773" +checksum = "e97e3215779627f01ee256d2fad52f3d95e8e1c11e9fc6fd08f7cd455d5d5c78" dependencies = [ "proc-macro2", "syn", @@ -3366,13 +3371,12 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +checksum = "66618389e4ec1c7afe67d51a9bf34ff9236480f8d51e7489b7d5ab0303c13f34" dependencies = [ "once_cell", - "thiserror", - "toml", + "toml_edit", ] [[package]] @@ -3401,9 +3405,9 @@ dependencies = [ [[package]] name = "proc-macro-hack" -version = "0.5.19" +version = "0.5.20+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" @@ -3584,20 +3588,19 @@ dependencies = [ [[package]] name = "rayon" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e060280438193c554f654141c9ea9417886713b7acd75974c85b18a69a88e0b" +checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" dependencies = [ - "crossbeam-deque", "either", "rayon-core", ] [[package]] name = "rayon-core" -version = "1.10.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3" +checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -3681,7 +3684,7 @@ dependencies = [ "async-compression", "base64 0.21.0", "bytes", - "cookie 0.16.1", + "cookie 0.16.2", "cookie_store", "encoding_rs", "futures-core", @@ -3791,7 +3794,7 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" dependencies = [ - "nom 7.1.1", + "nom 7.1.3", ] [[package]] @@ -3802,9 +3805,9 @@ checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" [[package]] name = "ryu" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" [[package]] name = "same-file" @@ -3817,12 +3820,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" dependencies = [ - "lazy_static", - "windows-sys 0.36.1", + "windows-sys", ] [[package]] @@ -3836,8 +3838,9 @@ dependencies = [ [[package]] name = "scim_proto" -version = "0.1.0" -source = "git+https://github.com/kanidm/scim.git#b5a392f2be32afaa6623d6a9707b6a0ce78e88f7" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5abc672c8241e5bd368c0a73bf24727e98b0000a8636a44b8eb42a1e22835ef" dependencies = [ "base64urlsafedata", "peg", @@ -3864,15 +3867,15 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scratch" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" +checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" [[package]] name = "security-framework" -version = "2.7.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +checksum = "7c4437699b6d34972de58652c68b98cb5b53a4199ab126db8e20ec8ded29a721" dependencies = [ "bitflags", "core-foundation", @@ -3883,9 +3886,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.6.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" dependencies = [ "core-foundation-sys", "libc", @@ -3915,18 +3918,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-wasm-bindgen" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "618365e8e586c22123d692b72a7d791d5ee697817b65a218cdf12a98870af0f7" -dependencies = [ - "fnv", - "js-sys", - "serde", - "wasm-bindgen", -] - [[package]] name = "serde-wasm-bindgen" version = "0.4.5" @@ -3940,9 +3931,9 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.7" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfc50e8183eeeb6178dcb167ae34a8051d63535023ae38b5d8d12beae193d37b" +checksum = "718dc5fff5b36f99093fc49b280cfc96ce6fc824317783bff5a1fed0c7a64819" dependencies = [ "serde", ] @@ -3993,16 +3984,16 @@ version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" dependencies = [ - "itoa 1.0.4", + "itoa 1.0.5", "ryu", "serde", ] [[package]] name = "serde_path_to_error" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "184c643044780f7ceb59104cef98a5a6f12cb2288a7bc701ab93a362b49fd47d" +checksum = "26b04f22b563c91331a10074bda3dd5492e3cc39d56bd557e91c0af42b6c7341" dependencies = [ "serde", ] @@ -4025,7 +4016,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.4", + "itoa 1.0.5", "ryu", "serde", ] @@ -4335,23 +4326,13 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] -[[package]] -name = "terminal_size" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "testkit-macros" version = "0.1.0" @@ -4369,18 +4350,18 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" dependencies = [ "proc-macro2", "quote", @@ -4471,9 +4452,9 @@ dependencies = [ [[package]] name = "time" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", @@ -4502,7 +4483,7 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" dependencies = [ - "itoa 1.0.4", + "itoa 1.0.5", "serde", "time-core", "time-macros 0.2.6", @@ -4587,14 +4568,14 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.42.0", + "windows-sys", ] [[package]] name = "tokio-macros" -version = "1.8.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ "proc-macro2", "quote", @@ -4657,6 +4638,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5" + +[[package]] +name = "toml_edit" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "729bfd096e40da9c001f778f5cdecbd2957929a24e10e5883d9392220a751581" +dependencies = [ + "indexmap", + "nom8", + "toml_datetime", +] + [[package]] name = "touch" version = "0.0.1" @@ -4749,27 +4747,27 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "typenum" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" [[package]] name = "unicode-ident" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" +checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" [[package]] name = "unicode-normalization" @@ -5070,7 +5068,7 @@ checksum = "603b8602cae2d6c3706b6195765ff582389494d10c442d84a1de2ed5a25679ef" dependencies = [ "authenticator-ctap2-2021", "base64urlsafedata", - "nom 7.1.1", + "nom 7.1.3", "openssl", "rpassword 5.0.1", "serde", @@ -5107,7 +5105,7 @@ dependencies = [ "base64urlsafedata", "compact_jwt", "der-parser", - "nom 7.1.1", + "nom 7.1.3", "openssl", "rand 0.8.5", "serde", @@ -5130,7 +5128,7 @@ dependencies = [ "base64urlsafedata", "js-sys", "serde", - "serde-wasm-bindgen 0.4.5", + "serde-wasm-bindgen", "serde_json", "url", "wasm-bindgen", @@ -5202,32 +5200,19 @@ dependencies = [ "windows_x86_64_msvc 0.41.0", ] -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", -] - [[package]] name = "windows-sys" version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "windows_aarch64_gnullvm 0.42.0", - "windows_aarch64_msvc 0.42.0", - "windows_i686_gnu 0.42.0", - "windows_i686_msvc 0.42.0", - "windows_x86_64_gnu 0.42.0", - "windows_x86_64_gnullvm 0.42.0", - "windows_x86_64_msvc 0.42.0", + "windows_aarch64_gnullvm 0.42.1", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", + "windows_x86_64_gnullvm 0.42.1", + "windows_x86_64_msvc 0.42.1", ] [[package]] @@ -5238,15 +5223,9 @@ checksum = "163d2761774f2278ecb4e6719e80b2b5e92e5a2be73a7bcd3ef624dd5e3091fd" [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" [[package]] name = "windows_aarch64_msvc" @@ -5256,15 +5235,9 @@ checksum = "ef005ff2bceb00d3b84166a359cc19084f9459754fd3fe5a504dee3dddcd0a0c" [[package]] name = "windows_aarch64_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" - -[[package]] -name = "windows_i686_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" [[package]] name = "windows_i686_gnu" @@ -5274,15 +5247,9 @@ checksum = "02b4df2d51e32f03f8b4b228e487828c03bcb36d97b216fc5463bcea5bb1440b" [[package]] name = "windows_i686_gnu" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" - -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" [[package]] name = "windows_i686_msvc" @@ -5292,15 +5259,9 @@ checksum = "568a966834571f2f3267f07dd72b4d8507381f25e53d056808483b2637385ef7" [[package]] name = "windows_i686_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" [[package]] name = "windows_x86_64_gnu" @@ -5310,9 +5271,9 @@ checksum = "fc395dac1adf444e276d096d933ae7961361c8cda3245cffef7a9b3a70a8f994" [[package]] name = "windows_x86_64_gnu" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" [[package]] name = "windows_x86_64_gnullvm" @@ -5322,15 +5283,9 @@ checksum = "90e8ec22b715d5b436e1d59c8adad6c744dc20cd984710121d5836b4e8dbb5e0" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" [[package]] name = "windows_x86_64_msvc" @@ -5340,9 +5295,9 @@ checksum = "8b9761f0216b669019df1512f6e25e5ee779bf61c5cdc43c7293858e7efd7926" [[package]] name = "windows_x86_64_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" [[package]] name = "winreg" @@ -5364,7 +5319,7 @@ dependencies = [ "data-encoding", "der-parser", "lazy_static", - "nom 7.1.1", + "nom 7.1.3", "oid-registry", "rusticata-macros", "thiserror", @@ -5451,9 +5406,9 @@ dependencies = [ [[package]] name = "zeroize_derive" -version = "1.3.2" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" +checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 1bfd8c401..5f4865900 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,7 @@ clap_complete = "^3.2.5" chrono = "^0.4.23" compact_jwt = "^0.2.3" # compact_jwt = { path = "../compact_jwt" } -concread = "^0.4.0" +concread = "^0.4.1" # concread = { path = "../concread" } cron = "0.12.0" crossbeam = "0.8.1" @@ -81,16 +81,13 @@ kanidm_unix_int = { path = "./kanidm_unix_int" } last-git-commit = "0.2.0" # REMOVE this lazy_static = "^1.4.0" -# ldap3_client = "^0.3.0" -# ldap3_proto = "^0.3.0" +ldap3_client = "^0.3.1" +ldap3_proto = "^0.3.1" # ldap3_client = { path = "../ldap3/client", version = "0.3.0" } # ldap3_proto = { path = "../ldap3/proto", version = "0.3.0" } -# scim_proto = { path = "../scim/proto", version = "0.1.0" } - -ldap3_client = { git = "https://github.com/kanidm/ldap3.git", version = "0.3.0" } -ldap3_proto = { git = "https://github.com/kanidm/ldap3.git", version = "0.3.0" } -scim_proto = { git = "https://github.com/kanidm/scim.git", version = "0.1.0" } +# ldap3_client = { git = "https://github.com/kanidm/ldap3.git", version = "0.3.0" } +# ldap3_proto = { git = "https://github.com/kanidm/ldap3.git", version = "0.3.0" } libc = "^0.2.139" libnss = "^0.4.0" @@ -114,6 +111,11 @@ regex = "1.7.1" reqwest = { version = "0.11.14", default-features = false, features=["cookies", "json", "gzip", "native-tls"] } rpassword = "^7.2.0" rusqlite = "^0.28.0" + +scim_proto = "^0.1.1" +# scim_proto = { path = "../scim/proto", version = "0.1.1" } +# scim_proto = { git = "https://github.com/kanidm/scim.git", version = "0.1.1" } + serde = "^1.0.152" serde_cbor = { version = "0.12.0-dev", package = "serde_cbor_2" } serde_json = "^1.0.91" diff --git a/iam_migrations/freeipa/src/main.rs b/iam_migrations/freeipa/src/main.rs index d8a8d9f32..bee42f83b 100644 --- a/iam_migrations/freeipa/src/main.rs +++ b/iam_migrations/freeipa/src/main.rs @@ -222,10 +222,8 @@ async fn driver_main(opt: Opt) { if let Some(sh) = status_handle { let _ = sh.await; } - } else { - if let Err(e) = run_sync(cb, &sync_config, &opt).await { - error!(?e, "Sync completed with error"); - }; + } else if let Err(e) = run_sync(cb, &sync_config, &opt).await { + error!(?e, "Sync completed with error"); } } @@ -463,17 +461,15 @@ async fn run_sync( info!("dry-run complete"); info!("Success!"); Ok(()) + } else if let Err(e) = rsclient.scim_v1_sync_update(&scim_sync_request).await { + error!( + ?e, + "Failed to submit scim sync update - see the kanidmd server log for more details." + ); + Err(SyncError::SyncUpdate) } else { - if let Err(e) = rsclient.scim_v1_sync_update(&scim_sync_request).await { - error!( - ?e, - "Failed to submit scim sync update - see the kanidmd server log for more details." - ); - Err(SyncError::SyncUpdate) - } else { - info!("Success!"); - Ok(()) - } + info!("Success!"); + Ok(()) } // done! } @@ -640,7 +636,7 @@ async fn process_ipa_sync_result( let empty_slice = Vec::default(); // Future - make this par-map - let entries = entries + entries .into_iter() .filter_map(|(dn, e)| { let e_config = entry_config_map @@ -656,9 +652,7 @@ async fn process_ipa_sync_result( Err(()) => Some(Err(())), } }) - .collect::, _>>(); - - entries + .collect::, _>>() } // TODO: Allow re-map of uuid -> uuid @@ -880,9 +874,9 @@ fn config_security_checks(cfg_path: &Path) -> bool { "Config missing from {} - cannot start up. Quitting.", cfg_path_str ); - return false; + false } else { - let cfg_meta = match metadata(&cfg_path) { + let cfg_meta = match metadata(cfg_path) { Ok(v) => v, Err(e) => { error!( @@ -945,11 +939,9 @@ fn main() { if opt.skip_root_check { warn!("Skipping root user check, if you're running this for testing, ensure you clean up temporary files.") // TODO: this wording is not great m'kay. - } else { - if cuid == 0 || ceuid == 0 || cgid == 0 || cegid == 0 { - error!("Refusing to run - this process must not operate as root."); - return; - } + } else if cuid == 0 || ceuid == 0 || cgid == 0 || cegid == 0 { + error!("Refusing to run - this process must not operate as root."); + return; }; if !config_security_checks(&opt.client_config) || !config_security_checks(&opt.ipa_sync_config) diff --git a/kanidm_unix_int/src/cache.rs b/kanidm_unix_int/src/cache.rs index 744568e5f..9e5cd8337 100644 --- a/kanidm_unix_int/src/cache.rs +++ b/kanidm_unix_int/src/cache.rs @@ -82,7 +82,7 @@ impl CacheLayer { dbtxn.commit()?; } - if pam_allow_groups.len() == 0 { + if pam_allow_groups.is_empty() { eprintln!("Will not be able to authenticate users, pam_allow_groups config is not configured."); } @@ -170,7 +170,7 @@ impl CacheLayer { // * uuid // Attempt to search these in the db. let dbtxn = self.db.write().await; - let r = dbtxn.get_account(&account_id)?; + let r = dbtxn.get_account(account_id)?; match r { Some((ut, ex)) => { @@ -222,7 +222,7 @@ impl CacheLayer { // * uuid // Attempt to search these in the db. let dbtxn = self.db.write().await; - let r = dbtxn.get_group(&grp_id)?; + let r = dbtxn.get_group(grp_id)?; match r { Some((ut, ex)) => { @@ -864,7 +864,7 @@ impl CacheLayer { pub async fn pam_account_allowed(&self, account_id: &str) -> Result, ()> { let token = self.get_usertoken(Id::Name(account_id.to_string())).await?; - if self.pam_allow_groups.len() == 0 { + if self.pam_allow_groups.is_empty() { // can't allow anything if the group list is zero... eprintln!("Cannot authenticate users, no allowed groups in configuration!"); Ok(Some(false)) @@ -873,8 +873,7 @@ impl CacheLayer { let user_set: BTreeSet<_> = tok .groups .iter() - .map(|g| vec![g.name.clone(), g.spn.clone(), g.uuid.clone()]) - .flatten() + .flat_map(|g| [g.name.clone(), g.spn.clone(), g.uuid.clone()]) .collect(); debug!( diff --git a/kanidm_unix_int/src/client.rs b/kanidm_unix_int/src/client.rs index 84ceec92a..a9784221a 100644 --- a/kanidm_unix_int/src/client.rs +++ b/kanidm_unix_int/src/client.rs @@ -17,7 +17,7 @@ impl Decoder for ClientCodec { type Item = ClientResponse; fn decode(&mut self, src: &mut BytesMut) -> Result, Self::Error> { - match serde_json::from_slice::(&src) { + match serde_json::from_slice::(src) { Ok(msg) => { // Clear the buffer for the next message. src.clear(); diff --git a/kanidm_unix_int/src/db.rs b/kanidm_unix_int/src/db.rs index fd69e716e..f6673a0aa 100644 --- a/kanidm_unix_int/src/db.rs +++ b/kanidm_unix_int/src/db.rs @@ -86,7 +86,7 @@ impl<'a> DbTxn<'a> { } /// This handles an error coming back from an sqlite event and dumps more information from it - fn sqlite_error(&self, msg: &str, error: rusqlite::Error) { + fn sqlite_error(&self, msg: &str, error: &rusqlite::Error) { error!( "sqlite {} error: {:?} db_path={:?}", msg, @@ -96,7 +96,7 @@ impl<'a> DbTxn<'a> { } /// This handles an error coming back from an sqlite transaction and dumps a load of information from it - fn sqlite_transaction_error(&self, error: rusqlite::Error, _stmt: &rusqlite::Statement) { + fn sqlite_transaction_error(&self, error: &rusqlite::Error, _stmt: &rusqlite::Statement) { error!( "sqlite transaction error={:?} db_path={:?}", error, @@ -111,7 +111,7 @@ impl<'a> DbTxn<'a> { .prepare("PRAGMA journal_mode=WAL;") .and_then(|mut wal_stmt| wal_stmt.query([]).map(|_| ())) .map_err(|e| { - self.sqlite_error("account_t create", e); + self.sqlite_error("account_t create", &e); })?; // Setup two tables - one for accounts, one for groups. @@ -132,7 +132,7 @@ impl<'a> DbTxn<'a> { [], ) .map_err(|e| { - self.sqlite_error("account_t create", e); + self.sqlite_error("account_t create", &e); })?; self.conn @@ -149,7 +149,7 @@ impl<'a> DbTxn<'a> { [], ) .map_err(|e| { - self.sqlite_error("group_t create", e); + self.sqlite_error("group_t create", &e); })?; self.conn @@ -164,7 +164,7 @@ impl<'a> DbTxn<'a> { [], ) .map_err(|e| { - self.sqlite_error("memberof_t create error", e); + self.sqlite_error("memberof_t create error", &e); })?; Ok(()) @@ -182,7 +182,7 @@ impl<'a> DbTxn<'a> { .execute("COMMIT TRANSACTION", []) .map(|_| ()) .map_err(|e| { - self.sqlite_error("commit", e); + self.sqlite_error("commit", &e); }) } @@ -190,13 +190,13 @@ impl<'a> DbTxn<'a> { self.conn .execute("UPDATE group_t SET expiry = 0", []) .map_err(|e| { - self.sqlite_error("update group_t", e); + self.sqlite_error("update group_t", &e); })?; self.conn .execute("UPDATE account_t SET expiry = 0", []) .map_err(|e| { - self.sqlite_error("update account_t", e); + self.sqlite_error("update account_t", &e); })?; Ok(()) @@ -204,13 +204,13 @@ impl<'a> DbTxn<'a> { pub fn clear_cache(&self) -> Result<(), ()> { self.conn.execute("DELETE FROM group_t", []).map_err(|e| { - self.sqlite_error("delete group_t", e); + self.sqlite_error("delete group_t", &e); })?; self.conn .execute("DELETE FROM account_t", []) .map_err(|e| { - self.sqlite_error("delete group_t", e); + self.sqlite_error("delete group_t", &e); })?; Ok(()) @@ -222,19 +222,19 @@ impl<'a> DbTxn<'a> { "SELECT token, expiry FROM account_t WHERE uuid = :account_id OR name = :account_id OR spn = :account_id" ) .map_err(|e| { - self.sqlite_error("select prepare", e); + self.sqlite_error("select prepare", &e); })?; // Makes tuple (token, expiry) let data_iter = stmt - .query_map(&[account_id], |row| Ok((row.get(0)?, row.get(1)?))) + .query_map([account_id], |row| Ok((row.get(0)?, row.get(1)?))) .map_err(|e| { - self.sqlite_error("query_map failure", e); + self.sqlite_error("query_map failure", &e); })?; let data: Result, i64)>, _> = data_iter .map(|v| { v.map_err(|e| { - self.sqlite_error("map failure", e); + self.sqlite_error("map failure", &e); }) }) .collect(); @@ -246,19 +246,19 @@ impl<'a> DbTxn<'a> { .conn .prepare("SELECT token, expiry FROM account_t WHERE gidnumber = :gid") .map_err(|e| { - self.sqlite_error("select prepare", e); + self.sqlite_error("select prepare", &e); })?; // Makes tuple (token, expiry) let data_iter = stmt .query_map(params![gid], |row| Ok((row.get(0)?, row.get(1)?))) .map_err(|e| { - self.sqlite_error("query_map", e); + self.sqlite_error("query_map", &e); })?; let data: Result, i64)>, _> = data_iter .map(|v| { v.map_err(|e| { - self.sqlite_error("map", e); + self.sqlite_error("map", &e); }) }) .collect(); @@ -303,16 +303,16 @@ impl<'a> DbTxn<'a> { .conn .prepare("SELECT token FROM account_t") .map_err(|e| { - self.sqlite_error("select prepare", e); + self.sqlite_error("select prepare", &e); })?; - let data_iter = stmt.query_map([], |row| Ok(row.get(0)?)).map_err(|e| { - self.sqlite_error("query_map", e); + let data_iter = stmt.query_map([], |row| row.get(0)).map_err(|e| { + self.sqlite_error("query_map", &e); })?; let data: Result>, _> = data_iter .map(|v| { v.map_err(|e| { - self.sqlite_error("map", e); + self.sqlite_error("map", &e); }) }) .collect(); @@ -355,7 +355,7 @@ impl<'a> DbTxn<'a> { } ) .map_err(|e| { - self.sqlite_error("delete account_t duplicate", e); + self.sqlite_error("delete account_t duplicate", &e); }) .map(|_| ())?; @@ -371,14 +371,14 @@ impl<'a> DbTxn<'a> { } ) .map_err(|e| { - self.sqlite_error("delete account_t duplicate",e); + self.sqlite_error("delete account_t duplicate", &e); })?; if updated == 0 { let mut stmt = self.conn .prepare("INSERT INTO account_t (uuid, name, spn, gidnumber, token, expiry) VALUES (:uuid, :name, :spn, :gidnumber, :token, :expiry) ON CONFLICT(uuid) DO UPDATE SET name=excluded.name, spn=excluded.name, gidnumber=excluded.gidnumber, token=excluded.token, expiry=excluded.expiry") .map_err(|e| { - self.sqlite_error("prepare",e); + self.sqlite_error("prepare", &e); })?; stmt.execute(named_params! { @@ -393,7 +393,7 @@ impl<'a> DbTxn<'a> { debug!("insert -> {:?}", r); }) .map_err(|error| { - self.sqlite_transaction_error(error, &stmt); + self.sqlite_transaction_error(&error, &stmt); })?; } @@ -404,21 +404,21 @@ impl<'a> DbTxn<'a> { .conn .prepare("DELETE FROM memberof_t WHERE a_uuid = :a_uuid") .map_err(|e| { - self.sqlite_error("prepare", e); + self.sqlite_error("prepare", &e); })?; - stmt.execute(&[&account.uuid]) + stmt.execute([&account.uuid]) .map(|r| { debug!("delete memberships -> {:?}", r); }) .map_err(|error| { - self.sqlite_transaction_error(error, &stmt); + self.sqlite_transaction_error(&error, &stmt); })?; let mut stmt = self .conn .prepare("INSERT INTO memberof_t (a_uuid, g_uuid) VALUES (:a_uuid, :g_uuid)") .map_err(|e| { - self.sqlite_error("prepare", e); + self.sqlite_error("prepare", &e); })?; // Now for each group, add the relation. account.groups.iter().try_for_each(|g| { @@ -430,7 +430,7 @@ impl<'a> DbTxn<'a> { debug!("insert membership -> {:?}", r); }) .map_err(|error| { - self.sqlite_transaction_error(error, &stmt); + self.sqlite_transaction_error(&error, &stmt); }) }) } @@ -443,12 +443,12 @@ impl<'a> DbTxn<'a> { ) .map(|_| ()) .map_err(|e| { - self.sqlite_error("memberof_t create", e); + self.sqlite_error("memberof_t create", &e); }) } pub fn update_account_password(&self, a_uuid: &str, cred: &str) -> Result<(), ()> { - let pw = Password::new(&self.crypto_policy, cred).map_err(|e| { + let pw = Password::new(self.crypto_policy, cred).map_err(|e| { error!("password error -> {:?}", e); })?; let dbpw = pw.to_dbpasswordv1(); @@ -465,7 +465,7 @@ impl<'a> DbTxn<'a> { }, ) .map_err(|e| { - self.sqlite_error("update account_t password", e); + self.sqlite_error("update account_t password", &e); }) .map(|_| ()) } @@ -475,19 +475,17 @@ impl<'a> DbTxn<'a> { .conn .prepare("SELECT password FROM account_t WHERE uuid = :a_uuid AND password IS NOT NULL") .map_err(|e| { - self.sqlite_error("select prepare", e); + self.sqlite_error("select prepare", &e); })?; // Makes tuple (token, expiry) - let data_iter = stmt - .query_map(&[a_uuid], |row| Ok(row.get(0)?)) - .map_err(|e| { - self.sqlite_error("query_map", e); - })?; + let data_iter = stmt.query_map([a_uuid], |row| row.get(0)).map_err(|e| { + self.sqlite_error("query_map", &e); + })?; let data: Result>, _> = data_iter .map(|v| { v.map_err(|e| { - self.sqlite_error("map", e); + self.sqlite_error("map", &e); }) }) .collect(); @@ -526,19 +524,19 @@ impl<'a> DbTxn<'a> { "SELECT token, expiry FROM group_t WHERE uuid = :grp_id OR name = :grp_id OR spn = :grp_id" ) .map_err(|e| { - self.sqlite_error("select prepare",e); + self.sqlite_error("select prepare", &e); })?; // Makes tuple (token, expiry) let data_iter = stmt - .query_map(&[grp_id], |row| Ok((row.get(0)?, row.get(1)?))) + .query_map([grp_id], |row| Ok((row.get(0)?, row.get(1)?))) .map_err(|e| { - self.sqlite_error("query_map", e); + self.sqlite_error("query_map", &e); })?; let data: Result, i64)>, _> = data_iter .map(|v| { v.map_err(|e| { - self.sqlite_error("map", e); + self.sqlite_error("map", &e); }) }) .collect(); @@ -550,19 +548,19 @@ impl<'a> DbTxn<'a> { .conn .prepare("SELECT token, expiry FROM group_t WHERE gidnumber = :gid") .map_err(|e| { - self.sqlite_error("select prepare", e); + self.sqlite_error("select prepare", &e); })?; // Makes tuple (token, expiry) let data_iter = stmt .query_map(params![gid], |row| Ok((row.get(0)?, row.get(1)?))) .map_err(|e| { - self.sqlite_error("query_map", e); + self.sqlite_error("query_map", &e); })?; let data: Result, i64)>, _> = data_iter .map(|v| { v.map_err(|e| { - self.sqlite_error("map", e); + self.sqlite_error("map", &e); }) }) .collect(); @@ -607,18 +605,16 @@ impl<'a> DbTxn<'a> { .conn .prepare("SELECT account_t.token FROM (account_t, memberof_t) WHERE account_t.uuid = memberof_t.a_uuid AND memberof_t.g_uuid = :g_uuid") .map_err(|e| { - self.sqlite_error("select prepare",e); + self.sqlite_error("select prepare", &e); })?; - let data_iter = stmt - .query_map(&[g_uuid], |row| Ok(row.get(0)?)) - .map_err(|e| { - self.sqlite_error("query_map", e); - })?; + let data_iter = stmt.query_map([g_uuid], |row| row.get(0)).map_err(|e| { + self.sqlite_error("query_map", &e); + })?; let data: Result>, _> = data_iter .map(|v| { v.map_err(|e| { - self.sqlite_error("map", e); + self.sqlite_error("map", &e); }) }) .collect(); @@ -641,16 +637,16 @@ impl<'a> DbTxn<'a> { .conn .prepare("SELECT token FROM group_t") .map_err(|e| { - self.sqlite_error("select prepare", e); + self.sqlite_error("select prepare", &e); })?; - let data_iter = stmt.query_map([], |row| Ok(row.get(0)?)).map_err(|e| { - self.sqlite_error("query_map", e); + let data_iter = stmt.query_map([], |row| row.get(0)).map_err(|e| { + self.sqlite_error("query_map", &e); })?; let data: Result>, _> = data_iter .map(|v| { v.map_err(|e| { - self.sqlite_error("map", e); + self.sqlite_error("map", &e); }) }) .collect(); @@ -682,7 +678,7 @@ impl<'a> DbTxn<'a> { let mut stmt = self.conn .prepare("INSERT OR REPLACE INTO group_t (uuid, name, spn, gidnumber, token, expiry) VALUES (:uuid, :name, :spn, :gidnumber, :token, :expiry)") .map_err(|e| { - self.sqlite_error("prepare",e); + self.sqlite_error("prepare", &e); })?; stmt.execute(named_params! { @@ -697,16 +693,16 @@ impl<'a> DbTxn<'a> { debug!("insert -> {:?}", r); }) .map_err(|e| { - self.sqlite_error("execute", e); + self.sqlite_error("execute", &e); }) } pub fn delete_group(&self, g_uuid: &str) -> Result<(), ()> { self.conn - .execute("DELETE FROM group_t WHERE uuid = :g_uuid", &[g_uuid]) + .execute("DELETE FROM group_t WHERE uuid = :g_uuid", [g_uuid]) .map(|_| ()) .map_err(|e| { - self.sqlite_error("memberof_t create", e); + self.sqlite_error("memberof_t create", &e); }) } } diff --git a/kanidmd/core/src/https/middleware.rs b/kanidmd/core/src/https/middleware.rs index f85a2d93b..52da4919a 100644 --- a/kanidmd/core/src/https/middleware.rs +++ b/kanidmd/core/src/https/middleware.rs @@ -212,7 +212,7 @@ impl tide::Middleware } } -const KANIDM_VERSION: &'static str = env!("CARGO_PKG_VERSION"); +const KANIDM_VERSION: &str = env!("CARGO_PKG_VERSION"); #[derive(Default)] pub struct VersionHeaderMiddleware; diff --git a/kanidmd/core/src/https/mod.rs b/kanidmd/core/src/https/mod.rs index fc224ddd4..ab17209e8 100644 --- a/kanidmd/core/src/https/mod.rs +++ b/kanidmd/core/src/https/mod.rs @@ -392,7 +392,7 @@ pub fn create_https_server( .with_session_ttl(None) .with_cookie_name("kanidm-session") // Without this, the cookies won't be used on subdomains of origin. - .with_cookie_domain(&domain) + .with_cookie_domain(domain) // Im not sure if we need Lax here, I don't think we do because on the first get // we don't need the cookie since wasm drives the fetches. .with_same_site_policy(tide::http::cookies::SameSite::Strict), diff --git a/kanidmd/core/src/ldaps.rs b/kanidmd/core/src/ldaps.rs index 6d78aefd9..c1d5f9053 100644 --- a/kanidmd/core/src/ldaps.rs +++ b/kanidmd/core/src/ldaps.rs @@ -59,7 +59,7 @@ async fn client_process( while let Some(Ok(protomsg)) = r.next().await { // Start the event let uat = session.uat.clone(); - let caddr = client_address.clone(); + let caddr = client_address; match client_process_msg(uat, caddr, protomsg, qe_r_ref).await { // I'd really have liked to have put this near the [LdapResponseState::Bind] but due diff --git a/kanidmd/core/src/lib.rs b/kanidmd/core/src/lib.rs index 66edaa221..2c623d617 100644 --- a/kanidmd/core/src/lib.rs +++ b/kanidmd/core/src/lib.rs @@ -432,7 +432,7 @@ pub async fn domain_rename_core(config: &Configuration) { match qs.read().await.get_db_domain_name() { Ok(old_domain_name) => { admin_info!(?old_domain_name, ?new_domain_name); - if &old_domain_name == &new_domain_name { + if old_domain_name == new_domain_name { admin_info!("Domain name not changing, stopping."); return; } @@ -568,14 +568,14 @@ pub struct CoreHandle { impl CoreHandle { pub async fn shutdown(&mut self) { - if let Err(_) = self.tx.send(CoreAction::Shutdown) { + if self.tx.send(CoreAction::Shutdown).is_err() { eprintln!("No receivers acked shutdown request. Treating as unclean."); return; } // Wait on the handles. while let Some(handle) = self.handles.pop() { - if let Err(_) = handle.await { + if handle.await.is_err() { eprintln!("A task failed to join"); } } @@ -607,7 +607,7 @@ pub async fn create_server_core( } else if config.tls_config.is_none() { // TLS is great! We won't run without it. error!("Running without TLS is not supported! Quitting!"); - return Err({}); + return Err(()); } info!( diff --git a/kanidmd/lib/src/constants/mod.rs b/kanidmd/lib/src/constants/mod.rs index 276e3dc41..48335e6f0 100644 --- a/kanidmd/lib/src/constants/mod.rs +++ b/kanidmd/lib/src/constants/mod.rs @@ -17,7 +17,7 @@ pub use crate::constants::values::*; use std::time::Duration; // Increment this as we add new schema types and values!!! -pub const SYSTEM_INDEX_VERSION: i64 = 27; +pub const SYSTEM_INDEX_VERSION: i64 = 28; /* * domain functional levels diff --git a/kanidmd/lib/src/idm/scim.rs b/kanidmd/lib/src/idm/scim.rs index 134a530b3..04c4d0d44 100644 --- a/kanidmd/lib/src/idm/scim.rs +++ b/kanidmd/lib/src/idm/scim.rs @@ -300,22 +300,24 @@ impl<'a> IdmServerProxyWriteTransaction<'a> { // TODO: This could benefit from a search that only grabs uuids? let existing_entries = self .qs_write - .internal_search(f_all_sync.clone()) + // .internal_search(f_all_sync.clone()) + .internal_exists(f_all_sync.clone()) .map_err(|e| { error!("Failed to determine existing entries set"); e })?; - // This is the delete filter we need later. + /* let filter_or: Vec<_> = existing_entries .iter() .map(|e| f_eq("uuid", PartialValue::Uuid(e.get_uuid()))) .collect(); + */ // We only need to delete the sync account itself. let delete_filter = filter!(f_eq("uuid", PartialValue::Uuid(sync_uuid))); - if !filter_or.is_empty() { + if existing_entries { // Now modify these to remove their sync related attributes. let schema = self.qs_write.get_schema(); let sync_class = schema.get_classes().get("sync_object").ok_or_else(|| { @@ -429,16 +431,16 @@ impl<'a> IdmServerProxyWriteTransaction<'a> { e })?; - // This is the delete filter we need later. - let filter_or: Vec<_> = existing_entries - .iter() - .map(|e| f_eq("uuid", PartialValue::Uuid(e.get_uuid()))) - .collect(); - - let delete_filter = if filter_or.is_empty() { + let delete_filter = if existing_entries.is_empty() { // We only need to delete the sync account itself. filter!(f_eq("uuid", PartialValue::Uuid(sync_uuid))) } else { + // This is the delete filter we need later. + let filter_or: Vec<_> = existing_entries + .iter() + .map(|e| f_eq("uuid", PartialValue::Uuid(e.get_uuid()))) + .collect(); + // Now modify these to remove their sync related attributes. let schema = self.qs_write.get_schema(); let sync_class = schema.get_classes().get("sync_object").ok_or_else(|| { diff --git a/kanidmd/lib/src/repl/mod.rs b/kanidmd/lib/src/repl/mod.rs index eb73d30d4..a4ed2e850 100644 --- a/kanidmd/lib/src/repl/mod.rs +++ b/kanidmd/lib/src/repl/mod.rs @@ -1,3 +1,6 @@ pub mod cid; pub mod entry; pub mod ruv; + +#[cfg(test)] +mod tests; diff --git a/kanidmd/lib/src/repl/tests.rs b/kanidmd/lib/src/repl/tests.rs index 71139c47c..eda69f426 100644 --- a/kanidmd/lib/src/repl/tests.rs +++ b/kanidmd/lib/src/repl/tests.rs @@ -1,7 +1,6 @@ -use crate::prelude::*; +// use crate::prelude::*; #[tokio::test] async fn multiple_qs_setup() { assert!(true); } - diff --git a/kanidmd/lib/src/server/access/mod.rs b/kanidmd/lib/src/server/access/mod.rs index 5494ed947..102d34c71 100644 --- a/kanidmd/lib/src/server/access/mod.rs +++ b/kanidmd/lib/src/server/access/mod.rs @@ -213,7 +213,7 @@ pub trait AccessControlsTransaction<'a> { let allowed_entries: Vec<_> = entries .into_iter() .filter(|e| { - match apply_search_access(&se.ident, related_acp.as_slice(), &e) { + match apply_search_access(&se.ident, related_acp.as_slice(), e) { SearchResult::Denied => false, SearchResult::Grant => true, SearchResult::Allow(allowed_attrs) => { @@ -449,7 +449,7 @@ pub trait AccessControlsTransaction<'a> { security_access!(?requested_classes, "Requested class set"); let r = entries.iter().all(|e| { - match apply_modify_access(&me.ident, related_acp.as_slice(), &e) { + match apply_modify_access(&me.ident, related_acp.as_slice(), e) { ModifyResult::Denied => false, ModifyResult::Grant => true, ModifyResult::Allow { pres, rem, cls } => { @@ -582,7 +582,7 @@ pub trait AccessControlsTransaction<'a> { security_access!(?requested_rem, "Requested remove set"); security_access!(?requested_classes, "Requested class set"); - match apply_modify_access(&me.ident, related_acp.as_slice(), &e) { + match apply_modify_access(&me.ident, related_acp.as_slice(), e) { ModifyResult::Denied => false, ModifyResult::Grant => true, ModifyResult::Allow { pres, rem, cls } => { @@ -665,7 +665,7 @@ pub trait AccessControlsTransaction<'a> { // For each entry let r = entries.iter().all(|e| { - match apply_create_access(&ce.ident, related_acp.as_slice(), &e) { + match apply_create_access(&ce.ident, related_acp.as_slice(), e) { CreateResult::Denied => false, CreateResult::Grant => true, } @@ -729,7 +729,7 @@ pub trait AccessControlsTransaction<'a> { // For each entry let r = entries.iter().all(|e| { - match apply_delete_access(&de.ident, related_acp.as_slice(), &e) { + match apply_delete_access(&de.ident, related_acp.as_slice(), e) { DeleteResult::Denied => false, DeleteResult::Grant => true, } @@ -798,7 +798,7 @@ pub trait AccessControlsTransaction<'a> { .map(|e| { // == search == let search_effective = - match apply_search_access(ident, search_related_acp.as_slice(), &e) { + match apply_search_access(ident, search_related_acp.as_slice(), e) { SearchResult::Denied => Access::Denied, SearchResult::Grant => Access::Grant, SearchResult::Allow(allowed_attrs) => { @@ -810,7 +810,7 @@ pub trait AccessControlsTransaction<'a> { // == modify == let (modify_pres, modify_rem, modify_class) = - match apply_modify_access(ident, modify_related_acp.as_slice(), &e) { + match apply_modify_access(ident, modify_related_acp.as_slice(), e) { ModifyResult::Denied => (Access::Denied, Access::Denied, Access::Denied), ModifyResult::Grant => (Access::Grant, Access::Grant, Access::Grant), ModifyResult::Allow { pres, rem, cls } => ( diff --git a/kanidmd/lib/src/server/mod.rs b/kanidmd/lib/src/server/mod.rs index 0d7f5bb92..abbd80842 100644 --- a/kanidmd/lib/src/server/mod.rs +++ b/kanidmd/lib/src/server/mod.rs @@ -45,6 +45,9 @@ pub mod recycle; const RESOLVE_FILTER_CACHE_MAX: usize = 4096; const RESOLVE_FILTER_CACHE_LOCAL: usize = 0; +pub type ResolveFilterCacheReadTxn<'a> = + ARCacheReadTxn<'a, (IdentityId, Filter), Filter, ()>; + #[derive(Debug, Clone, PartialOrd, PartialEq, Eq)] enum ServerPhase { Bootstrap, @@ -140,9 +143,7 @@ pub trait QueryServerTransaction<'a> { fn get_domain_display_name(&self) -> &str; - fn get_resolve_filter_cache( - &mut self, - ) -> &mut ARCacheReadTxn<'a, (IdentityId, Filter), Filter, ()>; + fn get_resolve_filter_cache(&mut self) -> &mut ResolveFilterCacheReadTxn<'a>; // Because of how borrowck in rust works, if we need to get two inner types we have to get them // in a single fn. @@ -151,7 +152,7 @@ pub trait QueryServerTransaction<'a> { &mut self, ) -> ( &mut Self::BackendTransactionType, - &mut ARCacheReadTxn<'a, (IdentityId, Filter), Filter, ()>, + &mut ResolveFilterCacheReadTxn<'a>, ); /// Conduct a search and apply access controls to yield a set of entries that diff --git a/kanidmd_web_ui/src/credential/totpremove.rs b/kanidmd_web_ui/src/credential/totpremove.rs index 8cef526a8..bff40cf1c 100644 --- a/kanidmd_web_ui/src/credential/totpremove.rs +++ b/kanidmd_web_ui/src/credential/totpremove.rs @@ -133,9 +133,7 @@ impl TotpRemoveComp { let status: CUStatus = serde_wasm_bindgen::from_value(jsval).expect_throw("Invalid response type"); - cb.emit(EventBusMsg::UpdateStatus { - status: status.clone(), - }); + cb.emit(EventBusMsg::UpdateStatus { status }); Ok(Msg::Success) } else { diff --git a/kanidmd_web_ui/src/manager.rs b/kanidmd_web_ui/src/manager.rs index ef2e35171..8c63c3925 100644 --- a/kanidmd_web_ui/src/manager.rs +++ b/kanidmd_web_ui/src/manager.rs @@ -48,6 +48,8 @@ fn landing() -> Html { html! {
} } +// Needed for yew to pass by value +#[allow(clippy::needless_pass_by_value)] fn switch(route: Route) -> Html { #[cfg(debug_assertions)] console::debug!("manager::switch"); diff --git a/orca/src/generate.rs b/orca/src/generate.rs index bf10f2f7d..5ed7861e8 100644 --- a/orca/src/generate.rs +++ b/orca/src/generate.rs @@ -12,7 +12,7 @@ const N_GROUPS: usize = 1500; const N_MEMBERSHIPS: usize = 10; const N_NEST: usize = 4; -pub(crate) fn doit(output: &Path) -> () { +pub(crate) fn doit(output: &Path) { info!( "Performing data generation into {}", output.to_str().unwrap(), @@ -68,7 +68,8 @@ pub(crate) fn doit(output: &Path) -> () { let mut chunk_iter = groups.chunks_mut(chunk_size); // Can't fail due to above checks. let mut p_chunk = chunk_iter.next().unwrap(); - while let Some(w_chunk) = chunk_iter.next() { + // while let Some(w_chunk) = chunk_iter.next() { + for w_chunk in chunk_iter { // add items from work chunk to parent chunk p_chunk .iter_mut()