Building a download area with users and groups taken from an external database [closed] Building a download area with users and groups taken from an external database [closed] database database

Building a download area with users and groups taken from an external database [closed]


so... to make thinks clear, you need:

  1. Free and Open Source System
  2. Download Area (upload and download)
  3. User Roles
  4. Make use of external DB
  5. to have some sort of automated process to use the user data in the external DB

I those would be the main points (If I missed any, please add them as comments to update this answer)

  1. I would go with Drupal http://drupal.org
  2. In drupal you can create custom content types and set the system up to almost whatever you want. In this case I would recommend you to use the following modules:

  3. User Roles can be managed with the built-in options plus per field permissions (available with the content module). You can assign as many roles to an user as you want

  4. Using the User Import module you can import users in many ways, but it isn't that automated. You will have to export your user db as CSV and then import it into drupal. The modules then allows you to map the fields.

  5. You may automate the complete process by using cron or replacing the User import module with the instructions found in http://island.byu.edu/drupal/content/drupal-6-external-database-authentication-roles

The steps should be:

  1. Install drupal 6 (mysql+php) [you may also go with drupal 7 but right now there are more tutorials and module sfor drupal 6, as d7 just went out, and the user import module is still not available for d7]
  2. Enable the modules I recommended
  3. Create a new content type (ex. File) and add a filetype field
  4. Create a taxonomy vocabulary to create "categories" for the files and assign it to the "Files" content type
  5. Create some roles (ex. editor, owner, read-only and so on) and assign different permissions depending of what you want each role to do
  6. go to the User import module and import your user db (you can also update the existing users) and map the fields (the important ones are username, password, roles) to the fields in your csv file
  7. create some views to show the content (files) like you want (for example, by category), by role, etc...

I think those are the basic steps to have a working download area like the one you want. Of course you may customize it as much as you like (that's the power of drupal) by adding more modules ( http://drupalmodules.com/ is a really good place to start )

Once you have the basics working you can start playing with panels http://drupal.org/project/ to customize the layout of the entire site and check some of the themes in http://drupal.org/project/Themes to change the look&feel of your site (you can also go with pure css)

I hope it helps. If you want to add another feature to this solution or something isn't clear enough please let me know.

Cheers!


Apache Lenya could work. You'd have to write your own authentication mechanism and group management code to sync over the users from the DB. Any product is going to give you difficulty going against a proprietary DB. If you were able to put the user and group data into a directory, say LDAP, your problem becomes a lot easier.


Joomla! with DOCman component: permissions can be granted only to 1 user or 1 group

This should actually work for you. You can create a single group for the file you want to manage and add/remove people to that group as they gain/lose access to the file.