U.S. patent application number 15/067053 was filed with the patent office on 2016-07-07 for systems and methods for managing shared content based on sharing profiles.
The applicant listed for this patent is Dropbox, Inc.. Invention is credited to Brett Alten.
Application Number | 20160198017 15/067053 |
Document ID | / |
Family ID | 53266317 |
Filed Date | 2016-07-07 |
United States Patent
Application |
20160198017 |
Kind Code |
A1 |
Alten; Brett |
July 7, 2016 |
SYSTEMS AND METHODS FOR MANAGING SHARED CONTENT BASED ON SHARING
PROFILES
Abstract
Content items stored in an online content management service can
be organized and shared. Content items can be associated with
sharing profiles that include various sharing-specific metadata,
such as details of how an item is shared or with whom it is shared.
In some embodiments, the metadata stored in the sharing profiles
can be used to organize shared content into shared folders
automatically and/or to sort a list of content items.
Inventors: |
Alten; Brett; (Cupertino,
CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Dropbox, Inc. |
San Francisco |
CA |
US |
|
|
Family ID: |
53266317 |
Appl. No.: |
15/067053 |
Filed: |
March 10, 2016 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14097199 |
Dec 4, 2013 |
9288283 |
|
|
15067053 |
|
|
|
|
Current U.S.
Class: |
709/204 |
Current CPC
Class: |
G06F 16/9535 20190101;
H04L 67/1095 20130101; G06F 16/16 20190101; G06F 16/245 20190101;
H04L 67/22 20130101; H04L 67/306 20130101; G06F 16/24537 20190101;
H04L 67/42 20130101; G06F 16/2456 20190101 |
International
Class: |
H04L 29/08 20060101
H04L029/08; G06F 17/30 20060101 G06F017/30 |
Claims
1. A method executable at a server, the method comprising: storing,
by an online content management service, content items associated
with a user identifier, wherein each of the content items is
associated with a sharing content profile for the content item, and
wherein the sharing content profile includes a plurality of sharing
restriction fields, each indicating a sharing restriction
associated with the content item; analyzing the sharing content
profile associated with each of the content items to determine
specific sharing restrictions stored in the sharing content profile
associated with each of the content items; and presenting the
content items in a list of content items along with information
stored in the sharing content profile.
2. The method of claim 1 wherein plurality of sharing restriction
fields includes at least one of: a sharing status field indicating
whether the content item is shared; a sharing mode field indicating
how the content is shared; a sharing target field that includes one
or more identifiers corresponding to users or groups with which the
content item is shared; or a sharing restriction field indicating
one or more sharing restrictions associated with the content
item.
3. The method of claim 2, further comprising: receiving a request
to sort the content items associated with the user identifier by a
selected one of the plurality of sharing restriction fields;
sorting the content items based on the selected one of the
plurality of sharing restriction fields.
4. The method of claim 2, further comprising: receiving a request
to display shared content items associated with the user
identifier; analyzing the sharing profiles associated with the
content items to determine a subset of content items that are
shared.
5. The method of claim 4, further comprising: determining a
plurality of sharing entities associated with the subset of content
items, wherein each sharing entity includes a different combination
of target identifiers with which at least one content item in the
subset of content items is shared; and wherein the default sorted
list is sorted based on the plurality of sharing entities.
6. The method of claim 4, wherein the sharing content profile
associated with each content item of the content items indicates
whether the content item is shared, indicates how the content item
is shared, and indicates one or more users with which the content
item is shared.
7. The method of claim 1, further comprising: joining the first
content item with the second content item; updating a first sharing
content profile associated with the first content item to indicate
that the first content item is joined with the second content item;
and updating a second sharing content profile associated with the
second content item to indicate that the first content item is
joined with the second content item.
8. The method of claim 7, further comprising: determining whether
to create a new folder based on a type of the first content item
and a type of the second content item.
9. The method of claim 2, wherein the sharing mode field includes
one or more of a reference to a shared link and a reference to a
shared folder.
10. The method of claim 1, wherein the one or more sharing
restrictions associated with the content item includes a temporal
restriction, a download restriction, or a geographic
restriction.
11. The method of claim 7 wherein updating a sharing profile
associated with the first and second content items based on the
joining includes: determining a hierarchical relationship between
the first content item and second content item; and updating the
sharing profile of an hierarchically inferior content item to match
the sharing profile of an hierarchically superior content item.
12. The method of claim 1 wherein the sharing content profile of a
first content item from the content items associated with the user
identifier is inherited from a second content item that is
hierarchically superior to the first content item.
13. A system comprising: an online content management service
including storage and one or more processors, the online content
management service configured to: store the plurality of content
items in the storage, each of the plurality of content items being
associated with a sharing content profile, and wherein the sharing
content profile includes a sharing restriction field indicating one
or more sharing restrictions associated with the content item;
receive a request to display shared content items stored in the
online content management service; and sort the content items into
a sorted list of shared content items, based on the sharing content
profiles associated with the shared content items.
14. The system of claim 13 wherein each sharing profile includes a
plurality of fields, wherein the plurality of fields includes one
or more of: a sharing status field indicating whether the content
item is shared; a sharing mode field indicating how the content is
shared; a sharing target field that includes one or more
identifiers corresponding to users or groups with which the content
item is shared; or a sharing restriction field indicating one or
more of: a temporal restriction; a download restriction; or a
geographic restriction.
15. The system of claim 13 wherein the content management system
presents a graphical user interface that includes a plurality of
selectable views based on data associated with plurality of fields
stored in the sharing profiles.
16. The system of claim 15 wherein the content management system is
configured to receive a selection of a content item through the
graphical user interface and to display an interactive sharing
summary based on the content item's sharing profile.
17. The system of claim 16, wherein the content management system
is further configured to: receive a request to dynamically modify
one or more target identifiers in the interactive sharing summary,
and update the sharing profile associated with the content item
based on the request.
18. The system of claim 16 wherein the interactive sharing summary
includes a representation of the sharing restrictions.
19. A non-transitory computer readable medium comprising
instructions stored thereon, the instructions, when executed, being
effective to cause a processor of an online content management
service to: store a content item associated with a user identifier,
wherein the content item is associated with a sharing content
profile for the content item, and wherein the sharing content
profile includes a plurality of sharing restriction fields, each of
the restriction fields indicating a sharing restriction associated
with the content item; receive in a graphical user interface a
request to display shared content items; and when the sharing
content profile of the content item indicates the content item is
shared, present the content item in the graphical user interface
along with information stored in the sharing content profile.
20. The non-transitory computer readable medium of claim 19,
wherein the instructions cause the content management system to:
receive, through the graphical user interface a request to
dynamically modify an item of information in the sharing content
profile, and update the sharing content profile associated with the
content item based on the request.
21. The non-transitory computer readable medium of claim 19,
wherein the sharing content profile of the content item is
inherited from a second content item that is hierarchically
superior to the content item.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. application Ser.
No. 14/097,199, filed Dec. 4, 2013, entitled, "SYSTEMS AND METHODS
FOR MANAGING SHARED CONTENT BASED ON SHARING PROFILES", which is
incorporated by reference herein in its entirety.
BACKGROUND
[0002] This disclosure relates generally to online content
management services and in particular to managing sharing content
stored in an online content management service based on sharing
profiles associated with the content.
[0003] Online content management services allow users to access and
manage content across multiple devices using the Internet. Online
content management services typically also enable users to share
content with other persons, both members and non-members of the
online content management services. In a typical online content
management service, a user establishes an account with the service
provider and associates various content items with the account. For
example, some online content management services can allow the user
to store content items (including but not limited to text
documents; email messages; text messages; other types of messages;
media files such as photos, videos, and audio files; and/or folders
containing multiple files) and to selectively allow other users to
access the content items. Content items can be stored in a
repository maintained by the service provider and mirrored to or
synchronized with local copies on various user devices.
[0004] As more content items are stored in and shared through
online content management services, management of sharing
permissions as well as organization and navigation of content items
becomes an increasingly complex task.
SUMMARY
[0005] Certain embodiments of the present invention relate to
organizing content items stored in an online content management
service based on sharing profiles associated with the content items
(including but not limited to text documents; email messages; text
messages; other types of messages; media files such as photos,
videos, and audio files; and/or folders containing multiple files).
Each sharing profile includes content item-specific metadata, such
as identifiers for who the content item is shared with, and any
sharing restrictions that are associated with the sharing profile.
Using the metadata stored in the sharing profiles, a content
management service can enable the user to selectively view shared
content items and sort the content items based on the metadata in
the sharing profiles. Content items can be shared through the
online content management service to other users and/or groups.
Sharing can be effected by creating a shareable link for a content
item, creating a shared folder, or directly sharing a document.
[0006] In some embodiments a sharing summary for a content item can
be displayed using metadata stored in its sharing profile. A user
can make changes to the sharing summary and those changes can be
dynamically reflected in the sharing profile. The online content
management service can automatically organize content items into
shared folders based on who the content items are shared with. A
user can manually organize shared items by joining content items,
such as by adding a content item to a folder or dragging two
documents together in a user interface. When content items are
joined, the sharing profiles associated with the joined content
items can be updated to reflect the users and/or groups with which
the joined content items are shared.
[0007] Using the metadata stored in each sharing profile, content
items can be simply and intuitively sorted by the user. This
enables the user to keep track of, and make changes to, how each
content item is shared efficiently, without requiring the user to
navigate to each content item stored in the online content
management service, determine how the content item is shared and
then decide whether to change how the content item is shared. This
reduces processing load at the online content management service.
In some embodiments, copies of sharing profiles can be returned to
the user's client device. Using the sharing profiles, the client
device can sort and re-sort the content items as directed by the
user, without further input from the online content management
service. This further reduces the processing requirements of the
online content management service and improves the scalability of
the online content management service to by taking advantage of the
processing resources of client devices.
[0008] The following detailed description together with the
accompanying drawings will provide a better understanding of the
nature and advantages of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] FIG. 1 shows clients accessing an online content management
service according to an embodiment of the present invention.
[0010] FIG. 2 shows a simplified block diagram of a representative
computer system.
[0011] FIG. 3 shows a sharing profile, in accordance with an
embodiment of the present invention.
[0012] FIG. 4 shows a flow diagram of a process of organizing
content items stored in an online content management service using
sharing profiles, in accordance with an embodiment of the present
invention.
[0013] FIGS. 5A and 5B show exemplary user interfaces for
displaying content items stored in an online content management
service, in accordance with an embodiment of the present
invention.
[0014] FIG. 6 shows a flow diagram of a process of organizing
content items stored in an online content management service using
sharing profiles, in accordance with an embodiment of the present
invention.
[0015] FIGS. 7A-7E show exemplary user interfaces for displaying
content items stored in an online content management service, in
accordance with an embodiment of the present invention.
[0016] FIG. 8 shows a flow diagram of a process of generating an
interactive sharing summary for a content item, in accordance with
an embodiment of the present invention.
[0017] FIG. 9 shows an exemplary user interface including an
interactive sharing summary for a selected content item stored in
an online content management service, in accordance with an
embodiment of the present invention.
[0018] FIG. 10 shows a flow diagram of a process of joining content
items stored in an online content management service, in accordance
with an embodiment of the present invention.
[0019] FIGS. 11A and 11B show an exemplary user interface which
enables users to join content items stored in an online content
management service, in accordance with an embodiment of the present
invention.
[0020] FIG. 12 shows a flow diagram of a process of automatically
organizing content items stored in an online content management
service, in accordance with an embodiment of the present
invention.
[0021] FIGS. 13A-13C show an exemplary user interface which enables
users to request automatic organization of shared content items
stored in an online content management service, in accordance with
an embodiment of the present invention.
DETAILED DESCRIPTION
[0022] Online content management services can enable users to
access their content items from any internet-connected device. As
described above, these services enable users to organize their
content by folder, much like traditional file systems. To that end,
relatively simple management techniques can be provided to organize
and navigate a user's content. However, these services can also
enable users to share their content with other users and groups of
users. This adds an additional organizational dimension which
demands its own management techniques to enable users to quickly
and effectively manage their shared and unshared content. Existing
content management techniques are inadequate when applied to shared
content. For example, using existing techniques a user can identify
content items stored in a particular location or having a
particular name. However, with shared content, content management
becomes more complex. A user may attempt to identify all content
items shared with a friend, or shared with a project team from
work. The content items which match this criteria can be spread
across the content management service among the user's content
items. Not only does this complicate the identification of shared
content in a useful way, but by extension also complicates changing
how and/or with whom the content items are shared. As users
increasingly rely on these services to store and share their
content, demand increases for more effective management techniques
that enable shared content to be easily identified, viewed, and
otherwise managed.
[0023] Certain embodiments of the present invention relate to
dynamically organizing content items stored in an online content
management service based on sharing profiles associated with the
content items (including but not limited to text documents; email
messages; text messages; other types of messages; media files such
as photos, videos, and audio files; and/or folders containing
multiple files). Each sharing profile includes content
item-specific metadata, such as identifiers for who the content
item is shared with, and any sharing restrictions that are
associated with the sharing profile. Using the metadata stored in
the sharing profiles, a content management service can enable the
user to selectively view shared content items and sort the content
items based on the metadata in the sharing profiles. Content items
can be shared through the online content management service to
other users and/or groups. Sharing can be effected by creating a
shareable link for a content item, creating a shared folder, or
directly sharing a document.
[0024] In some embodiments a sharing summary for a content item can
be displayed using metadata stored in its sharing profile. A user
can make changes to the sharing summary and those changes can be
dynamically reflected in the sharing profile. In response to a
request to view content items, the online content management
service can automatically analyze the sharing profiles of the
content items and organize content items into shared folders based
on who the content items are shared with. A user can manually
organize shared items by joining content items, such as by adding a
content item to a folder or dragging two documents together in a
user interface. Based on the joining, the users and/or groups with
which each content item is shared can be reconciled, and each
content item's sharing profile can be updated accordingly.
[0025] FIG. 1 shows clients accessing online content management
service 100 according to an embodiment of the present invention.
Online content management service 100 can include, for example, a
file storage service, a file sharing service, a social media
service that allows users to post messages and/or other content,
and so on. Online content management service 100 can be hosted on
servers maintained by a service provider and accessed via network
102, such as the Internet.
[0026] Users can access online content management service 100 by
operating various clients 110, 112, 114, 116. As used herein, a
"client" refers generally to a combination of computer hardware and
software that enables a user to interact with online content
management service 100. For example, client 110 can be a desktop or
laptop computer executing a web browser (for example, Internet
Explorer, Google Chrome, or Safari) that communicates with online
content management service 100 using web protocols such as HTTP
(Hypertext Transfer Protocol). Client 112 can be a desktop or
laptop computer executing an application program provided by the
provider of online content management service 100. In some
instances where the online content management service provides
access to files, the application program can allow files hosted on
a server to appear to exist within a filesystem structure
associated with the client computer's operating system. It should
be noted that in some instances the same client computer can
execute both a web browser and a desktop application program;
accordingly, it is to be understood that a single physical device
can implement one or more clients.
[0027] Other examples of clients include mobile devices, for
example, tablet computer 114 and mobile phone 116, which can
execute application programs (also referred to as "apps") that
communicate with online content management service 100. At various
times, a user can be interacting with one or more of clients 110,
112, 114, 116.
[0028] In some embodiments, online content management service 100
can allow users to selectively share content items stored in online
content management service 100 with other users, including members
and non-members of online content management service 100. Sharing
content items (including but not limited to text documents; email
messages; text messages; other types of messages; media files such
as photos, videos, and audio files; and/or folders containing
multiple files) can be effected in several ways. For example, a
user can select a content item and specify one or more sharing
permissions. As another example, a user can create a shared folder
that includes one or more content items, including nested folders
and files. Sharing permissions specified for the shared folder can
be extended to each content item stored within the shared
folder.
[0029] As yet another example, content items can be shared by
creating shareable links. A user can select a content item and
create a shareable link for that content item. The shareable link
can then be shared through various communication media, such as
instant message, email, SMS, and other similar channels. Each
content item is therefore shared with whomever is given the
shareable link. In some embodiments, the online content management
service can include an interface for sending shareable links for
content items. A user can provide user identifiers corresponding to
those persons to whom the shareable link is to be sent. The user
identifiers can include email addresses, membership identifiers
associated with the online content management service, or other
similar identifiers. A shareable link can link to a discrete
content item or to a folder. In the latter case, a user following
the shareable link can access any content items within the
folder.
[0030] Some embodiments support sharing of content items with
groups of users in addition to individual users. For example,
members of a team can share content items, such as through a shared
team folder, to more easily collaborate on team-related content
items. Each group identifier can correspond to several user
identifiers and the online content management service can maintain
a mapping of each group identifier to its constituent user
identifiers. When a content item is shared with one or more group
identifiers, the group identifier mapping can be used to identify
the user identifiers with which the content item is shared. Changes
to the membership of a group can be effected by updating the group
mapping.
[0031] Various operations described herein can be implemented on
computer systems, which can be of generally conventional design.
FIG. 2 is a simplified block diagram illustrating a representative
computer system 200. In various embodiments, computer system 200 or
similar systems can implement a client (for example, any of
platforms 110, 112, 114, 116) or a server (for example, server
200).
[0032] Computer system 200 can include processing unit(s) 205,
storage subsystem 210, input devices 220, output devices 225,
network interface 235, and bus 240.
[0033] Processing unit(s) 205 can include a single processor, which
can have one or more cores, or multiple processors. In some
embodiments, processing unit(s) 205 can include a general-purpose
primary processor as well as one or more special-purpose
co-processors such as graphics processors, digital signal
processors, or the like. In some embodiments, some or all
processing units 205 can be implemented using customized circuits,
such as application specific integrated circuits (ASICs) or field
programmable gate arrays (FPGAs). In some embodiments, such
integrated circuits execute instructions that are stored on the
circuit itself In other embodiments, processing unit(s) 205 can
execute instructions stored in storage subsystem 210.
[0034] Storage subsystem 210 can include various memory units such
as a system memory, a read-only memory (ROM), and a permanent
storage device. The ROM can store static data and instructions that
are needed by processing unit(s) 205 and other modules of
electronic device 200. The permanent storage device can be a
read-and-write memory device. This permanent storage device can be
a non-volatile memory unit that stores instructions and data even
when computer system 200 is powered down. Some embodiments of the
invention can use a mass-storage device (such as a magnetic or
optical disk or flash memory) as a permanent storage device. Other
embodiments can use a removable storage device (for example, a
floppy disk, a flash drive) as a permanent storage device. The
system memory can be a read-and-write memory device or a volatile
read-and-write memory, such as dynamic random access memory. The
system memory can store some or all of the instructions and data
that processing unit(s) 205 need at runtime.
[0035] Storage subsystem 210 can include any combination of
computer readable storage media including semiconductor memory
chips of various types (DRAM, SRAM, SDRAM, flash memory,
programmable read-only memory) and so on. Magnetic and/or optical
disks can also be used. In some embodiments, storage subsystem 110
can include removable storage media that can be readable and/or
writeable; examples of such media include compact disc (CD),
read-only digital versatile disc (for example, DVD-ROM, dual-layer
DVD-ROM), read-only and recordable Blue-Ray.RTM. disks, ultra
density optical disks, flash memory cards (for example, SD cards,
mini-SD cards, micro-SD cards, etc.), magnetic "floppy" disks, and
so on. The computer readable storage media do not include carrier
waves and transitory electronic signals passing wirelessly or over
wired connections.
[0036] In some embodiments, storage subsystem 210 can store one or
more software programs to be executed by processing unit(s) 205,
such as an operating system, a browser application, a mobile app
for accessing an online content management service, a desktop
application for accessing the online content management service,
and so on. "Software" refers generally to sequences of instructions
that, when executed by processing unit(s) 205 cause computer system
200 to perform various operations, thus defining one or more
specific machine implementations that execute and perform the
operations of the software programs. The instructions can be stored
as firmware residing in read-only memory and/or applications stored
in non-volatile storage media that can be read into volatile
working memory for execution by processing unit(s) 205. Software
can be implemented as a single program or a collection of separate
programs or program modules that interact as desired. From storage
subsystem 210, processing unit(s) 205 can retrieve program
instructions to execute and data to process in order to execute
various operations described herein.
[0037] A user interface can be provided by one or more user input
devices 220 and one or more user output devices 225. Input devices
220 can include any device via which a user can provide signals to
computing system 200; computing system 200 can interpret the
signals as indicative of particular user requests or information.
In various embodiments, input devices 220 can include any or all of
a keyboard, touch pad, touch screen, mouse or other pointing
device, scroll wheel, click wheel, dial, button, switch, keypad,
microphone, and so on.
[0038] User output devices 225 can include any device via which
computer system 200 can provide information to a user. For example,
user output devices 225 can include a display to display images
generated by computing system 200. The display can incorporate
various image generation technologies, for example, a liquid
crystal display (LCD), light-emitting diode (LED) including organic
light-emitting diodes (OLED), projection system, cathode ray tube
(CRT), or the like, together with supporting electronics (for
example, digital-to-analog or analog-to-digital converters, signal
processors, or the like). Some embodiments can include a device
such as a touchscreen that function as both input and output
device. In some embodiments, other user output devices 225 can be
provided in addition to or instead of a display. Examples include
indicator lights, speakers, tactile "display" devices, printers,
and so on.
[0039] Network interface 235 can provide voice and/or data
communication capability for computer system 200. In some
embodiments, network interface 235 can include radio frequency (RF)
transceiver components for accessing wireless voice and/or data
networks (for example, using cellular telephone technology,
advanced data network technology such as 3G, 4G or EDGE, WiFi (IEEE
802.11 family standards), or other mobile communication
technologies, or any combination thereof), GPS receiver components,
and/or other components. In some embodiments, network interface 235
can provide wired network connectivity (for example, Ethernet) in
addition to or instead of a wireless interface. Network interface
235 can be implemented using a combination of hardware (for
example, antennas, modulators/demodulators, encoders/decoders, and
other analog and/or digital signal processing circuits) and
software components.
[0040] Bus 240 can include various system, peripheral, and chipset
buses that communicatively connect the numerous components of
computing system 200. For example, bus 240 can communicatively
couple processing unit(s) 205 with storage subsystem 210. Bus 240
can also connect to input devices 220 and output devices 225. Bus
240 can also couple computing system 200 to a network through
network interface 235. In this manner, computing system 200 can be
a part of a network of multiple computer systems (for example, a
local area network (LAN), a wide area network (WAN), an intranet,
or a network of networks, such as the Internet.
[0041] Some embodiments include electronic components, such as
microprocessors, storage and memory that store computer program
instructions in a computer readable storage medium. Many of the
features described in this specification can be implemented as
processes that are specified as a set of program instructions
encoded on a computer readable storage medium. When these program
instructions are executed by one or more processing units, they
cause the processing unit(s) to perform various operation indicated
in the program instructions. Examples of program instructions or
computer code include machine code, such as is produced by a
compiler, and files including higher-level code that are executed
by a computer, an electronic component, or a microprocessor using
an interpreter.
[0042] Through suitable programming, processing unit(s) 205 can
provide various functionality for computing device 200. For
example, in a mobile computing device, processing unit(s) 205 can
execute an operating system and an app to communicate with online
content management service 100. In a desktop computing device,
processing unit(s) 205 can execute an operating system and a
desktop application program that presents an interface to online
content management service 100; in some embodiments, this interface
can be integrated with an interface to a filesystem maintained by
the operating system. In some embodiments, processing unit(s) 205
can execute a browser application that provides the ability to
retrieve and display content items from sources such as online
content management service 100 (for example, using HTTP or other
data transfer protocols to retrieve and display web pages) and the
ability to receive and interpret user input pertaining to the
content items, such as selection of an item to view, submission of
data by the user in response to a particular content item (for
example, filling out a form on an interactive web page), and so
on.
[0043] It will be appreciated that computer system 200 is
illustrative and that variations and modifications are possible.
Computer system 200 can have other capabilities not specifically
described here (for example, mobile phone, global positioning
system (GPS), power management, one or more cameras, various
connection ports for connecting external devices or accessories,
etc.). Further, while computer system 200 is described with
reference to particular blocks, it is to be understood that these
blocks are defined for convenience of description and are not
intended to imply a particular physical arrangement of component
parts. Further, the blocks need not correspond to physically
distinct components. Blocks can be configured to perform various
operations, for example, by programming a processor or providing
appropriate control circuitry, and various blocks might or might
not be reconfigurable depending on how the initial configuration is
obtained. Embodiments of the present invention can be realized in a
variety of apparatus including electronic devices implemented using
any combination of circuitry and software.
[0044] As described above, the ability to share content items
stored in an online content management service can lead to more
complex content management challenges. To address these challenges,
and enable users to view, organize, and otherwise manage their
content items, sharing-specific details for content items can be
maintained in sharing profiles. FIG. 3 shows a sharing profile, in
accordance with an embodiment of the present invention. As noted
above, each content item stored in online content management
service 100 can be associated with a sharing profile that includes
sharing-specific metadata about its associated content item.
Content management service 100 can store the sharing profiles and
automatically update each sharing profile as changes are made by a
user and/or based on activity on an associated content item, as
described further below. For example, as shown in FIG. 3, sharing
profile 300 can include sharing status field 302 which indicates
whether the content item is shared. In some embodiments, sharing
status field 302 can include a boolean value which represents the
item's state as either shared or not shared. The sharing profile
can include additional sharing metadata such as sharing mode field
304, indicating how an item is shared, and sharing target field
306, indicating with whom an item is shared.
[0045] As described above, content items can be shared in several
modes such as by shareable link, shared folder, or directly shared
by changing the sharing permissions for a particular content item.
As shown in FIG. 3, sharing mode field 304 can include a value
which represents how the content item is shared. In some
embodiments, if a content item has been shared using more than one
mode, sharing mode field 304 can include multiple values
corresponding to each sharing mode. Alternatively, sharing mode
field 304 can include a value corresponding to the particular
combination of sharing modes used to share the content item.
[0046] In some embodiments, sharing target field 306 can include
one or more target identifiers. As used herein, a target identifier
refers to an identifier associated with the user and/or group which
is the target of the sharing. A target identifier can be a user
identifier or a group identifier. Sharing target field 306 can
include a list of one or more target identifiers, an object or
other data structure which includes the one or more target
identifiers, a pointer to an object or other data structure which
includes the one or more target identifiers, or other indication of
the one or more target identifiers.
[0047] In some embodiments, the sharing profile can include any
sharing restrictions associated with the content item. For example,
temporal restriction field 308 can indicate a time-based limitation
on the sharing of the content item. Such a time-based limitation
can include a date and time when the content item will become
shared, unshared, or a time period during which the content item
will be shared. When a request is received to download a shared
content item, the online content management service can determine
whether the shared content item's sharing profile includes a
temporal restriction and disallow the request if the temporal
restriction is not met. In some embodiments, if the temporal
restriction has expired, the online content management service can
unshare the content item, such as by disabling a shared link or
updating the sharing status of the content item to indicate the
content item is not shared.
[0048] In some embodiments, geographic restriction field 310 can
indicate one or more geographic regions within which the content
item can be shared. For example, content items can be shared with a
particular region, such as a particular country, state, or other
political subdivision. Alternatively, content items can be excluded
from being shared with a particular region. Geographic restriction
field 310 can include geographic identifiers corresponding to those
regions where the content item can be shared or those regions where
the content item cannot be shared. In some embodiments, when a
request is received to download a shared content item, the online
content management service can determine a location associated with
the request, for example, based on an IP address associated with
the request, and compare the request location with any locations
included in geographic restriction field 310. The online content
management service can disallow the request if the geographic
restriction is not met.
[0049] In some embodiments, the sharing profile can include
download restriction field 312 which can define how many times the
content item can be downloaded. For example, download restriction
field 312 can include a count, specified by the sharer of the
content item or set by default. In some embodiments, each time a
request to download a shared content item is received, the online
content management service can determine if a download restriction
is associated with the shared content item. If a download
restriction is set, the online content management service can
determine whether downloads are still available for the content
item. If it is determined that downloads are still available, the
online content management service can allow the request and
decrement the download count. If the download count has reached
zero, the online content management service can deny the request.
In some embodiments, when it is determined that the download count
has reached zero, the online content management service can unshare
the content item, such as by disabling a shared link or updating
the sharing status of the content item to indicate the content item
is not shared.
[0050] In some embodiments, each client device can store copies of
sharing profiles associated with a user's content items. A client
device can retrieve updated sharing profiles at default time
intervals. In some embodiments, users can define update intervals
for sharing profiles. The user defined update intervals can be
defined globally for all sharing profiles or can be defined for
each content item. In some embodiments, online content management
service 100 can push updated sharing profiles to a client device
when changes are made to the sharing profiles.
[0051] Online content management service 100 can use the
sharing-specific metadata stored in each content item's sharing
profile to provide the user with the ability to organize and view
their content items based on the sharing-specific metadata. FIG. 4
shows a flow diagram of process 400 for organizing content items
stored in an online content management service using sharing
profiles, in accordance with an embodiment of the present
invention. Process 400 can be implemented, for example, on online
content management service 100.
[0052] At block 402, online content management service 100 can
receive a request from a client device to display content items
associated with a user identifier. For example, when a user logs in
to online content management service 100 from a computer, mobile
device, or other client device using the user identifier, and
requests to view content items. At block 404, online content
management service 100 can identify content items stored with the
online content management service which are associated with the
user identifier.
[0053] As described above, each content item stored in online
content management service 100 can be associated with a sharing
profile that includes sharing metadata about its associated content
item. At block 406, online content management service 100 can
analyze the sharing profiles associated with the content items, for
example to determine which content items are shared, with whom the
content items are shared, and/or to determine other metadata stored
in the sharing profiles. At block 408, online content management
service 100 can sort the content items into a default, or any other
predefined, sorted list. For example, the sorted list can be sorted
according to whether a content item is shared, or based on content
item sharing restrictions. In some embodiments, other content item
metadata can be used to sort the list, such as content item name,
kind, or modified date. At block 410, the sorted list can be sent
to the client device to be displayed. In some embodiments, each
content item in the sorted list can be displayed with an indication
of whether the content item is shared, based on the analysis of the
sharing profiles.
[0054] In some embodiments, online content management service 100
can return the sharing profiles associated with the content items
to the client device, and the client device can analyze each
sharing profile, and sort the content items into a default, or any
other predefined, sorted list. This reduces processing by online
content management service 100 and takes advantage of processing
resources at the client device. The client device can display the
default sorted list to the user on a display connected to the
client device. If the user requests to re-sort the content, for
example by selecting a particular field on the display, the client
device can re-analyze the sharing profiles, re-sort the content
items into a re-sorted list, and display the re-sorted list. In
some embodiments, when the user requests to re-sort the content
items, the client device can automatically request any updated
sharing profiles from online content management service 100. For
example the client device can send a time/date stamp associated
with each sharing profile and online content management service 100
can compare the time/date stamps from the client device, to
time/date stamps associated with the sharing profiles stored at
online content management service 100. Online content management
service 100 can return updated sharing profiles or a message
indicating that all sharing profiles are up to date.
[0055] Using the sharing-specific metadata stored in the sharing
profiles described above, online content management service 100 can
incorporate sharing-based content management features into a user
interface, providing users with simple and intuitive access to the
sharing-based management features. FIGS. 5A and 5B show exemplary
user interfaces for displaying content items stored in an online
content management service, in accordance with an embodiment of the
present invention. As shown in FIG. 5A, user interface 500 can be
displayed on a client device and used to navigate and manage
content items stored in online content management service 100. The
user interface can display the user's content as shown at 502,
sorted according to one or more characteristics of the content
items. For example, as shown in FIG. 5A, folders and files are
organized separately and are sorted by name 504. Alternatively, the
content items can be sorted by kind 506, when they were last
modified 508, or whether they are shared 510. Each characteristic
can be determined based on a content item's metadata. For example,
to determine which content items are shared, the online content
management system can analyze each content item's sharing profile.
User interface 500 can include selectable icons for uploading new
content items 512, creating new folder 514, creating new shared
folder 516, and deleting content items 518. User interface 500 can
include a search bar 520 to limit or find specific subsets.
[0056] As shown in FIG. 5B, content items can be sorted according
to sharing status, for example, based on user request. In some
embodiments, the user can submit this request by selecting shared
column 510. Online content management system 100 can then analyze
the sharing profile of each content item, sort the content items to
create a sorted list according to the content items' sharing
status, and return the sorted list to the client device for
display. As shown in FIG. 5B, Shared folder 524 and Document A 526,
which were indicated as being shared, have been sorted to the top
of the content items.
[0057] As described above, a user can organize content items based
on whether the content items are shared, providing a basic view of
shared and unshared content items. However, each content item's
sharing profile can include additional sharing-specific metadata
such as sharing restrictions and sharing modes. Online content
management service 100 can use the sharing profiles to provide more
detailed views of a user's shared content items. FIG. 6 shows a
flow diagram of a process 600 of organizing content items stored in
an online content management service using sharing profiles, in
accordance with an embodiment of the present invention. Process 600
can be implemented, for example, on online content management
service 100.
[0058] At block 602, online content management service 100 can
receive a request from a client device to display shared content
items associated with a user identifier. For example, when a user
logs in to online content management service 100 from a computer,
mobile device, or other client device, that user can be shown, for
example, all available content items associated with the user's
identifier. The user can request to view shared content items, for
example, by selecting a "sharing" icon. At block 604, online
content management service 100 can analyze sharing profiles
associated with each content item to determine which content items
are shared. At block 606, based on the request and the analysis of
the sharing profiles, online content management service 100 can
determine one or more metadata characteristics from the sharing
profiles to be displayed. At block 608, the shared content items
can be sorted to create a sorted list. In some embodiments, a
default sort order can be predefined, for example, by share type or
share expiration. In some embodiments the default sort can be based
on non-sharing metadata such as name or date modified. At block
610, the sorted list can be sent to the client device for
display.
[0059] As described above, in some embodiments, each client device
can store copies of the sharing profiles associated with the
content items. This enables each client device to analyze the
sharing profiles and sort and/or re-sort the content items based on
requests from the user. This offloads processing from online
content management service 100 to the client devices, taking
advantage of processing resources at the client device and
generally improving scalability.
[0060] Online content management service 100 can provide a user
interface that incorporates access to the more detailed views of a
user's shared content items, as described above. These views enable
users to more quickly and efficiently manage their content. For
example, the views can show shared content items which have a
sharing restriction that is about to expire. The views can organize
content items by the sharing entity with which they are shared.
This enables the user to see what has been shared with whom and
easily update how the content items are shared. FIGS. 7A-7E show
exemplary user interfaces for displaying content items stored in an
online content management service, in accordance with an embodiment
of the present invention. As shown in FIG. 7A, a user can request
to view shared content items, by selecting a sharing icon 700. The
sortable characteristics 702 can be updated to include additional
sharing-specific characteristics such as Restriction and Share
Type. As described above, the share type can indicate by which
method a content item is shared. For example, in FIG. 7A, both the
folder Shared and Document A are directly shared 704. The user
interface can indicate whether a sharing restriction is associated
with any shared content items, as shown at 705.
[0061] In some embodiments, a user can request different views of
shared content items that provide different details of the shared
content items. For example, different views can be represented as
different tabs 707 in a user interface, and the user can request a
particular view by selecting the corresponding tab. Alternative
selection mechanisms are also possible, for example, by touching
and dragging across a touchscreen interface, by selecting icons
representing different views, and by other selection techniques.
FIG. 7B shows an alternative view of shared content items. In
Restrictions view 706, sharing restrictions associated with shared
content items are shown as separate sortable characteristics. The
added sortable characteristics include location 708, time 710, and
count 712. As shown in FIG. 7B, the restrictions view can display
all shared content items, not just those content items having a
sharing profile associated with a restriction. Alternatively, the
restrictions view can be limited to shared content items which have
a restriction.
[0062] As described above, location restricted sharing can indicate
a geographic area or other predefined region to which the content
item can be shared. For example, as shown in FIG. 7B, Shared C is
limited to Region 1. Time restricted sharing can set a
predetermined period of time during which the item can be shared,
such as Document E which is shown as having 54 minutes remaining
during which it is shared. Download restricted sharing can set a
predetermined number of available downloads for a content item
before sharing is deactivated. As shown in FIG. 7B, Document F has
seven downloads remaining. In some embodiments, restrictions view
706 can dynamically update the sharing restrictions as they change.
For example, the time restriction on Document E can automatically
update as the time counts down, and the download count for Document
F can automatically decrement as download requests are received.
Sorting by restriction enables users to quickly view which shared
content items are soon to become unshared, for example which
content items have a temporal restriction that is about to expire,
or which content items are nearing their download limits. The user
can use this information to decide whether to request changes to
content item restrictions, such as extending temporal restrictions
or increasing available downloads.
[0063] FIG. 7C shows target view 714 of shared content items. In
target view 714, the target identifiers, including both user 716
and group identifiers 718, with which a content item is shared are
shown as sortable characteristics. This enables users to quickly
see which content items are shared with which users and groups, and
sort the display of their shared content items accordingly. As
shown in FIG. 7C, a content item can be associated with multiple
target identifiers, including user identifiers and/or group
identifiers. In some embodiments, target view 714 can display
target identifiers for each user and/or group with which a content
item has been separately shared. For example, folder Shared A has
been shared with Group 1, User 1, and User 2. In this example,
target identifiers included in Group 1 are not displayed.
Alternatively, in some embodiments, target view 714 can display all
user and/or group identifiers which have access to a content item,
regardless of the sharing mode used to provide that access.
[0064] FIG. 7D shows link view 720 of shared content items. As
shown in FIG. 7D, a user can request the link view by selecting
links icon 721 or by selecting a Link tab. The link view 720 can
include those content items for which shareable links have been
created. In the link view 720, the user can request a copy of the
shareable link for a content item by, for example, selecting a
corresponding link icon 722. The copy of the shareable link can be
displayed in a selectable format, such as a text field, and sent to
other users and/or groups through a variety of messaging
techniques. In some embodiments, restrictions 723 associated with a
shareable link can be displayed along with known target identifiers
724 to which the shareable link was sent. In some embodiments,
because shareable links can be sent through different communication
mechanisms to both members and non-members of an online content
management service, the shown target identifiers can represent an
incomplete picture of the shareable link recipients. In some
embodiments, as known members request the content item using the
shareable link, the target identifiers associated with the
shareable link can be updated.
[0065] FIG. 7E shows entity view 726 of content items. As shown in
FIG. 7E, entity view 726 provides a simplified view of content
items 730 organized based on the sharing entity 728 with which they
are shared. As used herein, the sharing entity can refer to the
particular assortment of target identifiers, users and/or groups,
with which a content item is shared. This view can show which
content items are shared with a particular entity, without changing
how or where the content items are stored within the file system.
Entity view 726 can show which content items have been shared with
each user and group, and can show which content items have been
shared with different combinations of users and/or groups. For
example, in FIG. 7E, the folder Work and image Photo A are shown as
being shared with Group 1, and the folder Photos and Documents B
and C are shown as being shared with User 1. In this example, Photo
A is located in the Photos folder, and is therefore shared with
User 1. As such, Photo A is shared with both Group 1 and User 1, as
shown at 732. In some embodiments, as shown in FIG. E, entity view
726 can show the intersection of content items shared with a
combination of users and/or groups. Alternatively, a view could be
provided which shows the union of content items shared with a
combination of users and/or groups.
[0066] In some embodiments, entity view 726 can display content
items that have not been shared. As shown in FIG. 7E, Not Shared
734 can be displayed as the entity with which the unshared contents
are associated. This way, entity view 726 can show a comprehensive
view of all of a user's content items, rather than just shared
content items. Within entity view 726, a user can change the entity
with which a content item is shared by, for example, dragging and
dropping the content item between entities. For example, to share
Document B, which is currently shown as being shared with User 1,
with another entity such as User 2, the user can select Document B
and move it to User 2. Entity view 726 can then be updated to show
Document B as being shared with both User 1 and User 2. The user
can also share an unshared content item by, for example, dragging
and dropping the unshared content item from Not Shared to the
desired sharing entity. In that case, the unshared content item is
no longer displayed under Not Shared and is instead displayed under
the sharing entity with which it is now shared. Similarly, a shared
content item can be unshared by, for example, dragging and dropping
the shared content item from an entity with which the shared
content item is shared, to Not Shared. In some embodiments, when
moved to Not Shared, the shared content item can be unshared with
all entities with which it was shared. As such, in entity view 726
the formerly shared content item is removed from any entities with
which it was shared, and the formerly shared content item is
displayed under Not Shared. Alternatively, in some embodiments,
when moved to Not Shared, the shared content item is only unshared
with the entity from which it was moved.
[0067] Through entity view 726, a user can select a sharing entity
name to show only those content items shared with that sharing
entity. For users having content items shared with many different
sharing entities, or a large number of content items shared with a
particular entity, this can provide an easier to manage view of
content items shared with a particular sharing entity. In some
embodiments, entity view 726 can include entities search bar 736.
The user can use entities search bar 736 to limit the sharing
entities shown in entity view 726 to a subset of sharing entities.
In some embodiments, entity view 726 can show the user's user name
as an entity. This enables the user to see those content items
which have been shared with the user by different users. By
selecting the user's user name, a more detailed view of the content
items that have been shared with the user can be displayed,
including details such as sharing restrictions.
[0068] The above-described views of a user's content items enable
the user to quickly and intuitively manage their content from a
high level perspective. Sharing of content items can also be
managed on a per content item basis, through an interactive sharing
summary. FIG. 8 shows a flow diagram of a process 800 of generating
an interactive sharing summary for a content item, in accordance
with an embodiment of the present invention. Process 800 can be
implemented, for example, on online content management service
100.
[0069] At block 802, online content management service 100 can
receive a selection of a content item from a client device. For
example, the user can make the selection through a user interface
on a client device. At block 804, the selected content item's
sharing profile can be analyzed to determine one or more target
identifiers with which the content item is shared. In some
embodiments, sharing restrictions can also be determined from the
sharing profile. At block 806, an interactive sharing summary is
generated. The interactive sharing summary can include the one or
more target identifiers, and/or other information, such as any
sharing restrictions associated with the content item. At block
808, the interactive sharing summary can be sent to the client
device for display.
[0070] In some embodiments, online content management service 100
can return the sharing profile associated with the selected content
item to the client device, and the client device can analyze the
sharing profile to determine one or more target identifiers with
which the content item is shared. The client device can generate
the interactive sharing summary based on the analysis of the
sharing profile and display the interactive sharing summary. Any
changes made to the interactive sharing summary by the user, for
example adding or removing target identifiers, can be automatically
synchronized with the sharing profile associated with the selected
content item stored at online content management service 100.
[0071] FIG. 9 shows an exemplary user interface including an
interactive sharing summary for a selected content item stored in
an online content management service, in accordance with an
embodiment of the present invention. As shown in FIG. 9, a user can
select content item 900 displayed on a client device. Once content
item 900 is selected, the online content management service can
analyze a sharing profile associated with the content item to
determine sharing information about the content item, such as
target user identifiers with which the content item is shared and
sharing restrictions. Using this information, the online content
management service can generate interactive sharing summary 902 for
the content item. The interactive sharing summary can include
sharing permissions 904 that include target identifiers 906 with
which the content item is shared. Each target identifier can be
selected to dynamically modify the sharing permissions, such as to
change a sharing restriction or unshare the content item with the
target identifier. In some embodiments, interactive sharing summary
902 can enable a user to share the selected content item with
additional target identifiers. For example, as shown at 908,
interactive sharing summary 902 can include icons that when
selected enable a user to share the content item with a new user or
group identifier. In some embodiments, the interactive sharing
summary can be displayed as a sidebar (as shown), a pop-up window,
overlay, or other graphical representation and can vary depending
on the client device in use.
[0072] As described above, an interactive sharing summary enables
the user to view and edit sharing-specific metadata stored in a
content item's sharing profile. This provides users with one way of
managing sharing details for a given content item. Another method
of managing sharing details for a content item is to join it with
another content item, for example, by dragging and dropping one
content item onto another in a user interface. FIG. 10 shows a flow
diagram of a process 1000 of joining content items stored in an
online content management service, in accordance with an embodiment
of the present invention. Process 1000 can be implemented, for
example, on online content management service 100.
[0073] At block 1002, online content management service 100 can
receive a request from a client device to join two or more content
items. For example, the user can select a first content item and
drag and drop the first content item onto a second content item. At
block 1004, the online content management service can determine
whether to create a new folder based on the request. For example,
if the user selects a document and requests to join the document
with a folder, the online content management service can add the
document to the folder without creating a new folder.
Alternatively, if the user selects a first document and requests to
join it with a second document, the online content management
service can automatically create a new folder which includes the
first and second documents. Similarly, if the user selects a first
folder and requests to join it with a second folder, a new folder
can automatically be created which includes the first and second
folders as sub-folders. In some embodiments, when a user requests
to join a folder content item and a non-folder content item, the
user can be prompted to choose whether to create a new folder which
includes both content items, or to add the non-folder content item
to the folder content item. At block 1006, the content items are
joined, which can include creating a new folder as described
above.
[0074] At block 1008, the sharing profiles of the content items are
updated. Each sharing profile can be updated depending on how the
content items were joined and which users and/or groups the content
items were shared with. If joining the content items results in a
hierarchical relationship between the joined content items, the
sharing permissions of the hierarchically superior content item can
be copied by each hierarchically inferior content item. For
example, if the joining of a document and a folder results in the
document being stored in the folder, or if a joining of two folders
results in one folder being nested within the other, the sharing
permissions of the outermost folder can be adopted by the content
items stored therein. If the joining results in a new folder which
includes the joined content items, the sharing permissions of the
joined content items can be reconciled, and the sharing profile of
the new folder updated to match the reconciled permissions. In some
embodiments, the reconciled permissions can represent a union of
each content item's permissions. For example, if a first content
item is shared with User 1 and a second content item is shared with
User 2, the first and second content items can be joined in a new
folder which includes the first and second content items and which
is shared with Users 1 and 2. The sharing profiles of the new
folder and the first and second content items can be updated to
reflect the new sharing permissions. Alternatively, the reconciled
permissions can represent the intersection of each content item's
permissions, if the content items are shared with at least one
common target user identifier. In some embodiments, the user can be
prompted to manually reconcile the sharing permissions by defining
the sharing permissions of the joined content items.
[0075] FIGS. 11A and 11B show an exemplary user interface which
enables users to join content items stored in an online content
management service, in accordance with an embodiment of the present
invention. As shown in FIG. 11A, a user can select first content
item 1100 displayed on a client device. Once selected, the user can
request 1102 that the first content item be joined with a second
content item 1104. For example, the user can drag and drop the
first content item onto the second content item. As described
above, the result of the joining can vary depending on the content
items being joined. In the example shown in FIG. 11A, the first
content item is a document, and the second content item is a
folder. In this example, by joining the document and the folder,
the document is added to the folder. In some embodiments, a new
folder can be created as a result of the joining and/or a user can
be prompted to determine whether to create a new folder.
[0076] FIG. 11B shows a view of the contents of folder Shared B
1104. As a result of the joining, Document F 1100 has been added to
Shared B 1104. Once joined, the sharing permissions of the joined
content items are reconciled. Previously, as shown in FIG. 11A,
Document F was shared with Users 5 and 6 and Group 4, while Shared
B was shared with User 3. Since Document F was added to Shared B,
and is therefore hierarchically inferior, Document F's sharing
profile is updated such that it is no longer shared with Users 5
and 6 and Group 4, and is instead shared with User 3 to match
Shared B. In some embodiments, an unshared content item can be
joined with a shared content item. In that case, the unshared
content item is shared with the same target identifiers as the
shared content item with which it was joined.
[0077] As described above, online content management service 100
can provide various views of a user's content items sortable by
sharing specific metadata stored in sharing profiles. These views
do not alter the underlying file structure of the content
management service. In some embodiments, online content management
service 100 can enable users to re-sort their shared content based
on the sharing specific metadata. FIG. 12 shows a flow diagram of a
process 1200 of automatically organizing content items stored in an
online content management service, in accordance with an embodiment
of the present invention. Process 1200 can be implemented, for
example, on online content management service 100.
[0078] At block 1202, online content management service 100 can
receive a request from a client device to automatically organize
shared content items stored in online content management service
100. For example, the user can select an "organize" icon displayed
in a user interface on a client device. At block 1204, a new folder
can be created for each sharing entity associated with two or more
shared content items stored in the online content management
service. As used herein, the sharing entity can refer to the
particular assortment of target identifiers with which a content
item is shared. For example, if a first content item is shared with
User 1 and Group 2, the first content item's sharing entity is User
1 and Group 2. Online content management service 100 can identify
each content item's sharing entity based on each content item's
sharing profile. In some embodiments, online content management
service 100 can iterate through each shared content item to
determine how many sharing entities exist among the user's shared
content, and to count how many content items are associated with
each sharing entity. At block 1204, content items can automatically
be moved to the appropriate new folder, based on their sharing
entity.
[0079] FIGS. 13A-13C show exemplary user interface 1300 which
enables users to request automatic organization of shared content
items stored in an online content management service, in accordance
with an embodiment of the present invention. As shown in FIG. 13A,
user interface 1300 can be operable to receive a request to
automatically organize shared content items. For example, the
interface can include selectable "organize" icon 1302. The
interface can show each user 1304 and group 1306 with which each
content item is shared. When a user requests that the shared
content items be automatically organized, the online content
management service can identify each content item's sharing entity
based on each content item's sharing profile. The online content
management service can also determine which sharing entities are
associated with more than one content item. For example, in FIG.
13A, Shared A 1308, Shared C 1310, and Document F 1312 are each
associated with the sharing entity User 1, Group 1.
[0080] In FIG. 13B, a new folder Shared D 1314 has been created for
the sharing entity {User 1, Group 1}. The other identified sharing
entities {User 3; User 4, Group 1; and Group 3} are each associated
with a single content item, and therefore new folders for these
sharing entities were not created. Each content item {Shared A
1308, Shared C 1310, and Document F 1312} associated with the
sharing entity {User 1, Group 1}, has been moved to new folder
Shared D 1314. FIG. 13C shows a view 1316 of the contents of Shared
D which now includes content items Shared A 1308, Shared C 1310,
and Document F 1312. By automatically organizing content items by
sharing entity, the online content management service enables users
to more easily make changes to the sharing permissions of all
content items shared with a particular sharing entity and provides
the user with a cleaner, more easily navigated view of the user's
shared content items.
[0081] It will be appreciated that processes 400, 600, 800, 1000
and 1200 are illustrative and that variations and modifications are
possible. Steps described as sequential can be executed in
parallel, order of steps can be varied, and steps can be modified,
joined, added or omitted. Used together, processes 400, 600, 800,
1000 and 1200 (or similar processes) can allow clients to organize
and navigate content items, and modify sharing permissions of
content items, using each content item's sharing profile.
[0082] While the invention has been described with respect to
specific embodiments, one skilled in the art will recognize that
numerous modifications are possible. For example, the particular
events, data structures, and platforms described herein are used
for purposes of illustration; other events, data structures, and
platforms can be substituted. Techniques for selecting, requesting,
and modifying organizational structures and sharing permissions can
also be modified as appropriate for a particular client.
[0083] Embodiments described above can make reference to data
structures and databases or data stores. It is to be understood
that these terms can encompass any techniques for organizing
information into discrete records that can be stored, retrieved and
interpreted by computer systems.
[0084] Embodiments of the present invention can be realized using
any combination of dedicated components and/or programmable
processors and/or other programmable devices. The various processes
described herein can be implemented on the same processor or
different processors in any combination. Where components are
described as being configured to perform certain operations, such
configuration can be accomplished, for example, by designing
electronic circuits to perform the operation, by programming
programmable electronic circuits (such as microprocessors) to
perform the operation, or any combination thereof. Further, while
the embodiments described above can make reference to specific
hardware and software components, those skilled in the art will
appreciate that different combinations of hardware and/or software
components can also be used and that particular operations
described as being implemented in hardware might also be
implemented in software or vice versa.
[0085] Computer programs incorporating various features of the
present invention can be encoded and stored on various computer
readable storage media; suitable media include magnetic disk or
tape, optical storage media such as compact disk (CD) or DVD
(digital versatile disk), flash memory, and other non-transitory
media. Computer readable media encoded with the program code can be
packaged with a compatible electronic device, or the program code
can be provided separately from electronic devices (for example,
via Internet download or as a separately packaged computer-readable
storage medium).
[0086] Thus, although the invention has been described with respect
to specific embodiments, it will be appreciated that the invention
is intended to cover all modifications and equivalents within the
scope of the following claims.
* * * * *