1#![deny(non_ascii_idents)]
9#![allow(clippy::disallowed_names)]
11#![allow(clippy::blanket_clippy_restriction_lints)]
13#![warn(clippy::missing_panics_doc)]
15#![warn(clippy::missing_const_for_fn)]
17#![warn(
19 clippy::as_conversions,
20 clippy::cast_lossless,
21 clippy::cast_possible_truncation,
22 clippy::cast_possible_wrap,
23 clippy::ptr_as_ptr
24)]
25#![warn(clippy::many_single_char_names)]
28#![warn(clippy::default_numeric_fallback)]
30#![warn(clippy::checked_conversions)]
32#![warn(clippy::match_bool)]
34#![warn(clippy::needless_bitwise_bool)]
37#![deny(clippy::cast_sign_loss)]
39#![warn(clippy::modulo_arithmetic)]
41#![warn(clippy::cast_precision_loss)]
44#![warn(clippy::float_arithmetic, clippy::float_cmp, clippy::float_cmp_const)]
46#![warn(clippy::imprecise_flops, clippy::suboptimal_flops)]
48#![warn(clippy::large_stack_arrays)]
50#![warn(clippy::fn_params_excessive_bools)]
53#![warn(clippy::enum_glob_use)]
55#![warn(clippy::else_if_without_else)]
57#![warn(clippy::string_lit_as_bytes)]
60#![warn(clippy::string_slice)]
62#![warn(clippy::large_types_passed_by_value)]
64#![warn(clippy::trivially_copy_pass_by_ref)]
66#![warn(clippy::inefficient_to_string)]
69#![warn(clippy::copy_iterator)]
71#![warn(clippy::cloned_instead_of_copied)]
73#![warn(clippy::unwrap_used)]
75#![warn(clippy::wildcard_imports)]
77#![warn(clippy::self_named_module_files)]
79#![warn(clippy::cargo_common_metadata)]
81#![warn(clippy::negative_feature_names, clippy::redundant_feature_names)]
83#![warn(clippy::wildcard_dependencies)]
85#![warn(clippy::dbg_macro)]
87#![warn(clippy::await_holding_lock)]
89#![warn(clippy::await_holding_refcell_ref)]
91#![warn(clippy::unused_async)]
93#![warn(clippy::debug_assert_with_mut_call)]
95
96mod application;
97mod authn;
98mod authz;
99mod cert;
100mod config;
101mod organization;
102mod provider;
103mod sdk;
104mod user;
105pub mod utils;
106
107pub use application::*;
108pub use authn::*;
109pub use authz::*;
110#[cfg(feature = "api")]
111pub use casdoor_api::{apis, models as api_models};
112pub use cert::*;
113pub use config::*;
114pub use organization::*;
115pub use provider::*;
116pub use reqwest::{Method, StatusCode, Url};
117pub use sdk::*;
118pub use user::*;
119
120pub type SdkResult<T> = std::result::Result<T, SdkError>;
121
122#[cfg(test)]
123mod tests {
124 use crate::*;
125 #[test]
126 fn example() {
127 let endpoint = "http://localhost:8000";
128 let client_id = "0e6ad201d317fb74fe9d";
129 let client_secret = "1fc847b0fdb3cb3f067c15ee383dee6213bd3fde";
130 let certificate = r###"
131-----BEGIN CERTIFICATE-----
132MIIE+TCCAuGgAwIBAgIDAeJAMA0GCSqGSIb3DQEBCwUAMDYxHTAbBgNVBAoTFENh
133c2Rvb3IgT3JnYW5pemF0aW9uMRUwEwYDVQQDEwxDYXNkb29yIENlcnQwHhcNMjEx
134MDE1MDgxMTUyWhcNNDExMDE1MDgxMTUyWjA2MR0wGwYDVQQKExRDYXNkb29yIE9y
135Z2FuaXphdGlvbjEVMBMGA1UEAxMMQ2FzZG9vciBDZXJ0MIICIjANBgkqhkiG9w0B
136AQEFAAOCAg8AMIICCgKCAgEAsInpb5E1/ym0f1RfSDSSE8IR7y+lw+RJjI74e5ej
137rq4b8zMYk7HeHCyZr/hmNEwEVXnhXu1P0mBeQ5ypp/QGo8vgEmjAETNmzkI1NjOQ
138CjCYwUrasO/f/MnI1C0j13vx6mV1kHZjSrKsMhYY1vaxTEP3+VB8Hjg3MHFWrb07
139uvFMCJe5W8+0rKErZCKTR8+9VB3janeBz//zQePFVh79bFZate/hLirPK0Go9P1g
140OvwIoC1A3sarHTP4Qm/LQRt0rHqZFybdySpyWAQvhNaDFE7mTstRSBb/wUjNCUBD
141PTSLVjC04WllSf6Nkfx0Z7KvmbPstSj+btvcqsvRAGtvdsB9h62Kptjs1Yn7GAuo
142I3qt/4zoKbiURYxkQJXIvwCQsEftUuk5ew5zuPSlDRLoLByQTLbx0JqLAFNfW3g/
143pzSDjgd/60d6HTmvbZni4SmjdyFhXCDb1Kn7N+xTojnfaNkwep2REV+RMc0fx4Gu
144hRsnLsmkmUDeyIZ9aBL9oj11YEQfM2JZEq+RVtUx+wB4y8K/tD1bcY+IfnG5rBpw
145IDpS262boq4SRSvb3Z7bB0w4ZxvOfJ/1VLoRftjPbLIf0bhfr/AeZMHpIKOXvfz4
146yE+hqzi68wdF0VR9xYc/RbSAf7323OsjYnjjEgInUtRohnRgCpjIk/Mt2Kt84Kb0
147wn8CAwEAAaMQMA4wDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAn2lf
148DKkLX+F1vKRO/5gJ+Plr8P5NKuQkmwH97b8CS2gS1phDyNgIc4/LSdzuf4Awe6ve
149C06lVdWSIis8UPUPdjmT2uMPSNjwLxG3QsrimMURNwFlLTfRem/heJe0Zgur9J1M
1508haawdSdJjH2RgmFoDeE2r8NVRfhbR8KnCO1ddTJKuS1N0/irHz21W4jt4rxzCvl
1512nR42Fybap3O/g2JXMhNNROwZmNjgpsF7XVENCSuFO1jTywLaqjuXCg54IL7XVLG
152omKNNNcc8h1FCeKj/nnbGMhodnFWKDTsJcbNmcOPNHo6ixzqMy/Hqc+mWYv7maAG
153Jtevs3qgMZ8F9Qzr3HpUc6R3ZYYWDY/xxPisuKftOPZgtH979XC4mdf0WPnOBLqL
1542DJ1zaBmjiGJolvb7XNVKcUfDXYw85ZTZQ5b9clI4e+6bmyWqQItlwt+Ati/uFEV
155XzCj70B4lALX6xau1kLEpV9O1GERizYRz5P9NJNA7KoO5AVMp9w0DQTkt+LbXnZE
156HHnWKy8xHQKZF9sR7YBPGLs/Ac6tviv5Ua15OgJ/8dLRZ/veyFfGo2yZsI+hKVU5
157nCCJHBcAyFnm1hdvdwEdH33jDBjNB6ciotJZrf/3VYaIWSalADosHAgMWfXuWP+h
1588XKXmzlxuHbTMQYtZPDgspS5aK+S4Q9wb8RRAYo=
159-----END CERTIFICATE-----
160"###;
161 let org_name = "built-in";
162 let app_name = "myapp";
163
164 let sdk = Config::new(
165 endpoint,
166 client_id,
167 client_secret,
168 certificate,
169 org_name,
170 Some(app_name.to_owned()),
171 )
172 .into_sdk();
173 println!("{:?}", sdk);
174 println!("{:?}", sdk.authn());
175 }
176}