Skip to content

Commit

Permalink
Fix creator/initiator in public and user shares (cs3org#3878)
Browse files Browse the repository at this point in the history
  • Loading branch information
gmgigi96 committed Jun 5, 2023
1 parent 0222bff commit c167461
Show file tree
Hide file tree
Showing 5 changed files with 178 additions and 54 deletions.
3 changes: 3 additions & 0 deletions changelog/unreleased/fix-users-shares.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Bugfix: Fix creator/initiator in public and user shares

https://github.com/cs3org/reva/pull/3878
40 changes: 31 additions & 9 deletions pkg/cbox/publicshare/sql/sql.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
"syscall"
"time"

gatewayv1beta1 "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1"
user "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
link "github.com/cs3org/go-cs3apis/cs3/sharing/link/v1beta1"
Expand Down Expand Up @@ -71,8 +72,9 @@ type config struct {
}

type manager struct {
c *config
db *sql.DB
c *config
db *sql.DB
client gatewayv1beta1.GatewayAPIClient
}

func (c *config) init() {
Expand Down Expand Up @@ -118,9 +120,15 @@ func New(m map[string]interface{}) (publicshare.Manager, error) {
return nil, err
}

gw, err := pool.GetGatewayServiceClient(pool.Endpoint(c.GatewaySvc))
if err != nil {
return nil, err
}

mgr := manager{
c: c,
db: db,
c: c,
db: db,
client: gw,
}
go mgr.startJanitorRun()

Expand Down Expand Up @@ -275,7 +283,11 @@ func (m *manager) getByToken(ctx context.Context, token string, u *user.User) (*
}
return nil, "", err
}
return conversions.ConvertToCS3PublicShare(s), s.ShareWith, nil
share, err := conversions.ConvertToCS3PublicShare(ctx, m.client, s)
if err != nil {
return nil, "", err
}
return share, s.ShareWith, nil
}

func (m *manager) getByID(ctx context.Context, id *link.PublicShareId, u *user.User) (*link.PublicShare, string, error) {
Expand All @@ -288,7 +300,11 @@ func (m *manager) getByID(ctx context.Context, id *link.PublicShareId, u *user.U
}
return nil, "", err
}
return conversions.ConvertToCS3PublicShare(s), s.ShareWith, nil
share, err := conversions.ConvertToCS3PublicShare(ctx, m.client, s)
if err != nil {
return nil, "", err
}
return share, s.ShareWith, nil
}

func (m *manager) GetPublicShare(ctx context.Context, u *user.User, ref *link.PublicShareReference, sign bool) (*link.PublicShare, error) {
Expand Down Expand Up @@ -385,13 +401,16 @@ func (m *manager) ListPublicShares(ctx context.Context, u *user.User, filters []
if err := rows.Scan(&s.UIDOwner, &s.UIDInitiator, &s.ShareWith, &s.Prefix, &s.ItemSource, &s.ItemType, &s.Token, &s.Expiration, &s.ShareName, &s.ID, &s.STime, &s.Permissions, &s.Quicklink, &s.Description); err != nil {
continue
}
cs3Share := conversions.ConvertToCS3PublicShare(s)
cs3Share, err := conversions.ConvertToCS3PublicShare(ctx, m.client, s)
if err != nil {
return nil, err
}
if expired(cs3Share) {
_ = m.cleanupExpiredShares()
} else {
if cs3Share.PasswordProtected && sign {
if err := publicshare.AddSignature(cs3Share, s.ShareWith); err != nil {
return nil, err
continue
}
}
shares = append(shares, cs3Share)
Expand Down Expand Up @@ -448,7 +467,10 @@ func (m *manager) GetPublicShareByToken(ctx context.Context, token string, auth
}
return nil, err
}
cs3Share := conversions.ConvertToCS3PublicShare(s)
cs3Share, err := conversions.ConvertToCS3PublicShare(ctx, m.client, s)
if err != nil {
return nil, err
}
if expired(cs3Share) {
if err := m.cleanupExpiredShares(); err != nil {
return nil, err
Expand Down
53 changes: 43 additions & 10 deletions pkg/cbox/share/sql/sql.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
"strings"
"time"

gatewayv1beta1 "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1"
rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
collaboration "github.com/cs3org/go-cs3apis/cs3/sharing/collaboration/v1beta1"
provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
Expand Down Expand Up @@ -70,8 +71,9 @@ type config struct {
}

type mgr struct {
c *config
db *sql.DB
c *config
db *sql.DB
client gatewayv1beta1.GatewayAPIClient
}

// New returns a new share manager.
Expand All @@ -87,9 +89,15 @@ func New(m map[string]interface{}) (share.Manager, error) {
return nil, err
}

gw, err := pool.GetGatewayServiceClient(pool.Endpoint(c.GatewaySvc))
if err != nil {
return nil, err
}

return &mgr{
c: c,
db: db,
c: c,
db: db,
client: gw,
}, nil
}

Expand Down Expand Up @@ -183,7 +191,11 @@ func (m *mgr) getByID(ctx context.Context, id *collaboration.ShareId) (*collabor
}
return nil, err
}
return conversions.ConvertToCS3Share(s), nil
share, err := conversions.ConvertToCS3Share(ctx, m.client, s)
if err != nil {
return nil, err
}
return share, nil
}

func (m *mgr) getByKey(ctx context.Context, key *collaboration.ShareKey) (*collaboration.Share, error) {
Expand All @@ -199,7 +211,11 @@ func (m *mgr) getByKey(ctx context.Context, key *collaboration.ShareKey) (*colla
}
return nil, err
}
return conversions.ConvertToCS3Share(s), nil
share, err := conversions.ConvertToCS3Share(ctx, m.client, s)
if err != nil {
return nil, err
}
return share, nil
}

