Limited Download Tickets Extension

Document created by resplin Employee on Jun 6, 2015
Version 1Show Document
  • View in full screen mode

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:









Name: LimitedDownloadTicket
URI: http://www.alfresco.org/model/extension/limiteddownloadticket/1.0
Prefix: ldt

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


Attachments

    Outcomes