@@ -24,8 +24,8 @@ pub fn me(req: &mut dyn Request) -> AppResult<Response> {
24
24
// perhaps adding `req.mut_extensions().insert(user)` to the
25
25
// update_user route, however this somehow does not seem to work
26
26
27
- let user_id = req. user ( ) ?. id ;
28
27
let conn = req. db_conn ( ) ?;
28
+ let user_id = req. authenticate ( & conn) ?. user_id ( ) ;
29
29
30
30
let ( user, verified, email, verification_sent) = users:: table
31
31
. find ( user_id)
@@ -64,10 +64,10 @@ pub fn me(req: &mut dyn Request) -> AppResult<Response> {
64
64
pub fn updates ( req : & mut dyn Request ) -> AppResult < Response > {
65
65
use diesel:: dsl:: any;
66
66
67
- let user = req. user ( ) ?;
68
67
let conn = req. db_conn ( ) ?;
68
+ let user = req. authenticate ( & conn) ?. find_user ( & conn) ?;
69
69
70
- let followed_crates = Follow :: belonging_to ( user) . select ( follows:: crate_id) ;
70
+ let followed_crates = Follow :: belonging_to ( & user) . select ( follows:: crate_id) ;
71
71
let data = versions:: table
72
72
. inner_join ( crates:: table)
73
73
. left_outer_join ( users:: table)
@@ -118,12 +118,12 @@ pub fn update_user(req: &mut dyn Request) -> AppResult<Response> {
118
118
let mut body = String :: new ( ) ;
119
119
120
120
req. body ( ) . read_to_string ( & mut body) ?;
121
- let user = req. user ( ) ?;
122
- let name = & req. params ( ) [ "user_id" ] ;
121
+ let param_user_id = & req. params ( ) [ "user_id" ] ;
123
122
let conn = req. db_conn ( ) ?;
123
+ let user = req. authenticate ( & conn) ?. find_user ( & conn) ?;
124
124
125
125
// need to check if current user matches user to be updated
126
- if & user. id . to_string ( ) != name {
126
+ if & user. id . to_string ( ) != param_user_id {
127
127
return Err ( bad_request ( "current user does not match requested user" ) ) ;
128
128
}
129
129
@@ -195,19 +195,19 @@ pub fn regenerate_token_and_send(req: &mut dyn Request) -> AppResult<Response> {
195
195
use diesel:: dsl:: sql;
196
196
use diesel:: update;
197
197
198
- let user = req. user ( ) ?;
199
- let name = & req. params ( ) [ "user_id" ]
198
+ let param_user_id = req. params ( ) [ "user_id" ]
200
199
. parse :: < i32 > ( )
201
200
. chain_error ( || bad_request ( "invalid user_id" ) ) ?;
202
201
let conn = req. db_conn ( ) ?;
202
+ let user = req. authenticate ( & conn) ?. find_user ( & conn) ?;
203
203
204
204
// need to check if current user matches user to be updated
205
- if & user. id != name {
205
+ if user. id != param_user_id {
206
206
return Err ( bad_request ( "current user does not match requested user" ) ) ;
207
207
}
208
208
209
209
conn. transaction ( || {
210
- let email = update ( Email :: belonging_to ( user) )
210
+ let email = update ( Email :: belonging_to ( & user) )
211
211
. set ( emails:: token. eq ( sql ( "DEFAULT" ) ) )
212
212
. get_result :: < Email > ( & * conn)
213
213
. map_err ( |_| bad_request ( "Email could not be found" ) ) ?;
@@ -238,12 +238,12 @@ pub fn update_email_notifications(req: &mut dyn Request) -> AppResult<Response>
238
238
. map ( |c| ( c. id , c. email_notifications ) )
239
239
. collect ( ) ;
240
240
241
- let user = req. user ( ) ?;
242
241
let conn = req. db_conn ( ) ?;
242
+ let user_id = req. authenticate ( & conn) ?. user_id ( ) ;
243
243
244
244
// Build inserts from existing crates belonging to the current user
245
245
let to_insert = CrateOwner :: by_owner_kind ( OwnerKind :: User )
246
- . filter ( owner_id. eq ( user . id ) )
246
+ . filter ( owner_id. eq ( user_id ) )
247
247
. select ( ( crate_id, owner_id, owner_kind, email_notifications) )
248
248
. load ( & * conn) ?
249
249
. into_iter ( )
0 commit comments