Private access to a form filled out by Visitors
Hello,
Drupal is a great CMS, the CMS and this community has helped me with a number of projects. I have a new project and would like to use Drupal but I'm not sure which modules I would need to achieve the functionality I desire.
Here is a basic description of what I will be doing;
- Setting up a basic website - no problem here
- Creating a custom "damage assessment" assessment form which users will fill out, the form will get emailed to the site owners and stored in the database - I would use CCK to create this form, this is pretty basic.
- How can I make the form automatically become associated with the user that fills it out? How do I keep the form private so users can only view their own submitted forms? Users may have more than one form.
- Simply use comments and the site owners can log in and post a comment of the status in the users private "assessment" node. Or, is there a way to utilize a private CCK field that could be updated by the site owners and not editable by the visitors / form owner?
Now this is where I'm unclear as to what modules I would need:
Then I want to have a "status" associated with the form so users can log in to check the status of their "assessment" I've thought of a couple of ways to do this:
To summarize, I want to create a site where users can sign up, fill out a "damage assessment" form which is then associated with the user and kept private for that user and the "site owners" to access. I want to allow the site owners to manage these private forms by setting a "status" to the form so the user can log in and see if the assessment is complete / in process etc.
In the long run I would like to allow the site owners to post other data (pictures, pdf diagrams) and keep this data private and associated with the individual forms / "assessment".
The data is not "critical data" but I am considering getting an SSL cert, are there any complications utilizing SSL with drupal?
I have used the "ACL" module with "Content access" these do allow me to make private user pages but I want something which automatically associates a filled out form with a user and keeps it private. My experience with ACL /content access makes them seem a bit tedious. I had to "grant access" for each user. It would be ideal to have the filled out form node kept private automatically.
I'm probably going to be using drupal 5.x for this project.
Anyone have experience developing a project with functionality like this? Any suggested modules or best practices?
Thank you.

you could do this with d6, though think cck not 'form'
based on what you're after, i'd suggest the following (with a lotta notes/detail/mechanics removed to make it easy to follow)
create a custom content type called "damage assessment" (or whatever)
use cck to add whatever you want to this (image fields, custom selectables for "status" [in progress, resolved etc)
make this content type a "content profile" with 'content profile module'
--allow comments on this content type
go to user permissions and do not allow users to view other user profiles (or alternatively, do not allow them to view this content type within profiles using assorted nodeprivacy modules)
use notifications for admin purposes - allow only admins (yourself) to subscribe to posts of type damage assessment (aka 'content profile') - this will let you be notified of submissions, changes, edits etc from user side (including comments et al)
that's the basic idea - now when a user logs in, he/she will generally default to 'user profile' which is really the current state of the damage and can immediately review any updated status (as in, you edited and changed selectable field to something new) and comment/reply to additional notes/fields
there's quite a bit more that you could do here, this is really rough and dirty - and not sure that content profile makes the most sense, probably an alternate content type if there's also a community around this site where uses connect with one another...
BUT using things like cck, node privacy, notifications, etc you can build this "stored content type specific to the user only" replete with status changes, discussion and so on...all around the unique node and user...
........................................................................
i love to waste time: http://twitter.com/passingnotes
I think you might find the
I think you might find the Webform module to be so handy for your purposes.
Install a test site and give this a whirl:
http://drupal.org/project/webform
You would probably make some kind of relationship between the Webform filled out, and a custom content type with CCK. Then you can use views to "track" the status.
Mind you, Webform output is not available to Views. But Webform had it's own output.
I shall say no more, go and give it a try, i think you'll like it!
was thinking webform, but...
i was thinking the same thing, but it's designed for one-way and it sounds like this site needs user interaction around the node itself, in which case a new content type may offer more flexibility and design options (both function and notifications related)
...but maybe views querying the webform tables? would be cool, but sounds like a huge feature request for the webform folks ;)
........................................................................
i love to waste time: http://twitter.com/passingnotes
that's why i think the combo
that's why i think the combo of web form & cck.
but the original poster has to give it a whirl first.
i hear you...or even project module
was thinking also about an entire trac like system but simplified and more user friendly like projects on drupal with granular controls and access..
........................................................................
i love to waste time: http://twitter.com/passingnotes
Oh yeah! That would be cool.
Oh yeah! That would be cool. The tracking system would be the bizz.
also could repurpose this new privacy module
looks quite promising - including a password or 'designated users allowed' option to manage 'groups'
http://drupal.org/project/photos_access (works for any content type, not just photos!! he needs to rename this module ;)
........................................................................
i love to waste time: http://twitter.com/passingnotes
Excellent suggestions
Thanks for the module suggestions I'm working with the content profile module and CCK on my demo drupal6 site. The photos access module looks useful as well.
Content profile is nice, I setup my content type, made it a content profile type and was able to setup a new user account and create a damage assessment from the "my account" / "user page" "Create your damage assessment" link which is what I'm looking for. It works well for associating content with a user.
Now I'm trying to make the "damage assessment" private to the owner and admin only without requiring the user to tick a checkbox to make it private. I've been searching and it seems this functionality is still a sore spot with drupal. There are plenty of modules to restrict access based on role. Or modules that allow you to restrict access individually / manually per node. I haven't seen any modules that automatically restrict access to the node author and admins. I've been tempted to try to mesh drupal with something like Project Pier (it's *like* an open source basecamp) which has the user access granularity I need and it seems many others need this too.
Saying that, I have not yet tried the 'projects' module for durpal, I will look into it. I was searching for something like "private projects" but don't believe there is such a thing.
I did consider using webform, this would be great for the "phase 1" part of the site which would allow visitors to simply submit an 'assessment request' I don't know of a way to pull the data out of the webform results and present it in a node which could be made private. I'll have play around with it and see how/if it can be integrated with CCK and views to track the status.
Thanks for the comments, they have helped get me going in the right direction.
photos_access
I checked out this module, applied it to my content type and it is neat but it requires the user / client to configure the access which won't work for my situation.
I did just find the nodeaccess module and this may work by setting a default permission for my damage assessment content type permitting author view access and all other access is denied except for admins.
just an update
Nodeaccess appears to do what I need exactly. By setting up the default permissions for my desired content type it allows only the author and admin view access automatically. Very nice module.
I decided to do away with the content profile module, it appeared to only allow the user to create one 'damage assessment'. So I will just allow users to create damage assessments and use views to show all the assessments created by the current user.
Again, thanks for the comments!