Skip to content

Commit 86a9715

Browse files
committed
secrecy: Adjust to breaking API changes
1 parent 8940a4b commit 86a9715

File tree

6 files changed

+13
-13
lines changed

6 files changed

+13
-13
lines changed

src/controllers/krate/owners.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use diesel::prelude::*;
1313
use diesel_async::async_connection_wrapper::AsyncConnectionWrapper;
1414
use http::request::Parts;
1515
use http::StatusCode;
16-
use secrecy::{ExposeSecret, Secret};
16+
use secrecy::{ExposeSecret, SecretString};
1717
use serde_json::Value;
1818
use tokio::runtime::Handle;
1919

@@ -253,7 +253,7 @@ pub struct OwnerInviteEmail {
253253
inviter: String,
254254
domain: String,
255255
crate_name: String,
256-
token: Secret<String>,
256+
token: SecretString,
257257
}
258258

259259
impl OwnerInviteEmail {

src/controllers/user/update.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ pub async fn update_user(
9090
.do_update()
9191
.set(&new_email)
9292
.returning(emails::token)
93-
.get_result(conn)
94-
.map(SecretString::new)
93+
.get_result::<String>(conn)
94+
.map(SecretString::from)
9595
.map_err(|_| server_error("Error in creating token"))?;
9696

9797
// This swallows any errors that occur while attempting to send the email. Some users have

src/models/krate.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use diesel::dsl;
66
use diesel::pg::Pg;
77
use diesel::prelude::*;
88
use diesel::sql_types::{Bool, Text};
9-
use secrecy::Secret;
9+
use secrecy::SecretString;
1010
use thiserror::Error;
1111

1212
use crate::controllers::helpers::pagination::*;
@@ -522,7 +522,7 @@ impl Crate {
522522
pub enum NewOwnerInvite {
523523
/// The invitee was a [`User`], and they must accept the invite through the
524524
/// UI or via the provided invite token.
525-
User(User, Secret<String>),
525+
User(User, SecretString),
526526

527527
/// The invitee was a [`Team`], and they were immediately added as an owner.
528528
Team(Team),

src/models/user.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,9 @@ impl<'a> NewUser<'a> {
170170
.values(&new_email)
171171
.on_conflict_do_nothing()
172172
.returning(emails::token)
173-
.get_result(conn)
173+
.get_result::<String>(conn)
174174
.optional()?
175-
.map(SecretString::new);
175+
.map(SecretString::from);
176176

177177
if let Some(token) = token {
178178
// Swallows any error. Some users might insert an invalid email address here.

src/util/token.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use diesel::{deserialize::FromSql, pg::Pg, serialize::ToSql, sql_types::Bytea};
22
use rand::{distributions::Uniform, rngs::OsRng, Rng};
3-
use secrecy::{ExposeSecret, SecretString, SecretVec};
3+
use secrecy::{ExposeSecret, SecretSlice, SecretString};
44
use sha2::{Digest, Sha256};
55

66
const TOKEN_LENGTH: usize = 32;
@@ -19,7 +19,7 @@ pub struct InvalidTokenError;
1919

2020
#[derive(FromSqlRow, AsExpression)]
2121
#[diesel(sql_type = Bytea)]
22-
pub struct HashedToken(SecretVec<u8>);
22+
pub struct HashedToken(SecretSlice<u8>);
2323

2424
impl HashedToken {
2525
pub fn parse(plaintext: &str) -> Result<Self, InvalidTokenError> {
@@ -77,8 +77,8 @@ impl PlainToken {
7777
}
7878
}
7979

80-
impl ExposeSecret<String> for PlainToken {
81-
fn expose_secret(&self) -> &String {
80+
impl ExposeSecret<str> for PlainToken {
81+
fn expose_secret(&self) -> &str {
8282
self.0.expose_secret()
8383
}
8484
}

src/views.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ impl From<CreatedApiToken> for EncodableApiTokenWithToken {
436436
fn from(token: CreatedApiToken) -> Self {
437437
EncodableApiTokenWithToken {
438438
token: token.model,
439-
plaintext: token.plaintext.expose_secret().clone(),
439+
plaintext: token.plaintext.expose_secret().to_string(),
440440
}
441441
}
442442
}

0 commit comments

Comments
 (0)