Obsolete Pages{{Obsolete}}
The official documentation is at: http://docs.alfresco.com
Forge Projects
Back to Project Proposals
Requirements
- A authorised user can send a limited download URL to a user or non-user of the Alfresco repository.
- The issuer of the limited download URL can specify the number of allowed downloads, the expiry date, the version available for download and other pertinent data.
- The issued URL will provide the recipient with a rights to download the referenced content for a limited time period or a limited number of times.
- Once the time period has passed or the number of download exceeded the URL is no longer valid.
- Data about when and who downloaded information using a limited download URL should be stored.
- The security of the Alfresco repository must not be compromised though the introduction of this extension.
Design
Model
- When a ticket is created its details are stored in a node attached to the content for which it is relevant.
- Since more than one ticket can be created for a content node, an aspect is used to model the collection of tickets associated with a content node.
- The aspect is applied the first time a ticket is generated, with subsequent ticket being added to the child association modeled by the aspect.
- The details of any downloads made against each ticket are stored in a download details node associated as a child of the ticket.
Model Details:
Limited Download Ticket Aspect:
<aspect name='ldt:limitedDownloadTickets'>
<title>Limited Download Tickets</title>
<associations>
<child-association name='ldt:tickets'>
<source>
<mandatory>false</mandatory>
<many>false</many>
</source>
<target>
<class>ot:limitedDownloadTicket</class>
<mandatory>false</mandatory>
<many>true</many>
</target>
</child-association>
</associations>
</aspect>
Limited Download Ticket Type:
<type name='ltd:limitedDownloadTicket'>
<title>Limited Download Ticket</title>
<parent>sys:base</parent>
<properties>
<property name='ltd:ticketString'>
<type>d:text</type>
<mandatory>true</mandatory>
</property>
<property name='ltd:password'>
<type>d:text</type>
<mandatory>false</mandatory>
</property>
<property name='ltd:invitingDate'>
<type>d:datetime</type>
<mandatory>true</mandatory>
</property>
<property name='ltd:toAddress'>
<type>d:text</type>
<mandatory>true</mandatory>
</property>
<property name='ltd:sentBy'>
<type>d:text</type>
<mandatory>true</mandatory>
</property>
<property name='ltd:expireDate'>
<type>d:date</type>
<mandatory>false</mandatory>
</property>
<property name='ltd:versionLabel'>
<type>d:text</type>
<mandatory>false</mandatory>
</property>
</properties>
<child-association name='ldt:downloads'>
<source>
<mandatory>false</mandatory>
<many>false</many>
</source>
<target>
<class>ldt:downloadDetails</class>
<mandatory>false</mandatory>
<many>true</many>
</target>
</child-association>
</type>
Download Details Type:
<type name='ltd:downloadDetails'>
<title>Download Details</title>
<parent>sys:base</parent>
<properties>
<property name='ldt:downloadDate'>
<type>d:datetime</type>
<mandatory>true</mandatory>
</property>
<property name='ldt:downloadedVersionLabel'>
<type>d:text</type>
<mandatory>true</mandatory>
</property>
</properties>
</type>
API
Security
Download Mechanism
UI Extensions
References
Forge Project: http://forge.alfresco.com/projects/onetime/
Contacts