I have already created a form for users to submit questions to a Q&A list. After the questions is submitted, I would like the admin to be able to view the question, provide an answer and published it (by selecting a yes/no option) only (But I don't want the users to be able to see it on this page). And then I would like to display the published items on another page (a web part page). I am not sure if and how I can let them create an items, but not modify/view it on one page while display the published items to them on another pages as I am new to SharePoint. May somebody advice how to do this?


There is a similar question SharePoint SE:

In standard permissions, Add is higher than Read so your solution cannot rely on the built-in forms (new, display, edit), unless you are willing to manipulate permissions for every list item.

You can though build your own form for adding list items. By restricting the access to the list you make it impossible to read existing items.

But users could still add list items through your custom form.

The actual adding of list items is achieved through elevation. Here you have two choices:

| improve this answer | |

In my opinion you can use unique permission for an item. In this scenario you can use a SharePoint list with your custom content type. All that you need is to set an event handler to add and update actions.

pros: you should not create custom forms.

cons: you have limitations for items with unique permissions.

| improve this answer | |

Well: If you're using separate pages for entering a question and showing questions and answers (instead of showing the list directly somehow), that's what I understood wou want to do: - just show a textarea with an insert databind in a DataView webpart on the "post your question here" page, and that's it. So there is no reason for SharePoint / the browser, to show anything else on this page and you can handle the user rights on a page-group basis as usual.


<asp:TextBox columns="60" runat="server" id="question{$Pos}" text="" TextMode="MultiLine" __designer:bind="{ddwrt:DataBind('i',concat('question',$Pos),'Text','TextChanged','','ID', 12.ddwrt:EscapeDelims(@ID), 13.'@question')}" />
| improve this answer | |

You can allow to view only items that were created by the user.

To set up this settings go to the List Settings -> Advanced Settings, set Read items that were created by the user in the Item-level Permissions section.

Can you restrict a list to add item only but not read?

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.