Hi Fred - did you get this worked out? I'm working on something similar, I think there is no way of doing it without some additional php - its going to involve some custom database queries to create a survey list applicable to a specific user for instance - Unless you pull it completely out of limesurvey which feels like it would be overkill for what should be a fairly simple modification to the the public SURVEYLIST.

Fred wrote: The surveys we want to keep each participant's information confidential and make it easy for them to see their survey "workflow," surveys they started and didn't yet finish, and surveys they previously submitted.

--> Handled by the LimeSurvey Sync Drupal module

Fred wrote: including new invitations,

Not done but easy to create.

Fred wrote: We would maintain our own tables of user accounts and survey history

--> Handled by the LimeSurvey Sync Drupal module

Fred wrote: build a small portal for panel participants to enter through.

Fred wrote: When a user logs into our system and elects to begin a survey a token would be issued through our application and written to the Limesurvey database. These tokens would have a short lifetime, so if the user needed to access the survey again later, they would return to our portal and be issued a new token and directed to the survey. The survey itself could be enclosed in an iframe

.--> Handled by the LimeSurvey Sync Drupal module
short lifetime --> 2hours by default.
survey itself could be enclosed in an iframe --> invisible iframe or a lighbox.
If the user edit its respond a new token is generated, and a copy of its previous answer is keeped (This is a new feature that not exists into LimeSurvey !). The submissions history is enhanced.

Fred wrote: It's possible we would start with something like Drupal or Wordpress or another CMS

Hello, we haven't finished everything but did a lot in the last year. I did take a look at the Drupal module when it first came out, but we were not using Drupal and we had a lot of unusual requirements beyond what was in my post.

Our route was to do a lot of custom PHP for everything limesurvey doesn't do, including participant logins, personalized reports, etc., but do no customization of the Limesurvey code itself so that we can continually upgrade. Our custom code just works against a limesurvey database with some extended tables. Participants are only routed in through our custom URLs and then sent on to Limesurvey or wherever. We also convert the question and response data into a new structure and aggregate the results into a mini-warehouse so we can look at all the surveys together in aggregation and reporting. The only thing we call from LS is the fieldmap function for conversion help. Limesurvey 2.0 has an API now so we might have done a few things differently if starting now.