@@ -50,6 +50,11 @@ type PublicShareMgr struct {
5050 db * gorm.DB
5151}
5252
53+ type ExpiryRange struct {
54+ From time.Time
55+ To time.Time
56+ }
57+
5358func (PublicShareMgr ) RevaPlugin () reva.PluginInfo {
5459 return reva.PluginInfo {
5560 ID : "grpc.services.publicshareprovider.drivers.sql" ,
@@ -252,7 +257,7 @@ func (m *PublicShareMgr) GetPublicShare(ctx context.Context, u *user.User, ref *
252257
253258// List public shares that match the given filters
254259func (m * PublicShareMgr ) ListPublicShares (ctx context.Context , u * user.User , filters []* link.ListPublicSharesRequest_Filter , md * provider.ResourceInfo , sign bool ) ([]* link.PublicShare , error ) {
255- links , err := m .ListPublicLinks (ctx , u , filters , md , sign )
260+ links , err := m .ListPublicLinks (ctx , u , filters , md , nil , sign )
256261 if err != nil {
257262 return nil , err
258263 }
@@ -308,14 +313,18 @@ func (m *PublicShareMgr) GetPublicShareByToken(ctx context.Context, token string
308313
309314// List public links in the CERN-specific format. Used in cernboxcop.
310315// Note: this method does not filter for orphaned or expired links!
311- func (m * PublicShareMgr ) ListPublicLinks (ctx context.Context , u * user.User , filters []* link.ListPublicSharesRequest_Filter , md * provider.ResourceInfo , sign bool ) ([]model.PublicLink , error ) {
316+ func (m * PublicShareMgr ) ListPublicLinks (ctx context.Context , u * user.User , filters []* link.ListPublicSharesRequest_Filter , md * provider.ResourceInfo , expiry * ExpiryRange , sign bool ) ([]model.PublicLink , error ) {
312317 query := m .db .Model (& model.PublicLink {})
313318
314319 if u != nil {
315320 uid := conversions .FormatUserID (u .Id )
316321 query = query .Where ("uid_owner = ? or uid_initiator = ?" , uid , uid )
317322 }
318323
324+ if expiry != nil {
325+ query = query .Where ("expiration >= ? and expiration <= ?" , expiry .From , expiry .To )
326+ }
327+
319328 // Append filters
320329 m .appendLinkFiltersToQuery (query , filters )
321330
0 commit comments