Since information is only useful if you can find what you're looking for, files in the file storage system should be searchable using site-wide search. To facilitate this, files uploaded to this system are stored in the database.
In addition to its use as a stand-alone user application, the file-storage system can provide helper services to other ACS applications that need a mechanism for managing uploaded files.
For each project, Ursula makes a folder on the file-storage system and gives read, write, and edit permission to the group of people she is working with for that project. Then she makes subfolders for each of the tasks for that project and asks appropriate team members to start uploading versions of the documents as soon as they have completed drafts. She downloads the documents, makes edits, adds, comments to them, etc. Then she uploads her new version to the same folder. She and the other members of her team go back and forth with this until they have a version they are satisfied with. Occasionally, Ursula wants to ask someone outside the group their opinion so she gives them read access to just one version of a file so that they can download it and take a look. Sometimes production tasks change; if so, Ursula can rearrange the project's sub-folder hierarchy to make it more closely reflect the new organizational scheme.
10.1 each file should have a unique identifier
10.2 each version of a file should have a unique identifier
10.3 each file shall have an associated owner
10.4 permissions for files and versions will be handled by the general permissions system
10.5 a user's set of files will be organized in a hierarchical set of "folders" and "sub-folders"
10.6 each version of each file will have individual read, write, comment, and administer permissions associated with it
10.7 to allow administrators to recover "deleted" files, when a user asks for a file to be deleted, it is marked deleted_p = 't' but not deleted from the database
20.1 the administrator should be able to view all files in the file-storage system
20.2 the administrator should be able to edit, delete, or alter permissions for any file belonging to any user
20.3 so that the administrator can manage database space, when he requests that a file be deleted, the file should really be deleted, not just marked deleted-p = 't'
Any other application should be able to us the file storage system to hold information in the form of uploaded, versioned, files organized in a single or multi-level hierarchy. To support this, the file storage application should:
30.1 provide a function for creating a new file
30.2 provide a function for uploading a new version of a file
30.3 provide functions for checking the read, write, and edit permissions for any version of any file
30.4 provide a function for downloading any version of any file
N. B. items 1 & 2 are not currently implemented in a proceduralized fashion. Items 3 & 4 are implemented as tcl procs or registered filters.
40.1 a user should be able to create folders and subfolders in which he can place his files
40.2 a user should be able to add new files and new version of files
40.3 a user should be able to move files to different folders or sub-folders
40.4 a user should be able to delete folders and individual files
40.5 a user should be able to download any version of any of the files accessible to him
40.6 a user should be able to view and/or edit other user's files if the owner has marked them public, or if the user has been granted individual or group permission with access to the files
40.7 a user should be able to search the text of the documents stored in the file-storage system (requires full-text search capability from the database - in the case of Oracle, requires InterMedia)
| Document Revision # | Action Taken, Notes | When? | By Whom? |
|---|---|---|---|
| 0.1 | Creation | 10/1/2000 | Cynthia Kiser |