Skip to content

Commit

Permalink
List only valid OCM token (#3722)
Browse files Browse the repository at this point in the history
* list only valid ocm token

* add changelog
  • Loading branch information
gmgigi96 authored Mar 10, 2023
1 parent 8cbc3c7 commit fea342d
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 2 deletions.
3 changes: 3 additions & 0 deletions changelog/unreleased/ocm-shares.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Enhancement: List only valid OCM tokens

https://github.com/cs3org/reva/pull/3722
7 changes: 6 additions & 1 deletion pkg/ocm/invite/repository/json/json.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
"os"
"strings"
"sync"
"time"

userpb "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
invitepb "github.com/cs3org/go-cs3apis/cs3/ocm/invite/v1beta1"
Expand Down Expand Up @@ -173,13 +174,17 @@ func (m *manager) ListTokens(ctx context.Context, initiator *userpb.UserId) ([]*

tokens := []*invitepb.InviteToken{}
for _, token := range m.model.Invites {
if utils.UserEqual(token.UserId, initiator) {
if utils.UserEqual(token.UserId, initiator) && !tokenIsExpired(token) {
tokens = append(tokens, token)
}
}
return tokens, nil
}

func tokenIsExpired(token *invitepb.InviteToken) bool {
return token.Expiration != nil && token.Expiration.Seconds > uint64(time.Now().Unix())
}

func (m *manager) AddRemoteUser(ctx context.Context, initiator *userpb.UserId, remoteUser *userpb.User) error {
m.Lock()
defer m.Unlock()
Expand Down
2 changes: 1 addition & 1 deletion pkg/ocm/invite/repository/sql/sql.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ func convertToInviteToken(tkn dbToken) *invitepb.InviteToken {
}

func (m *mgr) ListTokens(ctx context.Context, initiator *userpb.UserId) ([]*invitepb.InviteToken, error) {
query := "SELECT token, initiator, expiration, description FROM ocm_tokens WHERE initiator=?"
query := "SELECT token, initiator, expiration, description FROM ocm_tokens WHERE initiator=? AND expiration > NOW()"

tokens := []*invitepb.InviteToken{}
rows, err := m.db.QueryContext(ctx, query, conversions.FormatUserID(initiator))
Expand Down

0 comments on commit fea342d

Please sign in to comment.