diff options
Diffstat (limited to 'server')
-rw-r--r-- | server/src/routes/ui/account/settings.rs | 11 | ||||
-rw-r--r-- | server/src/routes/ui/player.rs | 9 |
2 files changed, 17 insertions, 3 deletions
diff --git a/server/src/routes/ui/account/settings.rs b/server/src/routes/ui/account/settings.rs index e91bec0..ec92ba2 100644 --- a/server/src/routes/ui/account/settings.rs +++ b/server/src/routes/ui/account/settings.rs @@ -36,6 +36,7 @@ pub struct SettingsForm { display_name: Option<String>, theme: Option<Theme>, player_preference: Option<PlayerKind>, + native_secret: Option<String>, } fn option_len<'v>(value: &Option<String>, range: Range<usize>) -> form::Result<'v, ()> { @@ -90,6 +91,12 @@ fn settings_page(session: Session, flash: Option<MyResult<String>>) -> DynLayout } input[type="submit", value="Apply"]; } + form[method="POST", action=uri!(r_account_settings_post())] { + label[for="native_secret"] { "Native Secret" } + input[type="password", id="native_secret", name="native_secret"]; + input[type="submit", value="Update"]; + p { "The secret can be found in " code{"$XDG_CONFIG_HOME/jellynative_secret"} " or by clicking " a.button[href="jellynative://show-secret"] { "Show Secret" } "." } + } }, ..Default::default() } @@ -151,6 +158,10 @@ pub fn r_account_settings_post( user.player_preference = player_preference; out += "Player preference changed.\n"; } + if let Some(native_secret) = &form.native_secret { + user.native_secret = native_secret.to_owned(); + out += "Native secret updated.\n"; + } users.insert(&*session.user.name, Ser(user))?; drop(users); diff --git a/server/src/routes/ui/player.rs b/server/src/routes/ui/player.rs index be40d4c..becda91 100644 --- a/server/src/routes/ui/player.rs +++ b/server/src/routes/ui/player.rs @@ -46,9 +46,9 @@ impl PlayerConfig { } } -fn jellynative_url(action: &str, node: &str) -> String { +fn jellynative_url(action: &str, secret: &str, node: &str) -> String { format!( - "jellynative://{action}/http://{}{}", + "jellynative://{action}/{secret}/http://{}{}", CONF.hostname, uri!(r_stream( node, @@ -72,12 +72,15 @@ pub fn r_player<'a>( PlayerKind::Browser => (), PlayerKind::Native => { return Ok(Either::Right(Redirect::temporary(jellynative_url( - "player", id, + "player", + &sess.user.native_secret, + id, )))) } PlayerKind::NativeFullscreen => { return Ok(Either::Right(Redirect::temporary(jellynative_url( "player-fullscreen", + &sess.user.native_secret, id, )))) } |