aboutsummaryrefslogtreecommitdiffstats
path: root/teleterm-web/src/views/login.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-26 11:50:06 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-26 11:50:06 -0500
commit0ecea0fde96ac0409f346511f1c8108e1aa73078 (patch)
treefee8e1167ad61d46e942bfec3e03bf77413e5603 /teleterm-web/src/views/login.rs
parent1beada71234ff83d92e6e620edbfab4dcb760df5 (diff)
downloadteleterm-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.rs36
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"
+ ]]
+}