Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions packages/core/shield/src/actions/sign_out.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ impl SignOutAction {
value: Some(InputValue::String {
value: Self::name(),
}),
addon_start: None,
addon_end: None,
}],
}])
}
Expand Down
14 changes: 14 additions & 0 deletions packages/core/shield/src/form.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ pub struct Input {
pub label: Option<String>,
pub r#type: InputType,
pub value: Option<InputValue>,
pub addon_start: Option<InputAddon>,
pub addon_end: Option<InputAddon>,
}

#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
Expand All @@ -26,6 +28,18 @@ pub enum InputValue {
String { value: String },
}

#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde(
tag = "type",
rename_all = "kebab-case",
rename_all_fields = "camelCase"
)]
pub enum InputAddon {
Image { src: String },
Text { text: String },
}

#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[serde(tag = "type", rename_all = "kebab-case")]
Expand Down
4 changes: 4 additions & 0 deletions packages/methods/shield-credentials/src/email_password.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ impl<U: User> Credentials<U, EmailPasswordData> for EmailPasswordCredentials<U>
..Default::default()
}),
value: None,
addon_start: None,
addon_end: None,
},
Input {
name: "password".to_owned(),
Expand All @@ -62,6 +64,8 @@ impl<U: User> Credentials<U, EmailPasswordData> for EmailPasswordCredentials<U>
..Default::default()
}),
value: None,
addon_start: None,
addon_end: None,
},
],
}
Expand Down
4 changes: 4 additions & 0 deletions packages/methods/shield-credentials/src/username_password.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ impl<U: User> Credentials<U, UsernamePasswordData> for UsernamePasswordCredentia
..Default::default()
}),
value: None,
addon_start: None,
addon_end: None,
},
Input {
name: "password".to_owned(),
Expand All @@ -62,6 +64,8 @@ impl<U: User> Credentials<U, UsernamePasswordData> for UsernamePasswordCredentia
..Default::default()
}),
value: None,
addon_start: None,
addon_end: None,
},
],
}
Expand Down
10 changes: 9 additions & 1 deletion packages/methods/shield-oauth/src/actions/sign_in.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use async_trait::async_trait;
use oauth2::{CsrfToken, PkceCodeChallenge, Scope, url::form_urlencoded::parse};
use serde::Deserialize;
use shield::{
Action, ActionMethod, ConfigurationError, Form, Input, InputType, InputTypeHidden,
Action, ActionMethod, ConfigurationError, Form, Input, InputAddon, InputType, InputTypeHidden,
InputTypeSubmit, InputValue, MethodSession, Provider, Request, Response, ResponseType,
SessionAction, ShieldError, SignInAction, erased_action,
};
Expand Down Expand Up @@ -61,6 +61,8 @@ impl Action<OauthProvider, OauthSession> for OauthSignInAction {
label: None,
r#type: InputType::Hidden(InputTypeHidden::default()),
value: Some(InputValue::Origin),
addon_start: None,
addon_end: None,
},
Input {
name: "redirectUrl".to_owned(),
Expand All @@ -69,6 +71,8 @@ impl Action<OauthProvider, OauthSession> for OauthSignInAction {
value: Some(InputValue::Query {
key: "redirectUrl".to_owned(),
}),
addon_start: None,
addon_end: None,
},
Input {
name: "submit".to_owned(),
Expand All @@ -77,6 +81,10 @@ impl Action<OauthProvider, OauthSession> for OauthSignInAction {
value: Some(InputValue::String {
value: format!("Sign in with {}", provider.name()),
}),
addon_start: provider
.icon_url
.map(|icon_url| InputAddon::Image { src: icon_url }),
addon_end: None,
},
],
}])
Expand Down
14 changes: 11 additions & 3 deletions packages/methods/shield-oidc/src/actions/sign_in.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ use openidconnect::{
};
use serde::Deserialize;
use shield::{
Action, ActionMethod, Form, Input, InputType, InputTypeHidden, InputTypeSubmit, InputValue,
MethodSession, Provider, Request, Response, ResponseType, SessionAction, ShieldError,
SignInAction, erased_action,
Action, ActionMethod, Form, Input, InputAddon, InputType, InputTypeHidden, InputTypeSubmit,
InputValue, MethodSession, Provider, Request, Response, ResponseType, SessionAction,
ShieldError, SignInAction, erased_action,
};
use url::Url;

