[development] hook_fileapi (file products and download permission)

Dave Cohen drupal at dave-cohen.com
Wed May 10 01:19:55 UTC 2006


Robert,

Thanks for pointing out those modules.  I can see the appeal of filemanager 
and it seems that a module like audio could have saved some trouble by using 
it.

In my thinking, its a great building block.  I'd like to see an even higher 
level model make its way into core.  There should be hooks at both the higher 
and lower levels so third party modules can control what's going on.

To give a concrete example: I want to make an ecommerce product out of an 
audio node.  I want to control download permission based on whether the user 
has purchased the node.  So my logic is a function of the node.  Now 
filemanager has an api to let modules control the download, but its so low 
level that it is not node aware.  So the filemanager_download hook does not 
include the node, and I could not use it for my logic.

So I consider attachment.module to fall into the same category as 
upload.module and audio.module.  Namely, candidates for implementing the APIs 
I described earlier.  (higher level, node aware APIs.  Filemanager would 
invoke it's hook before permitting the download, and attachment would invoke 
the hook I described.)

I have my own wishlist for Drupal file management 
<http://dave-cohen.com/node/1045>.  If I ever get around to implementing it, 
I'll likely use filemanager.module.

-Dave


On Tuesday 09 May 2006 03:56, Robert Douglass wrote:
> A fileapi hook was proposed nearly 2 years ago, much along the same
> lines. It was concluded, along the way, that the place for this is in
> the file.inc file or in some centralized upload manager. I agree.
>
> The filemanager[1] module has had the problem of access permissions
> solved for a very long time. It has a hook that lets modules impose
> their own access restrictions on downloads, and supports separate
> public/private download regions (it doesn't force you to choose between
> one or the other). Furthermore, the filemanager module only provides the
> API for uploading and downloading, not the user interface. The UI is
> provided by the attachment module [2]. Other modules (acidfree) have
> decided to use the filemanager module as their basis for dealing with
> uploads. I feel that it is close to what we want in core, and that
> building the proposed fileapi hook would be much easier if this were the
> case.
>
> If you're not familiar with the filemanager module, please review it.
> I'd be interested in hearing what criticisms exist. I'd be in favor of
> moving it to core.
>
> cheers,
>
> Robert
>
> [1] http://drupal.org/project/filemanager
> [2] http://drupal.org/node/10245
>


More information about the development mailing list