aboutsummaryrefslogtreecommitdiff
path: root/crates/secd/src/command/admin.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/secd/src/command/admin.rs')
-rw-r--r--crates/secd/src/command/admin.rs57
1 files changed, 0 insertions, 57 deletions
diff --git a/crates/secd/src/command/admin.rs b/crates/secd/src/command/admin.rs
deleted file mode 100644
index b04dbef..0000000
--- a/crates/secd/src/command/admin.rs
+++ /dev/null
@@ -1,57 +0,0 @@
-use std::str::FromStr;
-
-use time::OffsetDateTime;
-use url::Url;
-
-use crate::{OauthProviderName, Secd, SecdError};
-
-impl OauthProviderName {
- fn base_url(&self) -> Url {
- match self {
- OauthProviderName::Google => {
- Url::from_str("https://accounts.google.com/o/oauth2/v2/auth").unwrap()
- }
- OauthProviderName::Microsoft => {
- Url::from_str("https://login.microsoftonline.com/common/oauth2/v2.0/authorize")
- .unwrap()
- }
- _ => unimplemented!(),
- }
- }
-
- fn default_scope(&self) -> String {
- match self {
- OauthProviderName::Google => "openid%20email".into(),
- OauthProviderName::Microsoft => "openid%20email".into(),
- _ => unimplemented!(),
- }
- }
-}
-
-impl Secd {
- pub async fn create_oauth_provider(
- &self,
- provider: &OauthProviderName,
- client_id: String,
- client_secret: String,
- redirect_url: Url,
- ) -> Result<(), SecdError> {
- self.store
- .write_oauth_provider(&crate::OauthProvider {
- name: provider.clone(),
- flow: Some("default".into()),
- base_url: provider.base_url(),
- response: crate::OauthResponseType::Code,
- default_scope: provider.default_scope(),
- client_id,
- client_secret,
- redirect_url,
- created_at: OffsetDateTime::now_utc(),
- deleted_at: None,
- })
- .await
- .map_err(|_| SecdError::Todo)?;
-
- Ok(())
- }
-}