File tree Expand file tree Collapse file tree 2 files changed +14
-4
lines changed Expand file tree Collapse file tree 2 files changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -116,11 +116,12 @@ pub fn revoke_current(req: &mut dyn RequestExt) -> EndpointResult {
116
116
. api_token_id ( )
117
117
. ok_or_else ( || bad_request ( "token not provided" ) ) ?;
118
118
let conn = req. db_conn ( ) ?;
119
- diesel:: delete ( {
119
+ diesel:: update ( {
120
120
use self :: api_tokens:: dsl:: * ;
121
121
api_tokens. filter ( id. eq ( api_token_id) )
122
122
} )
123
- . execute ( & * conn) ?;
123
+ . set ( api_tokens:: revoked. eq ( true ) )
124
+ . execute ( & * conn) ?;
124
125
125
126
#[ derive( Serialize ) ]
126
127
struct R { }
Original file line number Diff line number Diff line change @@ -280,7 +280,7 @@ fn revoke_current_token_success() {
280
280
281
281
// List tokens contains the token
282
282
app. db ( |conn| {
283
- let tokens = t ! ( ApiToken :: belonging_to( user. as_model( ) ) . load:: < ApiToken > ( conn) ) ;
283
+ let tokens: Vec < ApiToken > = assert_ok ! ( ApiToken :: belonging_to( user. as_model( ) ) . load( conn) ) ;
284
284
assert_eq ! ( tokens. len( ) , 1 ) ;
285
285
assert_eq ! ( tokens[ 0 ] . name, token. as_model( ) . name) ;
286
286
} ) ;
@@ -298,13 +298,22 @@ fn revoke_current_token_success() {
298
298
} ) ;
299
299
}
300
300
301
+ #[ test]
302
+ fn revoke_current_token_invalid ( ) {
303
+ let ( _, _, user) = TestApp :: init ( ) . with_user ( ) ;
304
+
305
+ user. delete :: < RevokedResponse > ( "/api/v1/tokens/current" )
306
+ . bad_with_status ( StatusCode :: BAD_REQUEST )
307
+ . assert_error ( "token not provided" ) ;
308
+ }
309
+
301
310
#[ test]
302
311
fn revoke_current_token_fail ( ) {
303
312
let ( app, _, user, token) = TestApp :: init ( ) . with_token ( ) ;
304
313
305
314
// List tokens contains the token
306
315
app. db ( |conn| {
307
- let tokens = t ! ( ApiToken :: belonging_to( user. as_model( ) ) . load:: < ApiToken > ( conn) ) ;
316
+ let tokens: Vec < ApiToken > = assert_ok ! ( ApiToken :: belonging_to( user. as_model( ) ) . load( conn) ) ;
308
317
assert_eq ! ( tokens. len( ) , 1 ) ;
309
318
assert_eq ! ( tokens[ 0 ] . name, token. as_model( ) . name) ;
310
319
} ) ;
You can’t perform that action at this time.
0 commit comments