-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[feature/sharing-ng] Support for new ocis spaces/sharing capabilities #135
Open
felix-schwarz
wants to merge
13
commits into
feature/graphapi-update
Choose a base branch
from
feature/sharing-ng
base: feature/graphapi-update
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
felix-schwarz
changed the base branch from
feature/graphapi-update
to
master
December 20, 2024 08:36
felix-schwarz
changed the base branch from
master
to
feature/graphapi-update
December 20, 2024 08:36
felix-schwarz
force-pushed
the
feature/graphapi-update
branch
from
December 20, 2024 08:44
529b4c4
to
6adbbb4
Compare
felix-schwarz
changed the base branch from
feature/graphapi-update
to
master
December 20, 2024 08:46
felix-schwarz
changed the base branch from
master
to
feature/graphapi-update
December 20, 2024 08:46
- OCConnection+RecipientsLegacy: factored out/moved OC10 recipients search code previously in OCConnection+Recipients - OCConnection+Recipients: implement GraphAPI user/group search and retrieval by ID, fall back to OCConnection+RecipientsLegacy for OC10 servers - OCConnection+Avatars: return an error for OCUsers without userName (needed to retrieve an avatar, not available on ocis as per mbarz) - OCConnection+Spaces: first implementations of space creation/management methods - OCConnection: add new APIs for user/group lookup, space management - OCConnection+OData: add new methods for - generic OData response decoding - creating new OData objects and parsing the response - adding URL parameters to OData requests - GAGraphData+Decoder: support for decoding wider array of possible data - OCGroup: - rename type OCUserGroupID to OCGroupID - add new initializer for creating an instance from a GAGroup - OCUser: - rename OCUserIdentifier to OCUniqueUserIdentifier and refactor existing code around it - add new type OCUserID to hold ocis-style UUID user IDs - add new type OCUserType to hold ocis-style user types - add new initializer for creating an instance from a GAUser - OCIdentity: - adapt to OCUser/OCGroup changes - rename OCRecipientType -> OCIdentityType and OCRecipientMatchType -> OCIdentityMatchType for consistency - OCFeatureAvailability: add new flag OC_LEGACY_SUPPORT to ease future removal/identification/conditional compilation of OC10 code - various smaller refactorings and improvements
…ness of error reporting during encoding - GAGraphStruct+Encoder: adopt GAGraphContext changes - OCConnection+OData: add generic API for performing OData update requests - OCConnection+Spaces:add new, extensible API to update drive properties - OCDrive: add new type OCDriveProperty and values for name, description and quota total
…ndpoint - OCConnection+GraphAPI: add methods for retrieving permissions and constructing permission endpoint URLs - OCConnection+Recipients: - new method for requesting details for OCIdentity - new method for requesting details for a collection of OCUser/OCGroup/OCIdentity objects - OCConnection+Sharing: - retrieveSharesWithScope: use ocis sharing-ng for retrieving shares/permissions for an item - deleteShare:resultTarget: use ocis sharing-ng to delete shares/permissions - OCODataTypes: add new types for OData decoding options and libre-graph objects - OCODataDecoder: new class allowing more flexible OData response decoding - OCODataResponse: new class grouping errors, results and additional libreGraphObjects - OCConnection+OData: add support for OData decoding options, including returning the full OCODataResponse object that can hold additional data - OCCore+Sharing: - matchingShareRoleForShare: add support for returning embedded roles from OCShare (retrieved from ocis) - OCShareQuery: add support for also tracking allowedPermissionActions (OCShareActionID) and allowedRoles (OCShareRole) - OCDrive: add accessor for root permissions (=> identities with access to the drive) - GAPermission+SharePermission: add accessor to convert a GAPermission into an array of OCSharePermission objects - GAUnifiedRoleDefinition+ShareRole: add accessor to convert a GAUnifiedRoleDefinition into an OCShareRole (and cache it) - GeneratedTypes/GA[Permission|Root|UnifiedRoleDefinition|GAUnifiedRolePermission].[m|h]: finetune types and/or prepare additional integration with existing classes - OCHTTPStatus: add status 100 code - OCGroup: add initializer taking a GAIdentity instance and an accessor returning a GAIdentity instance - OCUser: add initializer taking a GAIdentity instance and an accessor returning a GAIdentity instance - OCIdentity+GraphAPI: add initializers accepting GAIdentitySet and GASharePointIdentitySet and likewise accessors returning them - OCShareTypes.h: new header file to group existing and new types into a single file, making it easier to avoid impossible/hard to resolve include-loops - OCShareAction: OCShareActionID type to encapsulate ocis share permission actions in a type and make them available as a typed enum - OCShare+GraphAPI: add initializer creating an OCShare instance from a GAPermission, GAUnifiedRoleDefinition and more - OCShare: start migration from using a OCSharePermissionsMask bit mask to an array of OCSharePermissions - with compatibility accessors for now. - OCSharePermission: new class to act as a container for the different permission formats (roles, actions, bitmask) and - where necessary - integrate simplification and conversion services - OCShareRole: add OCShareRoleID identifier property to store ocis role IDs
…ust "native"/fallback names for a OCSharePermissionDriveRole - OCShareRole, GAUnifiedRoleDefinition+ShareRole: add support for ocis role weights
felix-schwarz
force-pushed
the
feature/sharing-ng
branch
from
December 20, 2024 08:50
745c09a
to
98e3bdf
Compare
…s for spaces capabilities - OCODataDecoder + OCConnection+OData: add OCODataOptionKeyValueKey for finetuning decoding responses with optional values - OCConnection+GraphAPI: fix crash if server returns an empty list of permissions - GADriveItemInvite, GAUnifiedRoleDefinition: switch properties to "native" types established in the meantime - OCIdentity+GraphAPI: add gaDriveRecipient accessor to return a GADriveRecipient instance - OCShareTypes: add missing copyright notice - Localizable.xcstrings: clarify role strings are not "stale"
… to OCLocation - OCConnection+RecipientsLegacy: add OC_LEGACY_SUPPORT #ifs - OCConnection+SharingLegacy: start factoring out OC10-specific code for creating and parsing shares - OCConnection+Sharing: - add GraphAPI support to -retrieveSharesWithScope - add GraphAPI support to -createShare - add GraphAPI support to -deleteShare - OCConnection+OData: set proper content type for body (nice side effect: the body is also shown in the debug output now) - OCODataDecoder: fix OCODataOptionKeyValueKey support - OCCore: - make -availableShareRolesForType async - expand -matchingShareRoleForShare with a parameter to provide roles and add capabilities to match share role IDs - OCLocation: allow storing an optional fileID - OCItem: add fileID to OCLocation returned by .location - OCShare+GraphAPI: add support for OCLocation.fileID and link share roles - OCShare: add convenience accessors for first role and roleID stored in OCSharePermissions - OCShareRole+GraphAPI: provide OCShareRoles for ocis built-in link share roles - OCShareRole: expand initializer with optional identifier
31 tasks
- move legacy updateShare implementation to OCConnection+SharingLegacy - implement ocis/GraphAPI share and password update code using OData objects/APIs - OCODataDecoder: fix error decoding - GAODataErrorMain: use message as error description - GAGraphObject: add GANull as JSON null value placeholder - OCShare+OCDataItem: use new convenience accessor - OCShare: - add new roleIDs convenience accessor - also copy values of itemFileID and originPAPermission on -copy - also compare role IDs when comparing OCShare instances for equality
- retrieveLoggedInGraphUserWithCompletionHandler: new method to retrieve the logged in user from a Graph endpoint, including additional information like group memberships, user ID and more - globalShareRoles: new property for roles retrieved while connecting - shareActionsForDrive: new method to compute the allowed share actions for the logged in user for a drive - retrieveRoleDefinitionsWithCompletionHandler: new method to retrieve a list of all role definitions from the server and update .globalShareRoles with the result - add two new endpoints - OCConnection+Users: use retrieveLoggedInGraphUserWithCompletionHandler to retrieve the logged in user on ocis systems - OCConnection: add new endpoints for assignments-list and permissions-list endpoints - OCConnection+OData: add support for OData JSON responses that are an array at the root level - OCCore+DataSources: include driveRoles into the default ordering for OCShares, so that Managers are listed at the top - OCCore+Sharing: use connection.globalShareRoles as roles if none are provided to -matchingForShare:fromShareRoles: - GAUnifiedRoleDefinition+ShareRole: translate .rolePermissions.condition into OCShareRole.locations and .rolePermissions.allowedResourceActions into OCShareRole.allowedActions - GAGroup: use OCGroupID for .identifier - GAUser: use OCUserID for .identifier - OCHTTPResponse: add new method -bodyConvertedFromJSONWithError: that converts the JSON body into an array or dictionary (depending on content ;)) - OCUser: - add .groupMemberships property for carrying the ocis OCGroupIDs of groups the user belongs to - extend initializers to include more details from the source objects - OCItem: add additional permission flags for Deniable, TrashbinPurgable and SecureViewable - OCItem+OCXMLObjectCreation: add parser support for the additional permission flags - OCShareAction: fix typos - OCShareTypes: make OCShareActionID a typed enum - OCSharePermission: change ordering of OCSharePermissionDriveRole to allow usage for ordering by importance - OCShareRole: add new method to compare OCShareRoleIDs for equality, with special handling for OCShareRoleIDManagerV1, OCShareRoleIDEditorV1 and OCShareRoleIDViewerV1
…d empty .userName properties
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
SDK support for new spaces and sharing APIs.
Temporarily targeting #133 until that is reviewed and merged.
Related Issue
owncloud/ios-app#1421
owncloud/ios-app#1422
owncloud/ocis#10832
Types of changes