Expand Down Expand Up @@ -64,6 +64,8 @@ impl Action<OidcProvider, OidcSession> for OidcSignInAction {
label: None,
r#type: InputType::Hidden(InputTypeHidden::default()),
value: Some(InputValue::Origin),
addon_start: None,
addon_end: None,
},
Input {
name: "redirectUrl".to_owned(),
Expand All @@ -72,6 +74,8 @@ impl Action<OidcProvider, OidcSession> for OidcSignInAction {
value: Some(InputValue::Query {
key: "redirectUrl".to_owned(),
}),
addon_start: None,
addon_end: None,
},
Input {
name: "submit".to_owned(),
Expand All @@ -80,6 +84,10 @@ impl Action<OidcProvider, OidcSession> for OidcSignInAction {
value: Some(InputValue::String {
value: format!("Sign in with {}", provider.name()),
}),
addon_start: provider
.icon_url
.map(|icon_url| InputAddon::Image { src: icon_url }),
addon_end: None,
},
],
}])
Expand Down
12 changes: 12 additions & 0 deletions packages/methods/shield-workos/src/actions/index.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,8 @@ impl Action<WorkosProvider, ()> for WorkosIndexAction {
..Default::default()
}),
value: None,
addon_start: None,
addon_end: None,
},
Input {
name: "submit".to_owned(),
Expand All @@ -96,6 +98,8 @@ impl Action<WorkosProvider, ()> for WorkosIndexAction {
value: Some(InputValue::String {
value: "Continue".to_owned(),
}),
addon_start: None,
addon_end: None,
},
],
}]
Expand All @@ -116,6 +120,8 @@ impl Action<WorkosProvider, ()> for WorkosIndexAction {
value: Some(InputValue::String {
value: oauth_provider.to_string(),
}),
addon_start: None,
addon_end: None,
},
Input {
name: "submit".to_owned(),
Expand All @@ -133,6 +139,8 @@ impl Action<WorkosProvider, ()> for WorkosIndexAction {
)
.to_owned(),
}),
addon_start: None,
addon_end: None,
},
],
}),
Expand All @@ -149,6 +157,8 @@ impl Action<WorkosProvider, ()> for WorkosIndexAction {
value: Some(InputValue::String {
value: connection.id.to_string(),
}),
addon_start: None,
addon_end: None,
},
Input {
name: "submit".to_owned(),
Expand All @@ -157,6 +167,8 @@ impl Action<WorkosProvider, ()> for WorkosIndexAction {
value: Some(InputValue::String {
value: format!("Continue with {}", connection.name).to_owned(),
}),
addon_start: None,
addon_end: None,
},
],
}))
Expand Down
10 changes: 10 additions & 0 deletions packages/methods/shield-workos/src/actions/sign_in.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ impl Action<WorkosProvider, ()> for WorkosSignInAction {
..Default::default()
}),
value: None,
addon_start: None,
addon_end: None,
},
Input {
name: "password".to_owned(),
Expand All @@ -71,6 +73,8 @@ impl Action<WorkosProvider, ()> for WorkosSignInAction {
..Default::default()
}),
value: None,
addon_start: None,
addon_end: None,
},
Input {
name: "submit".to_owned(),
Expand All @@ -79,6 +83,8 @@ impl Action<WorkosProvider, ()> for WorkosSignInAction {
value: Some(InputValue::String {
value: "Sign in".to_owned(),
}),
addon_start: None,
addon_end: None,
},
],
},
Expand All @@ -92,6 +98,8 @@ impl Action<WorkosProvider, ()> for WorkosSignInAction {
required: Some(true),
}),
value: None,
addon_start: None,
addon_end: None,
},
Input {
name: "submit".to_owned(),
Expand All @@ -100,6 +108,8 @@ impl Action<WorkosProvider, ()> for WorkosSignInAction {
value: Some(InputValue::String {
value: "Email sign-in code".to_owned(),
}),
addon_start: None,
addon_end: None,
},
],
},
Expand Down
10 changes: 10 additions & 0 deletions packages/methods/shield-workos/src/actions/sign_up.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ impl Action<WorkosProvider, ()> for WorkosSignUpAction {
..Default::default()
}),
value: None,
addon_start: None,
addon_end: None,
},
Input {
name: "password".to_owned(),
Expand All @@ -71,6 +73,8 @@ impl Action<WorkosProvider, ()> for WorkosSignUpAction {
..Default::default()
}),
value: None,
addon_start: None,
addon_end: None,
},
Input {
name: "submit".to_owned(),
Expand All @@ -79,6 +83,8 @@ impl Action<WorkosProvider, ()> for WorkosSignUpAction {
value: Some(InputValue::String {
value: "Sign up".to_owned(),
}),
addon_start: None,
addon_end: None,
},
],
},
Expand All @@ -92,6 +98,8 @@ impl Action<WorkosProvider, ()> for WorkosSignUpAction {
required: Some(true),
}),
value: None,
addon_start: None,
addon_end: None,
},
Input {
name: "submit".to_owned(),
Expand All @@ -100,6 +108,8 @@ impl Action<WorkosProvider, ()> for WorkosSignUpAction {
value: Some(InputValue::String {
value: "Email sign-up code".to_owned(),
}),
addon_start: None,
addon_end: None,
},
],
},
Expand Down