nextcloud

package
v2.21.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 8, 2024 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Package nextcloud verifies a clientID and clientSecret against a Nextcloud backend.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetNextcloudServerMock

func GetNextcloudServerMock(called *[]string) http.Handler

GetNextcloudServerMock returns a handler that pretends to be a remote Nextcloud server.

func New

func New(m map[string]interface{}) (share.Repository, error)

New returns a share manager implementation that verifies against a Nextcloud backend.

func TestingHTTPClient

func TestingHTTPClient(handler http.Handler) (*http.Client, func())

TestingHTTPClient thanks to https://itnext.io/how-to-stub-requests-to-remote-hosts-with-go-6c2c1db32bf2 Ideally, this function would live in tests/helpers, but if we put it there, it gets excluded by .dockerignore, and the Docker build fails (see https://github.com/cs3org/reva/issues/1999) So putting it here for now - open to suggestions if someone knows a better way to inject this.

Types

type Action

type Action struct {
	// contains filtered or unexported fields
}

Action describes a REST request to forward to the Nextcloud backend.

type GranteeAltMap

type GranteeAltMap struct {
	ID *provider.Grantee_UserId `json:"id"`
}

GranteeAltMap is an alternative map to JSON-unmarshal a Grantee Grantees are hard to unmarshal, so unmarshalling into a map[string]interface{} first, see also https://github.com/pondersource/sciencemesh-nextcloud/issues/27

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager is the Nextcloud-based implementation of the share.Repository interface see https://github.com/cs3org/reva/blob/v1.13.0/pkg/ocm/share/share.go#L30-L57

func NewShareManager

func NewShareManager(c *ShareManagerConfig) (*Manager, error)

NewShareManager returns a new Nextcloud-based ShareManager.

func (*Manager) DeleteShare

func (sm *Manager) DeleteShare(ctx context.Context, user *userpb.User, ref *ocm.ShareReference) error

DeleteShare deletes the share pointed by ref.

func (*Manager) GetReceivedShare

func (sm *Manager) GetReceivedShare(ctx context.Context, user *userpb.User, ref *ocm.ShareReference) (*ocm.ReceivedShare, error)

GetReceivedShare returns the information for a received share the user has access.

func (*Manager) GetShare

func (sm *Manager) GetShare(ctx context.Context, user *userpb.User, ref *ocm.ShareReference) (*ocm.Share, error)

GetShare gets the information for a share by the given ref.

func (*Manager) ListReceivedShares

func (sm *Manager) ListReceivedShares(ctx context.Context, user *userpb.User) ([]*ocm.ReceivedShare, error)

ListReceivedShares returns the list of shares the user has access.

func (*Manager) ListShares

func (sm *Manager) ListShares(ctx context.Context, user *userpb.User, filters []*ocm.ListOCMSharesRequest_Filter) ([]*ocm.Share, error)

ListShares returns the shares created by the user. If md is provided is not nil, it returns only shares attached to the given resource.

func (*Manager) SetHTTPClient

func (sm *Manager) SetHTTPClient(c *http.Client)

SetHTTPClient sets the HTTP client.

func (*Manager) StoreReceivedShare

func (sm *Manager) StoreReceivedShare(ctx context.Context, share *ocm.ReceivedShare) (*ocm.ReceivedShare, error)

StoreReceivedShare stores a received share.

func (*Manager) StoreShare

func (sm *Manager) StoreShare(ctx context.Context, share *ocm.Share) (*ocm.Share, error)

StoreShare stores a share.

func (*Manager) UpdateReceivedShare

func (sm *Manager) UpdateReceivedShare(ctx context.Context, user *userpb.User, share *ocm.ReceivedShare, fieldMask *field_mask.FieldMask) (*ocm.ReceivedShare, error)

UpdateReceivedShare updates the received share with share state.

func (*Manager) UpdateShare

func (sm *Manager) UpdateShare(ctx context.Context, user *userpb.User, ref *ocm.ShareReference, f ...*ocm.UpdateOCMShareRequest_UpdateField) (*ocm.Share, error)

UpdateShare updates the mode of the given share.

type ReceivedShareAltMap

type ReceivedShareAltMap struct {
	Share *ShareAltMap   `json:"share"`
	State ocm.ShareState `json:"state"`
}

ReceivedShareAltMap is an alternative map to JSON-unmarshal a ReceivedShare.

type Response

type Response struct {
	// contains filtered or unexported fields
}

Response contains data for the Nextcloud mock server to respond and to switch to a new server state.

type ShareAltMap

type ShareAltMap struct {
	ID            *ocm.ShareId          `json:"id"`
	RemoteShareID string                `json:"remote_share_id"`
	Permissions   *ocm.SharePermissions `json:"permissions"`
	Grantee       *GranteeAltMap        `json:"grantee"`
	Owner         *userpb.UserId        `json:"owner"`
	Creator       *userpb.UserId        `json:"creator"`
	Ctime         *typespb.Timestamp    `json:"ctime"`
	Mtime         *typespb.Timestamp    `json:"mtime"`
}

ShareAltMap is an alternative map to JSON-unmarshal a Share.

type ShareManagerConfig

type ShareManagerConfig struct {
	EndPoint     string `mapstructure:"endpoint" docs:";The Nextcloud backend endpoint for user check"`
	SharedSecret string `mapstructure:"shared_secret"`
	WebDAVHost   string `mapstructure:"webdav_host"`
	MockHTTP     bool   `mapstructure:"mock_http"`
}

ShareManagerConfig contains config for a Nextcloud-based ShareManager.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL