IP Library Granted Patent US 9,645,947
Granted Patent B2
US 9,645,947 · App. 13/901,559 · Granted May 9, 2017

Bundling file permissions for sharing files

Inventors: Mary Angelo (Seattle, WA); Brad Dodson (Seattle, WA); Emmanuel Miranda-Steiner (Seattle, WA); David Nichols (Redmond, WA); Daron Spektor (Seattle, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F12/1416G06F9/468G06F17/30165G06F21/6209
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,645,947
App. No.
13/901,559
Granted
May 9, 2017
Kind
B2
Abstract

When files or other objects are to be shared, a storage system creates a bundle object that identifies the objects to be shared, and the permissions associated with objects in that bundle object. Each object is marked as being associated with a bundle object. When the object is accessed, the storage system determines if the object is associated with a bundle object. The bundle object in turn is accessed to determine the permissions to be associated with that object for the entity accessing the object. Files and other objects can be shared without copying or moving them. Any collection of files or other objects, however selected or identified, can be shared through this mechanism. Using this mechanism, a user can select several files, and then share those files in one operation without copying or moving those files or creating a new folder for those files.

Claims (51)

1. A computer-implemented process performed by a processor in a computer, comprising:

receiving, into memory, an indication of file objects, stored in computer storage and accessible by a first entity through a file system according to first permissions associated with the file objects, to be shared with one or more second entities;

in response to an instruction to share the indicated file objects with the one or more second entities, generating a bundle object;

storing data, for each of the indicated file objects to be shared, such that each of the indicated file objects includes an indication of whether the file object is part of a bundle object;

storing data associated with the bundle object indicating second permissions for the one or more second entities for accessing the file objects associated with the bundle object;

in response to a request associated with an entity to access one of the indicated file objects, determining whether access by the entity is permitted by the first permissions associated with the one of the indicated file objects;

in response to determining that access by the entity is permitted by the first permissions, providing the requested access for the entity; and

in response to determining that access by the entity is not permitted by the first permissions, determining whether the one of the indicated file objects is part of a bundle object based on the stored data for the one of the indicated filed objects and whether access to the one of the indicated file objects is permitted based on the bundle object.

2. The computer-implemented process of claim 1 , wherein the second permissions indicate the one or more second entities permitted to access the shared objects.

3. The computer-implemented process of claim 1 , wherein the bundle object is created outside of a file system name space for the first entity.

4. The computer-implemented process of claim 1 , further comprising:

in response to an entity from among the one or more second entities accessing an object associated with a bundle object, accessing the second permissions from the bundle object; and

determining whether the entity has permission to access the object using the second permissions from the bundle object.

5. The computer-implemented process of claim 1 , wherein the storing data indicating that the object is associated with the bundle object is performed without copying or moving the objects to be shared.

6. The computer-implemented process of claim 1 , further comprising:

presenting a user interface indicating, for the first entity, file objects shared by the first entity, the user interface indicating bundle objects associated with the first entity and file objects within the bundle objects.

7. The computer-implemented process of claim 1 , further comprising:

identifying objects shared with an entity by other entities.

8. An article of manufacture comprising:

computer storage, comprising at least one of a memory device or a storage device, with computer program instructions stored in the computer storage, such that the computer program instructions, when processed by a processing device, instruct the processing device to perform a process comprising:

receiving, into memory, an indication of file objects, stored in computer storage and accessible by a first entity through a file system according to first permissions associated with the file objects, to be shared with one or more second entities;

in response to an instruction to share the indicated file objects with the one or more second entities, generating a bundle object;

storing data, for each of the indicated file objects to be shared, such that each of the indicated file objects includes an indication of whether the file object is part of a bundle object;

storing data associated with the bundle object indicating second permissions for the one or more second entities for accessing the file objects associated with the bundle object;

in response to a request associated with an entity to access one of the indicated file objects, determining whether access by the entity is permitted by the first permissions associated with the one of the indicated file objects;

in response to determining that access by the entity is permitted by the first permissions, providing the requested access for the entity; and

in response to determining that access by the entity is not permitted by the first permissions, determining whether the one of the indicated file objects is part of a bundle object based on the stored data for the one of the indicated filed objects and whether access to the one of the indicated file objects is permitted based on the bundle object.

9. The article of manufacture of claim 8 , wherein the second permissions indicate the one or more second entities permitted to access the shared objects.

10. The article of manufacture of claim 8 , wherein the bundle object is created outside of a file system name space for the first entity.

11. The article of manufacture of claim 8 , wherein the process performed by the processing device further comprises:

in response to an entity from among the one or more second entities accessing an object associated with a bundle object, accessing the second permissions from the bundle object; and

determining whether the entity has permission to access the object using the second permissions from the bundle object.

12. The article of manufacture of claim 8 , wherein the storing data indicating that the object is associate with the bundle object is performed without copying or moving the selected file objects.

13. The article of manufacture of claim 8 , wherein the process performed by the processing device further comprises:

presenting a user interface indicating, for a first entity, file objects shared by the first entity, the user interface indicating bundle objects associated with the first entity and file objects within the bundle objects.

14. The article of manufacture of claim 8 , wherein the process performed by the processing device further comprises:

identifying objects shared with an entity by other entities.

15. A computer system comprising:

one or more server computers connected to one or more storage devices and accessible over a computer network by a plurality of client computers, through which users access the one or more server computers to store file objects in a file system maintained by the server computer for file objects stored on the one or more storage devices, the server computers being configured to:

receive, into memory, an indication of file objects, stored in computer storage and accessible by a first entity through a file system according to first permissions associated with the file objects, to be shared with one or more second entities;

in response to an instruction to share the file objects with the one or more second entities, generate a bundle object;

store data, for each of the indicated file objects to be shared, such that each of the indicated file objects includes an indication of whether the file object is part of a bundle object;

store data associated with the bundle object indicating second permissions for the one or more second entities for accessing the file objects associated with the bundle object;

in response to a request associated with an entity to access one of the indicated file objects, determining whether access by the entity is permitted by the first permissions associated with the one of the indicated file objects;

in response to determining that access by the entity is permitted by the first permissions, providing the requested access for the entity; and

in response to determining that access by the entity is not permitted by the first permissions, determining whether the one of the indicated file objects is part of a bundle object based on the stored data for the one of the indicated filed objects and whether access to the one of the indicated file objects is permitted based on the bundle object.

16. The computer system of claim 15 , wherein the second permissions indicate the one or more second entities permitted to access the shared objects.

17. The computer system of claim 15 , wherein the bundle object is created outside of a file system name space for the first entity.

18. The computer system of claim 15 , wherein the server computers are further configured to, in response to an entity from among the one or more second entities accessing an object associated with a bundle object, access the second permissions from the bundle object, and determine whether the entity has permission to access the object using the second permissions from the bundle object.

19. The computer system of claim 15 , wherein the server computers are further configured to present a user interface indicating, for the first entity, file objects shared by the first entity, the user interface indicating bundle objects associated with the first entity and file objects within the bundle objects.

20. The computer system of claim 15 , wherein, to store the data indicating that the object is associated with the bundle object, the server computers are further configured to share selected file objects without copying or moving the selected file objects.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2013
From: ANGELO, MARY; DODSON, BRAD; MIRANDA-STEINER, EMMANUEL; NICHOLS, DAVID; SPEKTOR, DARON
To: MICROSOFT CORPORATION
Reel/Frame 030508/0429 →
Continuity (1)
Related Publication 20140351541A1 · Nov 27, 2014