mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-04-23 12:38:21 -05:00
Added the ShareUpdate activity in the space context.
This commit is contained in:
Generated
Vendored
+2
-8
@@ -78,12 +78,6 @@ func ShareRemoved(r *collaboration.RemoveShareResponse, req *collaboration.Remov
|
||||
|
||||
// ShareUpdated converts the response to an event
|
||||
func ShareUpdated(r *collaboration.UpdateShareResponse, req *collaboration.UpdateShareRequest, executant *user.UserId) events.ShareUpdated {
|
||||
updated := ""
|
||||
if req.Field.GetPermissions() != nil {
|
||||
updated = "permissions"
|
||||
} else if req.Field.GetDisplayName() != "" {
|
||||
updated = "displayname"
|
||||
}
|
||||
return events.ShareUpdated{
|
||||
Executant: executant,
|
||||
ShareID: r.Share.Id,
|
||||
@@ -93,7 +87,7 @@ func ShareUpdated(r *collaboration.UpdateShareResponse, req *collaboration.Updat
|
||||
GranteeGroupID: r.Share.GetGrantee().GetGroupId(),
|
||||
Sharer: r.Share.Creator,
|
||||
MTime: r.Share.Mtime,
|
||||
Updated: updated,
|
||||
UpdateMask: req.GetUpdateMask().GetPaths(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,7 +133,7 @@ func LinkUpdated(r *link.UpdatePublicShareResponse, req *link.UpdatePublicShareR
|
||||
DisplayName: r.Share.DisplayName,
|
||||
Expiration: r.Share.Expiration,
|
||||
PasswordProtected: r.Share.PasswordProtected,
|
||||
CTime: r.Share.Ctime,
|
||||
MTime: r.Share.Mtime,
|
||||
Token: r.Share.Token,
|
||||
FieldUpdated: link.UpdatePublicShareRequest_Update_Type_name[int32(req.Update.GetType())],
|
||||
}
|
||||
|
||||
+4
-8
@@ -35,13 +35,13 @@ import (
|
||||
)
|
||||
|
||||
type appsHandler struct {
|
||||
gatewaySelector *pool.Selector[gateway.GatewayAPIClient]
|
||||
ocmMountPoint string
|
||||
gatewayClient gateway.GatewayAPIClient
|
||||
ocmMountPoint string
|
||||
}
|
||||
|
||||
func (h *appsHandler) init(c *config) error {
|
||||
var err error
|
||||
h.gatewaySelector, err = pool.GatewaySelector(c.GatewaySvc)
|
||||
h.gatewayClient, err = pool.GetGatewayServiceClient(c.GatewaySvc)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -99,11 +99,7 @@ func (h *appsHandler) OpenInApp(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
func (h *appsHandler) webappTemplate(ctx context.Context, id *ocmpb.ShareId) (string, error) {
|
||||
gc, err := h.gatewaySelector.Next()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
res, err := gc.GetReceivedOCMShare(ctx, &ocmpb.GetReceivedOCMShareRequest{
|
||||
res, err := h.gatewayClient.GetReceivedOCMShare(ctx, &ocmpb.GetReceivedOCMShareRequest{
|
||||
Ref: &ocmpb.ShareReference{
|
||||
Spec: &ocmpb.ShareReference_Id{
|
||||
Id: id,
|
||||
|
||||
+3
-8
@@ -32,12 +32,12 @@ import (
|
||||
)
|
||||
|
||||
type providersHandler struct {
|
||||
gatewaySelector *pool.Selector[gateway.GatewayAPIClient]
|
||||
gatewayClient gateway.GatewayAPIClient
|
||||
}
|
||||
|
||||
func (h *providersHandler) init(c *config) error {
|
||||
var err error
|
||||
h.gatewaySelector, err = pool.GatewaySelector(c.GatewaySvc)
|
||||
h.gatewayClient, err = pool.GetGatewayServiceClient(c.GatewaySvc)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -55,12 +55,7 @@ func (h *providersHandler) ListProviders(w http.ResponseWriter, r *http.Request)
|
||||
ctx := r.Context()
|
||||
term := strings.ToLower(r.URL.Query().Get("search"))
|
||||
|
||||
gc, err := h.gatewaySelector.Next()
|
||||
if err != nil {
|
||||
reqres.WriteError(w, r, reqres.APIErrorServerError, "error selecting gateway client", err)
|
||||
return
|
||||
}
|
||||
listRes, err := gc.ListAllProviders(ctx, &providerpb.ListAllProvidersRequest{})
|
||||
listRes, err := h.gatewayClient.ListAllProviders(ctx, &providerpb.ListAllProvidersRequest{})
|
||||
if err != nil {
|
||||
reqres.WriteError(w, r, reqres.APIErrorServerError, "error listing all providers", err)
|
||||
return
|
||||
|
||||
+8
-38
@@ -40,7 +40,7 @@ import (
|
||||
)
|
||||
|
||||
type tokenHandler struct {
|
||||
gatewaySelector *pool.Selector[gateway.GatewayAPIClient]
|
||||
gatewayClient gateway.GatewayAPIClient
|
||||
meshDirectoryURL string
|
||||
providerDomain string
|
||||
eventStream events.Stream
|
||||
@@ -48,7 +48,7 @@ type tokenHandler struct {
|
||||
|
||||
func (h *tokenHandler) init(c *config) error {
|
||||
var err error
|
||||
h.gatewaySelector, err = pool.GatewaySelector(c.GatewaySvc)
|
||||
h.gatewayClient, err = pool.GetGatewayServiceClient(c.GatewaySvc)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -85,12 +85,7 @@ func (h *tokenHandler) Generate(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
ctx := r.Context()
|
||||
gc, err := h.gatewaySelector.Next()
|
||||
if err != nil {
|
||||
reqres.WriteError(w, r, reqres.APIErrorServerError, "error selecting gateway client", err)
|
||||
return
|
||||
}
|
||||
genTokenRes, err := gc.GenerateInviteToken(ctx, &invitepb.GenerateInviteTokenRequest{
|
||||
genTokenRes, err := h.gatewayClient.GenerateInviteToken(ctx, &invitepb.GenerateInviteTokenRequest{
|
||||
Description: req.Description,
|
||||
})
|
||||
switch {
|
||||
@@ -190,12 +185,7 @@ func (h *tokenHandler) AcceptInvite(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
gc, err := h.gatewaySelector.Next()
|
||||
if err != nil {
|
||||
reqres.WriteError(w, r, reqres.APIErrorServerError, "error selecting gateway client", err)
|
||||
return
|
||||
}
|
||||
providerInfo, err := gc.GetInfoByDomain(ctx, &ocmprovider.GetInfoByDomainRequest{
|
||||
providerInfo, err := h.gatewayClient.GetInfoByDomain(ctx, &ocmprovider.GetInfoByDomainRequest{
|
||||
Domain: req.ProviderDomain,
|
||||
})
|
||||
if err != nil {
|
||||
@@ -207,18 +197,13 @@ func (h *tokenHandler) AcceptInvite(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
gc, err = h.gatewaySelector.Next()
|
||||
if err != nil {
|
||||
reqres.WriteError(w, r, reqres.APIErrorServerError, "error selecting gateway client", err)
|
||||
return
|
||||
}
|
||||
forwardInviteReq := &invitepb.ForwardInviteRequest{
|
||||
InviteToken: &invitepb.InviteToken{
|
||||
Token: req.Token,
|
||||
},
|
||||
OriginSystemProvider: providerInfo.ProviderInfo,
|
||||
}
|
||||
forwardInviteResponse, err := gc.ForwardInvite(ctx, forwardInviteReq)
|
||||
forwardInviteResponse, err := h.gatewayClient.ForwardInvite(ctx, forwardInviteReq)
|
||||
if err != nil {
|
||||
reqres.WriteError(w, r, reqres.APIErrorServerError, "error sending a grpc forward invite request", err)
|
||||
return
|
||||
@@ -273,12 +258,7 @@ type remoteUser struct {
|
||||
func (h *tokenHandler) FindAccepted(w http.ResponseWriter, r *http.Request) {
|
||||
ctx := r.Context()
|
||||
|
||||
gc, err := h.gatewaySelector.Next()
|
||||
if err != nil {
|
||||
reqres.WriteError(w, r, reqres.APIErrorServerError, "error selecting gateway client", err)
|
||||
return
|
||||
}
|
||||
res, err := gc.FindAcceptedUsers(ctx, &invitepb.FindAcceptedUsersRequest{})
|
||||
res, err := h.gatewayClient.FindAcceptedUsers(ctx, &invitepb.FindAcceptedUsersRequest{})
|
||||
if err != nil {
|
||||
reqres.WriteError(w, r, reqres.APIErrorServerError, "error sending a grpc find accepted users request", err)
|
||||
return
|
||||
@@ -312,12 +292,7 @@ func (h *tokenHandler) DeleteAccepted(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
gc, err := h.gatewaySelector.Next()
|
||||
if err != nil {
|
||||
reqres.WriteError(w, r, reqres.APIErrorServerError, "error selecting gateway client", err)
|
||||
return
|
||||
}
|
||||
res, err := gc.DeleteAcceptedUser(ctx, &invitepb.DeleteAcceptedUserRequest{
|
||||
res, err := h.gatewayClient.DeleteAcceptedUser(ctx, &invitepb.DeleteAcceptedUserRequest{
|
||||
RemoteUserId: &userpb.UserId{
|
||||
Idp: req.Idp,
|
||||
OpaqueId: req.UserID,
|
||||
@@ -356,12 +331,7 @@ func getDeleteAcceptedRequest(r *http.Request) (*deleteAcceptedRequest, error) {
|
||||
func (h *tokenHandler) ListInvite(w http.ResponseWriter, r *http.Request) {
|
||||
ctx := r.Context()
|
||||
|
||||
gc, err := h.gatewaySelector.Next()
|
||||
if err != nil {
|
||||
reqres.WriteError(w, r, reqres.APIErrorServerError, "error selecting gateway client", err)
|
||||
return
|
||||
}
|
||||
res, err := gc.ListInviteTokens(ctx, &invitepb.ListInviteTokensRequest{})
|
||||
res, err := h.gatewayClient.ListInviteTokens(ctx, &invitepb.ListInviteTokensRequest{})
|
||||
if err != nil {
|
||||
reqres.WriteError(w, r, reqres.APIErrorServerError, "error listing tokens", err)
|
||||
return
|
||||
|
||||
+4
-3
@@ -84,8 +84,9 @@ type ShareUpdated struct {
|
||||
Sharer *user.UserId
|
||||
MTime *types.Timestamp
|
||||
|
||||
// indicates what was updated - one of "displayname", "permissions"
|
||||
Updated string
|
||||
Updated string // Deprecated
|
||||
// indicates what was updated
|
||||
UpdateMask []string
|
||||
}
|
||||
|
||||
// Unmarshal to fulfill umarshaller interface
|
||||
@@ -165,7 +166,7 @@ type LinkUpdated struct {
|
||||
DisplayName string
|
||||
Expiration *types.Timestamp
|
||||
PasswordProtected bool
|
||||
CTime *types.Timestamp
|
||||
MTime *types.Timestamp
|
||||
Token string
|
||||
|
||||
FieldUpdated string
|
||||
|
||||
Generated
Vendored
+5
-19
@@ -26,8 +26,6 @@ import (
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/google/renameio/v2"
|
||||
"github.com/rogpeppe/go-internal/lockedfile"
|
||||
tusd "github.com/tus/tusd/v2/pkg/handler"
|
||||
|
||||
userpb "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
|
||||
@@ -76,13 +74,7 @@ func (s *OcisSession) executantUser() *userpb.User {
|
||||
|
||||
// Purge deletes the upload session metadata and written binary data
|
||||
func (s *OcisSession) Purge(ctx context.Context) error {
|
||||
sessionPath := sessionPath(s.store.root, s.info.ID)
|
||||
f, err := lockedfile.OpenFile(sessionPath+".lock", os.O_RDWR|os.O_TRUNC|os.O_CREATE, 0600)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer f.Close()
|
||||
if err := os.Remove(sessionPath); err != nil {
|
||||
if err := os.Remove(sessionPath(s.store.root, s.info.ID)); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := os.Remove(s.binPath()); err != nil {
|
||||
@@ -101,12 +93,10 @@ func (s *OcisSession) TouchBin() error {
|
||||
}
|
||||
|
||||
// Persist writes the upload session metadata to disk
|
||||
// events can update the scan outcome and the finished event might read an empty file because of race conditions
|
||||
// so we need to lock the file while writing and use atomic writes
|
||||
func (s *OcisSession) Persist(ctx context.Context) error {
|
||||
sessionPath := sessionPath(s.store.root, s.info.ID)
|
||||
uploadPath := sessionPath(s.store.root, s.info.ID)
|
||||
// create folder structure (if needed)
|
||||
if err := os.MkdirAll(filepath.Dir(sessionPath), 0700); err != nil {
|
||||
if err := os.MkdirAll(filepath.Dir(uploadPath), 0700); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -115,12 +105,8 @@ func (s *OcisSession) Persist(ctx context.Context) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
f, err := lockedfile.OpenFile(sessionPath+".lock", os.O_RDWR|os.O_TRUNC|os.O_CREATE, 0600)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer f.Close()
|
||||
return renameio.WriteFile(sessionPath, d, 0600)
|
||||
|
||||
return os.WriteFile(uploadPath, d, 0600)
|
||||
}
|
||||
|
||||
// ToFileInfo returns tus compatible FileInfo so the tus handler can access the upload offset
|
||||
|
||||
+1
-12
@@ -119,7 +119,7 @@ func (store OcisStore) List(ctx context.Context) ([]*OcisSession, error) {
|
||||
|
||||
// Get returns the upload session for the given upload id
|
||||
func (store OcisStore) Get(ctx context.Context, id string) (*OcisSession, error) {
|
||||
sessionPath := sessionPath(store.root, id)
|
||||
sessionPath := filepath.Join(store.root, "uploads", id+".info")
|
||||
match := _idRegexp.FindStringSubmatch(sessionPath)
|
||||
if match == nil || len(match) < 2 {
|
||||
return nil, fmt.Errorf("invalid upload path")
|
||||
@@ -129,15 +129,6 @@ func (store OcisStore) Get(ctx context.Context, id string) (*OcisSession, error)
|
||||
store: store,
|
||||
info: tusd.FileInfo{},
|
||||
}
|
||||
lock, err := lockedfile.Open(sessionPath + ".lock")
|
||||
if err != nil {
|
||||
if errors.Is(err, iofs.ErrNotExist) {
|
||||
// Interpret os.ErrNotExist as 404 Not Found
|
||||
err = tusd.ErrNotFound
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
defer lock.Close()
|
||||
data, err := os.ReadFile(sessionPath)
|
||||
if err != nil {
|
||||
if errors.Is(err, iofs.ErrNotExist) {
|
||||
@@ -146,8 +137,6 @@ func (store OcisStore) Get(ctx context.Context, id string) (*OcisSession, error)
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
lock.Close() // release lock asap
|
||||
|
||||
if err := json.Unmarshal(data, &session.info); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user