I need to restrict items in a list so that only the person who the incident involves, and their manager are able to see the list item.
This is a compliance issue, so different views is not an option. How do I accomplish this?
You can break the inheritance of the list, and set the users with a custom permission created by PowerShell with "Submit only" permissions.
$spweb=Get-SPWeb -Identity "<site url>"; $spRoleDefinition = New-Object Microsoft.SharePoint.SPRoleDefinition; $spRoleDefinition.Name = "Submit only"; $spRoleDefinition.Description = "Can submit/add forms/files/items into library or list but cannot view/edit them."; $spRoleDefinition.BasePermissions = "AddListItems, ViewPages, ViewFormPages, Open"; $spweb.RoleDefinitions.Add($spRoleDefinition); $spweb.Dispose();
After, you create an workflow that set new permissions with read or edit only for the person and manager with "Impersonation Step".
Publish the workflow with the option "Start tworkflow automatically when an item is created".
Hope this help!
Have you considered a SharePoint Designer Workflow? You will have to do a SharePoint Designer 2010 workflow since the 2013 version does not allow Impersonation Steps. On List Item Creation (and possibly on change), I would Add the appropriate permissions. It would look something like this:
In 2013 you can do it manually.
To manage the item level permissions, follow these steps:
I know you said views are not an option, but a fairly simple way to do it would be to create a view with a filter of [Me] on your Person or Manager field and then just take out the title URL on the list heading. Of course, they could still navigate to the list by typing in the URL manually.. but they would have to know the list name which you could hide and name the list whatever you'd like almost as a 'password'.
You can also break inheritance on a list or list items specifically and manage it that way.