What is the best solution for such requirements?

* Allow users to add items to list from custom webpart
* Prevent same grp of users to view/edit items directly from list
* I cannot use elevated privilege to add items from webpart as when a new item is added i will need to trigger workflows.

We are preventing users from editing the list directly as they are only allowed to enter data through a custom webpart. This is to secure integrity of data. These data once submitted should not be touched. This data will be run through a list of workflows for approval. 

Thanks in advanced!