mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-23 13:09:23 -06:00
Merge pull request #6271 from aduffeck/fix-test-expectations
[full-ci] Fix test expectations
This commit is contained in:
@@ -165,7 +165,7 @@ config = {
|
||||
"earlyFail": True,
|
||||
},
|
||||
"e2eTests": {
|
||||
"skip": False,
|
||||
"skip": True,
|
||||
"earlyFail": True,
|
||||
},
|
||||
"rocketchat": {
|
||||
|
||||
2
go.mod
2
go.mod
@@ -13,7 +13,7 @@ require (
|
||||
github.com/coreos/go-oidc v2.2.1+incompatible
|
||||
github.com/coreos/go-oidc/v3 v3.4.0
|
||||
github.com/cs3org/go-cs3apis v0.0.0-20221012090518-ef2996678965
|
||||
github.com/cs3org/reva/v2 v2.13.2
|
||||
github.com/cs3org/reva/v2 v2.13.3-0.20230510083816-98d8707dea33
|
||||
github.com/disintegration/imaging v1.6.2
|
||||
github.com/dutchcoders/go-clamd v0.0.0-20170520113014-b970184f4d9e
|
||||
github.com/egirna/icap-client v0.1.1
|
||||
|
||||
4
go.sum
4
go.sum
@@ -627,8 +627,8 @@ github.com/crewjam/httperr v0.2.0 h1:b2BfXR8U3AlIHwNeFFvZ+BV1LFvKLlzMjzaTnZMybNo
|
||||
github.com/crewjam/httperr v0.2.0/go.mod h1:Jlz+Sg/XqBQhyMjdDiC+GNNRzZTD7x39Gu3pglZ5oH4=
|
||||
github.com/crewjam/saml v0.4.13 h1:TYHggH/hwP7eArqiXSJUvtOPNzQDyQ7vwmwEqlFWhMc=
|
||||
github.com/crewjam/saml v0.4.13/go.mod h1:igEejV+fihTIlHXYP8zOec3V5A8y3lws5bQBFsTm4gA=
|
||||
github.com/cs3org/reva/v2 v2.13.2 h1:M8UcHUMyYx8tbPyf68JgjxVpbMtqC5a6//BaBa5pEMY=
|
||||
github.com/cs3org/reva/v2 v2.13.2/go.mod h1:ZhUAORNpfKdMXO9LWcQta+DM77ArnqNnEB+b/Zgdmmk=
|
||||
github.com/cs3org/reva/v2 v2.13.3-0.20230510083816-98d8707dea33 h1:y6xBTPOADX3jVX1faEwKsFD0PjSCSxDAf2jJaFYLAao=
|
||||
github.com/cs3org/reva/v2 v2.13.3-0.20230510083816-98d8707dea33/go.mod h1:ZhUAORNpfKdMXO9LWcQta+DM77ArnqNnEB+b/Zgdmmk=
|
||||
github.com/cubewise-code/go-mime v0.0.0-20200519001935-8c5762b177d8 h1:Z9lwXumT5ACSmJ7WGnFl+OMLLjpz5uR2fyz7dC255FI=
|
||||
github.com/cubewise-code/go-mime v0.0.0-20200519001935-8c5762b177d8/go.mod h1:4abs/jPXcmJzYoYGF91JF9Uq9s/KL5n1jvFDix8KcqY=
|
||||
github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
|
||||
|
||||
@@ -219,7 +219,7 @@ cannot share a folder with create permission
|
||||
- [coreApiShareOperationsToShares1/gettingShares.feature:190](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L190)
|
||||
|
||||
#### [Public link enforce permissions](https://github.com/owncloud/ocis/issues/1269)
|
||||
- [coreApiSharePublicLink1/createPublicLinkShare.feature:355](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L355)
|
||||
- [coreApiSharePublicLink1/createPublicLinkShare.feature:340](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L340)
|
||||
|
||||
#### [download previews of other users file](https://github.com/owncloud/ocis/issues/2071)
|
||||
|
||||
@@ -365,7 +365,7 @@ API, search, favorites, config, capabilities, not existing endpoints, CORS and o
|
||||
- [coreApiAuthOcs/ocsGETAuth.feature:124](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L124)
|
||||
- [coreApiAuthOcs/ocsPOSTAuth.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPOSTAuth.feature#L11)
|
||||
- [coreApiAuthOcs/ocsPUTAuth.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPUTAuth.feature#L11)
|
||||
- [coreApiSharePublicLink1/createPublicLinkShare.feature:345](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L345)
|
||||
- [coreApiSharePublicLink1/createPublicLinkShare.feature:330](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L330)
|
||||
|
||||
#### [sending MKCOL requests to another user's webDav endpoints as normal user gives 404 instead of 403 ](https://github.com/owncloud/ocis/issues/3872)
|
||||
|
||||
|
||||
@@ -159,5 +159,28 @@ The expected failures in this file are from features in the owncloud/ocis repo.
|
||||
### [Adding the same user as multiple members in a single request results in listing the same user twice in the group](https://github.com/owncloud/ocis/issues/5855)
|
||||
- [apiGraph/addUserToGroup.feature:421](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiGraph/addUserToGroup.feature#L421)
|
||||
|
||||
### [Sharing of project space root via public link does no longer work](https://github.com/owncloud/ocis/issues/6278)
|
||||
- [apiSpaces/editPublicLinkOfSpace.feature:50](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/editPublicLinkOfSpace.feature#L50)
|
||||
- [apiSpaces/editPublicLinkOfSpace.feature:51](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/editPublicLinkOfSpace.feature#L51)
|
||||
- [apiSpaces/editPublicLinkOfSpace.feature:65](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/editPublicLinkOfSpace.feature#L65)
|
||||
- [apiSpaces/editPublicLinkOfSpace.feature:66](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/editPublicLinkOfSpace.feature#L66)
|
||||
- [apiSpaces/editPublicLinkOfSpace.feature:67](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/editPublicLinkOfSpace.feature#L67)
|
||||
- [apiSpaces/editPublicLinkOfSpace.feature:81](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/editPublicLinkOfSpace.feature#L81)
|
||||
- [apiSpaces/editPublicLinkOfSpace.feature:82](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/editPublicLinkOfSpace.feature#L82)
|
||||
- [apiSpaces/editPublicLinkOfSpace.feature:83](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/editPublicLinkOfSpace.feature#L83)
|
||||
- [apiSpaces/publicLink.feature:15](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/publicLink.feature#L15)
|
||||
- [apiSpaces/publicLink.feature:20](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/publicLink.feature#L20)
|
||||
- [apiSpaces/publicLink.feature:25](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/publicLink.feature#L25)
|
||||
- [apiSpaces/publicLink.feature:31](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/publicLink.feature#L31)
|
||||
- [apiSpaces/publicLink.feature:37](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpaces/publicLink.feature#L37)
|
||||
- [apiSpacesShares/publicLinkDownload.feature:17](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/publicLinkDownload.feature#L17)
|
||||
- [apiSpacesShares/shareSpacesViaLink.feature:45](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/shareSpacesViaLink.feature#L45)
|
||||
- [apiSpacesShares/shareSpacesViaLink.feature:46](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/shareSpacesViaLink.feature#L46)
|
||||
- [apiSpacesShares/shareSpacesViaLink.feature:47](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/shareSpacesViaLink.feature#L47)
|
||||
- [apiSpacesShares/shareSpacesViaLink.feature:50](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/shareSpacesViaLink.feature#L50)
|
||||
- [apiSpacesShares/shareSpacesViaLink.feature:86](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/shareSpacesViaLink.feature#L86)
|
||||
- [apiSpacesShares/shareSpacesViaLink.feature:87](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/shareSpacesViaLink.feature#L87)
|
||||
- [apiSpacesShares/shareSpacesViaLink.feature:90](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/apiSpacesShares/shareSpacesViaLink.feature#L90)
|
||||
|
||||
Note: always have an empty line at the end of this file.
|
||||
The bash script that processes this file requires that the last line has a newline on the end.
|
||||
|
||||
@@ -20,5 +20,5 @@ Feature: shares are received in the default folder for received shares
|
||||
And the HTTP status code of responses on each endpoint should be "<http_status_code>" respectively
|
||||
Examples:
|
||||
| ocs_api_version | ocs_status_code | http_status_code |
|
||||
| 1 | 100, 100, 404 | 200, 200, 204, 200 |
|
||||
| 2 | 200, 200, 404 | 200, 200, 204, 404 |
|
||||
| 1 | 100, 100, 400 | 200, 200, 204, 200 |
|
||||
| 2 | 200, 200, 400 | 200, 200, 204, 400 |
|
||||
|
||||
@@ -282,31 +282,16 @@ Feature: create a public link share
|
||||
| 2 | 200 |
|
||||
|
||||
@issue-1265 @issue-2079
|
||||
Scenario Outline: allow public sharing of the root on OCIS when the default permission is read and access using the public WebDAV API
|
||||
Scenario Outline: Do not allow public sharing of the root on OCIS when the default permission is read and access using the public WebDAV API
|
||||
Given using OCS API version "<ocs_api_version>"
|
||||
And user "Alice" has uploaded file with content "Random data" to "/randomfile.txt"
|
||||
When user "Alice" creates a public link share using the sharing API with settings
|
||||
| path | / |
|
||||
Then the OCS status code should be "<ocs_status_code>"
|
||||
And the HTTP status code should be "200"
|
||||
And the fields of the last response to user "Alice" should include
|
||||
| item_type | folder |
|
||||
| mimetype | httpd/unix-directory |
|
||||
| file_target | / |
|
||||
| path | / |
|
||||
| permissions | read |
|
||||
| share_type | public_link |
|
||||
| displayname_file_owner | %displayname% |
|
||||
| displayname_owner | %displayname% |
|
||||
| uid_file_owner | %username% |
|
||||
| uid_owner | %username% |
|
||||
| name | |
|
||||
And the public should be able to download file "/randomfile.txt" from inside the last public link shared folder using the new public WebDAV API without password and the content should be "Random data"
|
||||
And the public upload to the last publicly shared folder using the new public WebDAV API should fail with HTTP status code "403"
|
||||
And the HTTP status code should be "<http_status_code>"
|
||||
Examples:
|
||||
| ocs_api_version | ocs_status_code |
|
||||
| 1 | 100 |
|
||||
| 2 | 200 |
|
||||
| ocs_api_version | ocs_status_code | http_status_code |
|
||||
| 1 | 400 | 200 |
|
||||
| 2 | 400 | 400 |
|
||||
|
||||
@issue-2079
|
||||
Scenario Outline: user creates a public link share of a file with file name longer than 64 chars using the public WebDAV API
|
||||
|
||||
7
vendor/github.com/cs3org/reva/v2/internal/grpc/services/gateway/ocmshareprovider.go
generated
vendored
7
vendor/github.com/cs3org/reva/v2/internal/grpc/services/gateway/ocmshareprovider.go
generated
vendored
@@ -373,9 +373,10 @@ func (s *svc) UpdateReceivedOCMShare(ctx context.Context, req *ocm.UpdateReceive
|
||||
Status: createRefStatus,
|
||||
}, err
|
||||
case ocm.ShareState_SHARE_STATE_REJECTED:
|
||||
s.removeReference(ctx, req.GetShare().GetShare().ResourceId) // error is logged inside removeReference
|
||||
// FIXME we are ignoring an error from removeReference here
|
||||
return res, nil
|
||||
return &ocm.UpdateReceivedOCMShareResponse{
|
||||
Status: status.NewUnimplemented(ctx, err, "ocm share rejection not supported at the moment"),
|
||||
}, nil
|
||||
|
||||
}
|
||||
case "mount_point":
|
||||
// TODO(labkode): implementing updating mount point
|
||||
|
||||
97
vendor/github.com/cs3org/reva/v2/internal/grpc/services/gateway/usershareprovider.go
generated
vendored
97
vendor/github.com/cs3org/reva/v2/internal/grpc/services/gateway/usershareprovider.go
generated
vendored
@@ -20,7 +20,6 @@ package gateway
|
||||
|
||||
import (
|
||||
"context"
|
||||
"path"
|
||||
|
||||
rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
|
||||
collaboration "github.com/cs3org/go-cs3apis/cs3/sharing/collaboration/v1beta1"
|
||||
@@ -267,97 +266,6 @@ func (s *svc) UpdateReceivedShare(ctx context.Context, req *collaboration.Update
|
||||
*/
|
||||
}
|
||||
|
||||
func (s *svc) removeReference(ctx context.Context, resourceID *provider.ResourceId) *rpc.Status {
|
||||
log := appctx.GetLogger(ctx)
|
||||
|
||||
idReference := &provider.Reference{ResourceId: resourceID}
|
||||
storageProvider, _, err := s.find(ctx, idReference)
|
||||
if err != nil {
|
||||
appctx.GetLogger(ctx).
|
||||
Err(err).
|
||||
Interface("reference", idReference).
|
||||
Msg("removeReference: failed to get storage provider")
|
||||
if _, ok := err.(errtypes.IsNotFound); ok {
|
||||
return status.NewNotFound(ctx, "storage provider not found")
|
||||
}
|
||||
return status.NewInternal(ctx, "error finding storage provider")
|
||||
}
|
||||
|
||||
statRes, err := storageProvider.Stat(ctx, &provider.StatRequest{Ref: idReference})
|
||||
if err != nil {
|
||||
log.Error().Err(err).Interface("reference", idReference).Msg("removeReference: error calling Stat")
|
||||
return status.NewInternal(ctx, "gateway: error calling Stat for the share resource id: "+resourceID.String())
|
||||
}
|
||||
|
||||
// FIXME how can we delete a reference if the original resource was deleted?
|
||||
if statRes.Status.Code != rpc.Code_CODE_OK {
|
||||
log.Error().Interface("status", statRes.Status).Interface("reference", idReference).Msg("removeReference: error calling Stat")
|
||||
return status.NewInternal(ctx, "could not delete share reference")
|
||||
}
|
||||
|
||||
homeRes, err := s.GetHome(ctx, &provider.GetHomeRequest{})
|
||||
if err != nil {
|
||||
return status.NewInternal(ctx, "could not delete share reference")
|
||||
}
|
||||
|
||||
sharePath := path.Join(homeRes.Path, s.c.ShareFolder, path.Base(statRes.Info.Path))
|
||||
log.Debug().Str("share_path", sharePath).Msg("remove reference of share")
|
||||
|
||||
sharePathRef := &provider.Reference{Path: sharePath}
|
||||
homeProvider, providerInfo, err := s.find(ctx, sharePathRef)
|
||||
if err != nil {
|
||||
appctx.GetLogger(ctx).
|
||||
Err(err).
|
||||
Interface("reference", sharePathRef).
|
||||
Msg("removeReference: failed to get storage provider for share ref")
|
||||
if _, ok := err.(errtypes.IsNotFound); ok {
|
||||
return status.NewNotFound(ctx, "storage provider not found")
|
||||
}
|
||||
return status.NewInternal(ctx, "error finding storage provider")
|
||||
}
|
||||
|
||||
var (
|
||||
root *provider.ResourceId
|
||||
mountPath string
|
||||
)
|
||||
for _, space := range decodeSpaces(providerInfo) {
|
||||
mountPath = decodePath(space)
|
||||
root = space.Root
|
||||
break // TODO can there be more than one space for a path?
|
||||
}
|
||||
|
||||
ref := unwrap(sharePathRef, mountPath, root)
|
||||
|
||||
deleteReq := &provider.DeleteRequest{
|
||||
Opaque: &typesv1beta1.Opaque{
|
||||
Map: map[string]*typesv1beta1.OpaqueEntry{
|
||||
// This signals the storageprovider that we want to delete the share reference and not the underlying file.
|
||||
"deleting_shared_resource": {},
|
||||
},
|
||||
},
|
||||
Ref: ref,
|
||||
}
|
||||
|
||||
deleteResp, err := homeProvider.Delete(ctx, deleteReq)
|
||||
if err != nil {
|
||||
return status.NewInternal(ctx, "could not delete share reference")
|
||||
}
|
||||
|
||||
switch deleteResp.Status.Code {
|
||||
case rpc.Code_CODE_OK:
|
||||
// we can continue deleting the reference
|
||||
case rpc.Code_CODE_NOT_FOUND:
|
||||
// This is fine, we wanted to delete it anyway
|
||||
return status.NewOK(ctx)
|
||||
default:
|
||||
return status.NewInternal(ctx, "could not delete share reference")
|
||||
}
|
||||
|
||||
log.Debug().Str("share_path", sharePath).Msg("share reference successfully removed")
|
||||
|
||||
return status.NewOK(ctx)
|
||||
}
|
||||
|
||||
func (s *svc) denyGrant(ctx context.Context, id *provider.ResourceId, g *provider.Grantee, opaque *typesv1beta1.Opaque) (*rpc.Status, error) {
|
||||
ref := &provider.Reference{
|
||||
ResourceId: id,
|
||||
@@ -676,11 +584,6 @@ func (s *svc) removeShare(ctx context.Context, req *collaboration.RemoveShareReq
|
||||
return nil, errors.Wrap(err, "gateway: error calling RemoveShare")
|
||||
}
|
||||
|
||||
// we do not want to remove the reference if it is a reshare
|
||||
if utils.UserEqual(share.Owner, share.Creator) {
|
||||
s.removeReference(ctx, share.ResourceId)
|
||||
}
|
||||
|
||||
if s.c.CommitShareToStorageGrant {
|
||||
removeGrantStatus, err := s.removeGrant(ctx, share.ResourceId, share.Grantee, share.Permissions.Permissions, nil)
|
||||
if err != nil {
|
||||
|
||||
@@ -231,6 +231,13 @@ func (h *Handler) CreateShare(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
// check that this is a valid share
|
||||
if statRes.Info.Id.OpaqueId == statRes.Info.Id.SpaceId &&
|
||||
(shareType != int(conversions.ShareTypeSpaceMembershipUser) && shareType != int(conversions.ShareTypeSpaceMembershipGroup)) {
|
||||
response.WriteOCSError(w, r, http.StatusBadRequest, "Can not share space root", nil)
|
||||
return
|
||||
}
|
||||
|
||||
// check user has share permissions
|
||||
if !conversions.RoleFromResourcePermissions(statRes.Info.PermissionSet, false).OCSPermissions().Contain(conversions.PermissionShare) {
|
||||
response.WriteOCSError(w, r, http.StatusNotFound, "No share permission", nil)
|
||||
|
||||
@@ -78,6 +78,11 @@ func (h *Handler) getGrantee(ctx context.Context, name string) (provider.Grantee
|
||||
func (h *Handler) addSpaceMember(w http.ResponseWriter, r *http.Request, info *provider.ResourceInfo, role *conversions.Role, roleVal []byte) {
|
||||
ctx := r.Context()
|
||||
|
||||
if info.Space.SpaceType == "personal" {
|
||||
response.WriteOCSError(w, r, response.MetaBadRequest.StatusCode, "can not add members to personal spaces", nil)
|
||||
return
|
||||
}
|
||||
|
||||
shareWith := r.FormValue("shareWith")
|
||||
if shareWith == "" {
|
||||
response.WriteOCSError(w, r, response.MetaBadRequest.StatusCode, "missing shareWith", nil)
|
||||
|
||||
2
vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/upload/upload.go
generated
vendored
2
vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/upload/upload.go
generated
vendored
@@ -370,7 +370,7 @@ func (upload *Upload) cleanup(cleanNode, cleanBin, cleanInfo bool) {
|
||||
upload.Node = nil
|
||||
default:
|
||||
|
||||
if err := upload.lu.CopyMetadata(upload.Node.InternalPath(), p, func(attributeName string) bool {
|
||||
if err := upload.lu.CopyMetadata(p, upload.Node.InternalPath(), func(attributeName string) bool {
|
||||
return strings.HasPrefix(attributeName, prefixes.ChecksumPrefix) ||
|
||||
attributeName == prefixes.TypeAttr ||
|
||||
attributeName == prefixes.BlobIDAttr ||
|
||||
|
||||
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@@ -349,7 +349,7 @@ github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1
|
||||
github.com/cs3org/go-cs3apis/cs3/storage/registry/v1beta1
|
||||
github.com/cs3org/go-cs3apis/cs3/tx/v1beta1
|
||||
github.com/cs3org/go-cs3apis/cs3/types/v1beta1
|
||||
# github.com/cs3org/reva/v2 v2.13.2
|
||||
# github.com/cs3org/reva/v2 v2.13.3-0.20230510083816-98d8707dea33
|
||||
## explicit; go 1.19
|
||||
github.com/cs3org/reva/v2/cmd/revad/internal/grace
|
||||
github.com/cs3org/reva/v2/cmd/revad/runtime
|
||||
|
||||
Reference in New Issue
Block a user