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-stripe">
|
||||||
<div class="form-header-right">
|
<div class="form-header-right">
|
||||||
Welcome {{form.display_name}}! |
|
Welcome {{form.display_name}}! |
|
||||||
<a href="/">Home</a>
|
<a href="/">Home</a> |
|
||||||
|
<a href="/logout">Sign Out</a>
|
||||||
</div>
|
</div>
|
||||||
<h1 class="form-banner">{{form.display_name}} Dashboard</h1>
|
<h1 class="form-banner">{{form.display_name}} Dashboard</h1>
|
||||||
{{#if error}}
|
{{#if error}}
|
||||||
|
|||||||
@@ -29,7 +29,9 @@
|
|||||||
<div class="form-stripe">
|
<div class="form-stripe">
|
||||||
<div class="form-header-right">
|
<div class="form-header-right">
|
||||||
Welcome {{form.display_name}}! |
|
Welcome {{form.display_name}}! |
|
||||||
<a href="/">Home</a>
|
<a href="/">Home</a> |
|
||||||
|
<a href="/dashboard">Dashboard</a> |
|
||||||
|
<a href="/logout">Sign Out</a>
|
||||||
</div>
|
</div>
|
||||||
<h1 class="form-banner">{{form.display_name}} Garage {{#if form.garage}}#{{form.garage.slot}}{{/if}} Import</h1>
|
<h1 class="form-banner">{{form.display_name}} Garage {{#if form.garage}}#{{form.garage.slot}}{{/if}} Import</h1>
|
||||||
{{#if error}}
|
{{#if error}}
|
||||||
|
|||||||
@@ -29,7 +29,9 @@
|
|||||||
<div class="form-stripe">
|
<div class="form-stripe">
|
||||||
<div class="form-header-right">
|
<div class="form-header-right">
|
||||||
Welcome {{form.display_name}}! |
|
Welcome {{form.display_name}}! |
|
||||||
<a href="/">Home</a>
|
<a href="/">Home</a> |
|
||||||
|
<a href="/dashboard">Dashboard</a> |
|
||||||
|
<a href="/logout">Sign Out</a>
|
||||||
</div>
|
</div>
|
||||||
<h1 class="form-banner">{{form.display_name}} Garage #{{form.garage.slot}}</h1>
|
<h1 class="form-banner">{{form.display_name}} Garage #{{form.garage.slot}}</h1>
|
||||||
{{#if error}}
|
{{#if error}}
|
||||||
|
|||||||
@@ -29,7 +29,9 @@
|
|||||||
<div class="form-stripe">
|
<div class="form-stripe">
|
||||||
<div class="form-header-right">
|
<div class="form-header-right">
|
||||||
Welcome {{form.display_name}}! |
|
Welcome {{form.display_name}}! |
|
||||||
<a href="/">Home</a>
|
<a href="/">Home</a> |
|
||||||
|
<a href="/dashboard">Dashboard</a> |
|
||||||
|
<a href="/logout">Sign Out</a>
|
||||||
</div>
|
</div>
|
||||||
<h1 class="form-banner">{{form.display_name}} Garages</h1>
|
<h1 class="form-banner">{{form.display_name}} Garages</h1>
|
||||||
{{#if error}}
|
{{#if error}}
|
||||||
|
|||||||
@@ -29,7 +29,8 @@
|
|||||||
<div class="form-header-right">
|
<div class="form-header-right">
|
||||||
{{#if form.is_logged_in}}
|
{{#if form.is_logged_in}}
|
||||||
Welcome {{form.display_name}}! |
|
Welcome {{form.display_name}}! |
|
||||||
<a href="/dashboard">Dashboard</a>
|
<a href="/dashboard">Dashboard</a> |
|
||||||
|
<a href="/logout">Sign Out</a>
|
||||||
{{else}}
|
{{else}}
|
||||||
<a href="/login">Login</a>
|
<a href="/login">Login</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ body {
|
|||||||
}
|
}
|
||||||
.form-header-right {
|
.form-header-right {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 25%;
|
width: 50%;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
margin: 0 0 0 auto;
|
margin: 0 0 0 auto;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|||||||
@@ -29,7 +29,9 @@
|
|||||||
<div class="form-stripe">
|
<div class="form-stripe">
|
||||||
<div class="form-header-right">
|
<div class="form-header-right">
|
||||||
Welcome {{form.display_name}}! |
|
Welcome {{form.display_name}}! |
|
||||||
<a href="/">Home</a>
|
<a href="/">Home</a> |
|
||||||
|
<a href="/dashboard">Dashboard</a> |
|
||||||
|
<a href="/logout">Sign Out</a>
|
||||||
</div>
|
</div>
|
||||||
<h1 class="form-banner">{{form.display_name}} Federation Settings</h1>
|
<h1 class="form-banner">{{form.display_name}} Federation Settings</h1>
|
||||||
{{#if error}}
|
{{#if error}}
|
||||||
|
|||||||
@@ -86,6 +86,7 @@ async fn main() -> std::io::Result<()> {
|
|||||||
.service(version_info)
|
.service(version_info)
|
||||||
.service(web::login::form_submit)
|
.service(web::login::form_submit)
|
||||||
.service(web::login::form_load)
|
.service(web::login::form_load)
|
||||||
|
.service(web::logout::get)
|
||||||
.service(web::favicon::favicon_standard)
|
.service(web::favicon::favicon_standard)
|
||||||
.service(web::dashboard::get)
|
.service(web::dashboard::get)
|
||||||
.service(web::dashboard::post) // for login redirect
|
.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 index;
|
||||||
pub mod garage;
|
pub mod garage;
|
||||||
pub mod user_federation;
|
pub mod user_federation;
|
||||||
|
pub mod logout;
|
||||||
|
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use actix_web::{web::{Html, Redirect}, Responder};
|
use actix_web::{web::{Html, Redirect}, Responder};
|
||||||
|
|||||||
Reference in New Issue
Block a user