16159: Expires token after logout (WIP)
[arvados.git] / lib / controller / localdb / logout.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 package localdb
6
7 import (
8         "context"
9
10         "git.arvados.org/arvados.git/lib/ctrlctx"
11         "git.arvados.org/arvados.git/sdk/go/arvados"
12 )
13
14 func (conn *Conn) ExpireAPIClientAuthorization(ctx context.Context) error {
15         aca, err := conn.railsProxy.APIClientAuthorizationCurrent(ctx, arvados.GetOptions{})
16         if err != nil {
17                 return err
18         }
19         tx, err := ctrlctx.CurrentTx(ctx)
20         if err != nil {
21                 return err
22         }
23
24         err = tx.QueryRowxContext(ctx, "UPDATE api_client_authorizations SET expires_at=current_timestamp WHERE uuid=$1", aca.UUID).Err()
25         if err != nil {
26                 return err
27         }
28
29         return nil
30 }