Rename functions, templates, paths to delete key bindings.

- This change consistently names things related to key binding
    deletion.

  - It also moves it out of the /vks/v1 prefix.  Iff we decide to
    make (parts of) it machine-usable, we can (partially) move it back
    in.
This commit is contained in:
Justus Winter 2019-03-12 14:02:47 +01:00
parent 9c6449d542
commit 5f684b7d26
No known key found for this signature in database
GPG Key ID: 686F55B4AB2B3386
8 changed files with 26 additions and 22 deletions

View File

@ -1,6 +1,6 @@
{{#> layout }}
<div class="row">
<form action="/vks/v1/manage" method="POST">
<form action="/delete" method="POST">
<div class="manage">
<input type="text" name="search_term" class="manageEmail" autofocus
placeholder="Your Email / Key ID / Fingerprint">

View File

@ -17,7 +17,7 @@
To de-list your key on {{domain}}, follow this link:
</p>
<p>
<a href="https://{{domain}}/vks/v1/confirm/{{token}}">https://{{domain}}/vks/v1/confirm/{{token}}</a>
<a href="https://{{domain}}/delete/{{token}}">https://{{domain}}/delete/{{token}}</a>
</p>
<p>
If you do not want to de-list your key, please ignore this

View File

@ -5,6 +5,6 @@ If it was not you, please ignore this email.
To de-list your key on {{domain}}, follow this link:
https://{{domain}}/vks/v1/confirm/{{token}}
https://{{domain}}/delete/{{token}}
If you do not want to de-list your key, please ignore this email.

View File

@ -1,7 +1,7 @@
{{#> layout }}
{{> search-form}}
<div class="row">
<p>You can also <a href="/vks/v1/publish">upload</a> or <a href="/vks/v1/manage">delete</a> your key.</p>
<p>You can also <a href="/vks/v1/publish">upload</a> or <a href="/delete">delete</a> your key.</p>
</div>
<div class="row">

View File

@ -19,7 +19,7 @@
</div>
<div class="row">
<p>You can delete an uploaded key <a href="/vks/v1/manage">here</a>.</p>
<p>You can delete an uploaded key <a href="/delete">here</a>.</p>
</div>
<script>

View File

@ -79,3 +79,7 @@ location = /apidoc {
location /vks/v1/ {
proxy_pass http://127.0.0.1:8080;
}
location = /delete {
proxy_pass http://127.0.0.1:8080;
}

View File

@ -323,9 +323,9 @@ fn verify(state: rocket::State<State>,
}
}
#[get("/vks/v1/manage")]
fn manage() -> result::Result<Template, Custom<String>> {
Ok(Template::render("manage", templates::Index::new(None)))
#[get("/delete")]
fn delete() -> result::Result<Template, Custom<String>> {
Ok(Template::render("delete", templates::Index::new(None)))
}
#[derive(FromForm)]
@ -333,8 +333,8 @@ struct ManageRequest {
search_term: String,
}
#[post("/vks/v1/manage", data="<request>")]
fn manage_post(state: rocket::State<State>,
#[post("/delete", data="<request>")]
fn delete_post(state: rocket::State<State>,
db: rocket::State<Polymorphic>,
mail_service: rocket::State<mail::Service>,
request: Form<ManageRequest>) -> MyResponse {
@ -347,7 +347,7 @@ fn manage_post(state: rocket::State<State>,
let tpk = match db.lookup(&query) {
Ok(Some(tpk)) => tpk,
Ok(None) => return MyResponse::not_found(
Some("manage"),
Some("delete"),
Some(format!("No such key found for {:?}", request.search_term))),
Err(e) => return MyResponse::ise(e),
};
@ -371,8 +371,8 @@ fn manage_post(state: rocket::State<State>,
}
}
#[get("/vks/v1/confirm/<token>")]
fn confirm(
#[get("/delete/<token>")]
fn delete_confirm(
db: rocket::State<Polymorphic>, token: String,
) -> result::Result<Template, Custom<String>> {
match db.confirm_deletion(&token) {
@ -383,7 +383,7 @@ fn confirm(
commit: env!("VERGEN_SHA_SHORT").to_string(),
};
Ok(Template::render("confirm", context))
Ok(Template::render("deletion-result", context))
}
Ok(false) | Err(_) => {
let context = templates::Confirm {
@ -392,7 +392,7 @@ fn confirm(
commit: env!("VERGEN_SHA_SHORT").to_string(),
};
Ok(Template::render("confirm", context))
Ok(Template::render("deletion-result", context))
}
}
}
@ -433,12 +433,12 @@ fn rocket_factory(rocket: rocket::Rocket) -> Result<rocket::Rocket> {
vks_v1_by_fingerprint,
vks_v1_by_keyid,
// User interaction.
manage,
manage_post,
delete,
delete_post,
delete_confirm,
upload::vks_publish,
upload::vks_publish_submit,
verify,
confirm,
// HKP
hkp::pks_lookup,
hkp::pks_add,
@ -462,8 +462,8 @@ fn rocket_factory(rocket: rocket::Rocket) -> Result<rocket::Rocket> {
// Mail service
let template_dir: PathBuf = rocket.config().get_str("template_dir")?.into();
let from = rocket.config().get_str("from")?.to_string();
let confirm_html = template_dir.join("confirm-email-html.hbs");
let confirm_txt = template_dir.join("confirm-email-txt.hbs");
let confirm_html = template_dir.join("deletion-email-html.hbs");
let confirm_txt = template_dir.join("deletion-email-txt.hbs");
let verify_html = template_dir.join("verify-email-html.hbs");
let verify_txt = template_dir.join("verify-email-txt.hbs");
@ -847,7 +847,7 @@ pub mod tests {
fn check_mails_and_confirm_deletion(client: &Client, filemail_path: &Path) {
let confirm_re =
regex::bytes::Regex::new("https://domain(/vks/v1/confirm[^ \t\n]*)")
regex::bytes::Regex::new("https://domain(/delete/[^ \t\n]*)")
.unwrap();
let confirm_mail = pop_mail(filemail_path).unwrap().unwrap();
let confirm_bytes = confirm_mail.message();
@ -907,7 +907,7 @@ pub mod tests {
let encoded = ::url::form_urlencoded::Serializer::new(String::new())
.append_pair("search_term", search_term)
.finish();
let response = client.post("/vks/v1/manage")
let response = client.post("/delete")
.header(ContentType::Form)
.body(encoded.as_bytes())
.dispatch();