func (m *mgr) GetShare(ctx context.Context, ref *collaboration.ShareReference) (*collaboration.Share, error) {
Expand Down Expand Up @@ -329,7 +345,11 @@ func (m *mgr) ListShares(ctx context.Context, filters []*collaboration.Filter) (
if err := rows.Scan(&s.UIDOwner, &s.UIDInitiator, &s.ShareWith, &s.Prefix, &s.ItemSource, &s.ItemType, &s.ID, &s.STime, &s.Permissions, &s.ShareType); err != nil {
continue
}
shares = append(shares, conversions.ConvertToCS3Share(s))
share, err := conversions.ConvertToCS3Share(ctx, m.client, s)
if err != nil {
continue
}
shares = append(shares, share)
}
if err = rows.Err(); err != nil {
return nil, err
Expand Down Expand Up @@ -382,7 +402,11 @@ func (m *mgr) ListReceivedShares(ctx context.Context, filters []*collaboration.F
if err := rows.Scan(&s.UIDOwner, &s.UIDInitiator, &s.ShareWith, &s.Prefix, &s.ItemSource, &s.ItemType, &s.ID, &s.STime, &s.Permissions, &s.ShareType, &s.State); err != nil {
continue
}
shares = append(shares, conversions.ConvertToCS3ReceivedShare(s))
share, err := conversions.ConvertToCS3ReceivedShare(ctx, m.client, s)
if err != nil {
continue
}
shares = append(shares, share)
}
if err = rows.Err(); err != nil {
return nil, err
Expand Down Expand Up @@ -417,7 +441,11 @@ func (m *mgr) getReceivedByID(ctx context.Context, id *collaboration.ShareId) (*
}
return nil, err
}
return conversions.ConvertToCS3ReceivedShare(s), nil
share, err := conversions.ConvertToCS3ReceivedShare(ctx, m.client, s)
if err != nil {
return nil, err
}
return share, nil
}

func (m *mgr) getReceivedByKey(ctx context.Context, key *collaboration.ShareKey) (*collaboration.ReceivedShare, error) {
Expand Down Expand Up @@ -448,7 +476,12 @@ func (m *mgr) getReceivedByKey(ctx context.Context, key *collaboration.ShareKey)
}
return nil, err
}
return conversions.ConvertToCS3ReceivedShare(s), nil

share, err := conversions.ConvertToCS3ReceivedShare(ctx, m.client, s)
if err != nil {
return nil, err
}
return share, nil
}

func (m *mgr) GetReceivedShare(ctx context.Context, ref *collaboration.ShareReference) (*collaboration.ReceivedShare, error) {
Expand Down
Loading

0 comments on commit c167461

Please sign in to comment.