mirror of
https://git.ngram.ca/OpenJam/rc-servers
synced 2026-08-23 23:08:52 +00:00
Add logout endpoint for rc_society; close #140
This commit is contained in:
@@ -29,7 +29,8 @@
|
||||
<div class="form-stripe">
|
||||
<div class="form-header-right">
|
||||
Welcome {{form.display_name}}! |
|
||||
<a href="/">Home</a>
|
||||
<a href="/">Home</a> |
|
||||
<a href="/logout">Sign Out</a>
|
||||
</div>
|
||||
<h1 class="form-banner">{{form.display_name}} Dashboard</h1>
|
||||
{{#if error}}
|
||||
|
||||
@@ -29,7 +29,9 @@
|
||||
<div class="form-stripe">
|
||||
<div class="form-header-right">
|
||||
Welcome {{form.display_name}}! |
|
||||
<a href="/">Home</a>
|
||||
<a href="/">Home</a> |
|
||||
<a href="/dashboard">Dashboard</a> |
|
||||
<a href="/logout">Sign Out</a>
|
||||
</div>
|
||||
<h1 class="form-banner">{{form.display_name}} Garage {{#if form.garage}}#{{form.garage.slot}}{{/if}} Import</h1>
|
||||
{{#if error}}
|
||||
|
||||
@@ -29,7 +29,9 @@
|
||||
<div class="form-stripe">
|
||||
<div class="form-header-right">
|
||||
Welcome {{form.display_name}}! |
|
||||
<a href="/">Home</a>
|
||||
<a href="/">Home</a> |
|
||||
<a href="/dashboard">Dashboard</a> |
|
||||
<a href="/logout">Sign Out</a>
|
||||
</div>
|
||||
<h1 class="form-banner">{{form.display_name}} Garage #{{form.garage.slot}}</h1>
|
||||
{{#if error}}
|
||||
|
||||
@@ -29,7 +29,9 @@
|
||||
<div class="form-stripe">
|
||||
<div class="form-header-right">
|
||||
Welcome {{form.display_name}}! |
|
||||
<a href="/">Home</a>
|
||||
<a href="/">Home</a> |
|
||||
<a href="/dashboard">Dashboard</a> |
|
||||
<a href="/logout">Sign Out</a>
|
||||
</div>
|
||||
<h1 class="form-banner">{{form.display_name}} Garages</h1>
|
||||
{{#if error}}
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
<div class="form-header-right">
|
||||
{{#if form.is_logged_in}}
|
||||
Welcome {{form.display_name}}! |
|
||||
<a href="/dashboard">Dashboard</a>
|
||||
<a href="/dashboard">Dashboard</a> |
|
||||
<a href="/logout">Sign Out</a>
|
||||
{{else}}
|
||||
<a href="/login">Login</a>
|
||||
{{/if}}
|
||||
|
||||
@@ -18,7 +18,7 @@ body {
|
||||
}
|
||||
.form-header-right {
|
||||
position: relative;
|
||||
width: 25%;
|
||||
width: 50%;
|
||||
text-align: right;
|
||||
margin: 0 0 0 auto;
|
||||
box-sizing: border-box;
|
||||
|
||||
@@ -29,7 +29,9 @@
|
||||
<div class="form-stripe">
|
||||
<div class="form-header-right">
|
||||
Welcome {{form.display_name}}! |
|
||||
<a href="/">Home</a>
|
||||
<a href="/">Home</a> |
|
||||
<a href="/dashboard">Dashboard</a> |
|
||||
<a href="/logout">Sign Out</a>
|
||||
</div>
|
||||
<h1 class="form-banner">{{form.display_name}} Federation Settings</h1>
|
||||
{{#if error}}
|
||||
|
||||
@@ -86,6 +86,7 @@ async fn main() -> std::io::Result<()> {
|
||||
.service(version_info)
|
||||
.service(web::login::form_submit)
|
||||
.service(web::login::form_load)
|
||||
.service(web::logout::get)
|
||||
.service(web::favicon::favicon_standard)
|
||||
.service(web::dashboard::get)
|
||||
.service(web::dashboard::post) // for login redirect
|
||||
|
||||
12
rc_society/src/web/logout.rs
Normal file
12
rc_society/src/web/logout.rs
Normal file
@@ -0,0 +1,12 @@
|
||||
use actix_web::{get, web::Redirect, Responder, HttpRequest};
|
||||
use actix_identity::Identity;
|
||||
|
||||
#[get("/logout")]
|
||||
pub async fn get(user_opt: Option<Identity>, req: HttpRequest) -> Result<impl Responder, actix_web::error::Error> {
|
||||
if let Some(user) = user_opt {
|
||||
user.logout();
|
||||
}
|
||||
Ok(Redirect::to("/")
|
||||
.respond_to(&req)
|
||||
.map_into_boxed_body())
|
||||
}
|
||||
@@ -4,6 +4,7 @@ pub mod favicon;
|
||||
pub mod index;
|
||||
pub mod garage;
|
||||
pub mod user_federation;
|
||||
pub mod logout;
|
||||
|
||||
use serde::Serialize;
|
||||
use actix_web::{web::{Html, Redirect}, Responder};
|
||||
|
||||
Reference in New Issue
Block a user