i'll double the thanks on what andy said and then add some thanks to shawn for rolling this in to core.
regarding features, i can't be too specific but can generalize. questions always seem to popup surrounding:
1) anonymous versus private files and the need for things somewhere in between (i know that sounds like an oxymoron and probably impossible but that seems to be the case).
one issue that comes up and this might be an area where uc breaks from drupal and develops their own solution is the ability to have "real" digital file mgt the backend "by user" and or "product". Meaning that instead of just lumping all digital downloads into one single server directory in the filesystem, a permissions based system is enforced on subdirectories so that the digital downloads can be better organized on the backend. It also would allow for individual user files on a community site to be isolated from eachother. often drupal is either an all or nothing proposition. either all anonymous users have access to EVERY FILE or all LOGGED IN USERS Have access toe every body ELSES files. Not sure that statement is 100% accurate but i believe i've run into similar scenarios.
i think your uc role module will probably restrict some of the access to files even if all in the same directory but i'm not sure a directory based permission system wouldn't be more beneficial.
2) anything that implements this in a way that is secure as possible and discourages pilfering.
the biggest thing i see in this regard is a way to allow customers to sample the final product BEFORE purchase without giving away the entire goods. to my knowledge there are no real 100% proof ways to do this unless you own a streaming (and very expensive) server. and even that's not 100% because you can stream record in real time. However, i've seen a variety of discussions about disabling download caching via php and other php techniques, etc that help prevent local download caching, etc.
3) methods of access: either the ability to download locally versus accessing directly on a store website. again this is somewhat of an oxymoron in the sense that that anything you display in your browser is going to be "downloaded" to your cache. however, there *is* a difference between logging in to a site and being able to view content "on" the site (e.g. browsing it) versus gaining access to a link 1 or some limited amt of time and downloading the object "outright" to your local pc.
i think i've seen discussions where php is used to generate random number "ids" for direct site product access or download links that expire (much as the user roles you just developed). this means that after a purchase, the product link itself expires as well and could possibly generated and unique for each customer that purchases a digital product.
This might be overkill for "role based" purchases but it actually might help enforce some "limitation and security" on anonymous downloads. e.g. the sample download links automatically timeout and are always changing to prevent having them up all the time.
ok, i'm mostly shooting from the hip and some of the above could be wrong but i've done some surfing on this issue in the past and never got down to writing my own module. generally the two most common issues are "how do i prevent soemone from stealing my stuff" and "how can i manage the files on my server's file system optimally and then make them available in a useful and secure way via apache/php/mysql".
you asked for any input. so i gave it
.

Joined: 08/08/2007