diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-11-26 11:50:06 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-11-26 11:50:06 -0500 |
commit | 0ecea0fde96ac0409f346511f1c8108e1aa73078 (patch) | |
tree | fee8e1167ad61d46e942bfec3e03bf77413e5603 /teleterm-web/src/views/login.rs | |
parent | 1beada71234ff83d92e6e620edbfab4dcb760df5 (diff) | |
download | teleterm-0ecea0fde96ac0409f346511f1c8108e1aa73078.tar.gz teleterm-0ecea0fde96ac0409f346511f1c8108e1aa73078.zip |
read the oauth method configs in the webface
the oauth login link doesn't work yet, but the ui works at least
Diffstat (limited to 'teleterm-web/src/views/login.rs')
-rw-r--r-- | teleterm-web/src/views/login.rs | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/teleterm-web/src/views/login.rs b/teleterm-web/src/views/login.rs index a7d50c8..7f84f4d 100644 --- a/teleterm-web/src/views/login.rs +++ b/teleterm-web/src/views/login.rs @@ -1,6 +1,31 @@ use crate::prelude::*; -pub(crate) fn render(_: &crate::model::Model) -> Vec<Node<crate::Msg>> { +pub(crate) fn render(model: &crate::model::Model) -> Vec<Node<crate::Msg>> { + let plain = model.allowed_login_method(crate::protocol::AuthType::Plain); + let recurse_center_url = if model + .allowed_login_method(crate::protocol::AuthType::RecurseCenter) + { + model.oauth_login_url(crate::protocol::AuthType::RecurseCenter) + } else { + None + }; + + let mut view = vec![]; + + if plain { + view.extend(render_plain()); + } + if plain && recurse_center_url.is_some() { + view.push(seed::p!["or"]) + } + if let Some(url) = recurse_center_url { + view.extend(render_recurse_center(&url)); + } + + view +} + +fn render_plain() -> Vec<Node<crate::Msg>> { vec![seed::form![ seed::label![seed::attrs! { At::For => "username" }, "username"], seed::input![seed::attrs! { @@ -21,3 +46,12 @@ pub(crate) fn render(_: &crate::model::Model) -> Vec<Node<crate::Msg>> { }), ]] } + +fn render_recurse_center(url: &str) -> Vec<Node<crate::Msg>> { + vec![seed::a![ + seed::attrs! { + At::Href => url, + }, + "login via oauth" + ]] +} |