2

I know it's possible to create a custom permission 'Contribute without delete' which doesn't allow users to delete any documents within a library (or edit a document title if there's no check out/in on the library). Is there any permission level that would allow users to delete their own document/s but not others?

  • Do you still need users to be able to EDIT other peoples' documents? – Submits Nov 13 '15 at 16:13
  • If you are a big fan of manual labor, just create a document library with a personal folder for each and every employee where everyone has read permissions, but also contribute (add/delete) in their personal folder. – Christoffer Nov 13 '15 at 16:20
2

Item Level Permissions can be set on LISTs (List Settings -> Advanced Settings)

(see: Differences between Item Level Permissions and Item Level Security?)

As SharePoint is primarily used as a DMS and setting this on (large) Document Libraries can cause performance issues it was most likely removed from the UI.

Using PowerShell you can set this on Document Libraries also:

$spList.ReadSecurity=2 
# 1=read all items
# 2=read items created by user

$spList.WriteSecurity=4 
# 1=Create and edit All items
# 2=Create items and edit items that were created by the user
# 4=None

$spList.Update()
  • Thank you Danny, I was aware that there was an option on lists and not on libraries. I'll use the Powershell above on our test site. – Haz Nov 17 '15 at 9:21
  • Does it work as expected? – Alexey Krasheninnikov Mar 16 '16 at 11:47
1

There is no permission level available to allow users to delete there own documents only.

You can restrict users from deleting other users documents by either ItemDeleting event receiver or using custom permission Contribute without delete and then using combination of custom action and workflow to delete own document. The Steps are as below:

  1. Create a document library
  2. Create a permission level without delete option
  3. Assign this newly created permission for all users.
  4. Now create a workflow which will check the initiator of the workflow is same as owner then delete the document. To delete the document you will need to use Impersonation step as initiator will not have delete rights.
  5. Once workflow is created, use designer to create custom action of "List Item menu" and start a workflow using that custom action.
  6. To get the initiator of the workflow, please refer this link. the workflow initiator variable is available OOTB in SharePoint Designer.
  7. Start a workflow on item delete

Below are the examples links

Event receiver: How to restrict user from deleting\editing documents if user is not author of that document

Custom Action and Workflow: "Only Their Own" Sharepoint Online Repository

  • Thanks, I'll give this a test on our test site, I can then decide whether to use Powershell or a workflow. – Haz Nov 17 '15 at 9:27
0

You need to create custom permissions 'Contribute-NoDelete" Let this permission be default for the list. Stop inheriting any other permissions to list. Create a SharePoint Designer workflow. Creating this workflow will update the item permissions of item once created. Make workflow run only on "Create".

Steps:

  1. Create SharePoint Designer workflow.
  2. Add impersonation Step
  3. Select and add "Add List Item Permissions" action
  4. Click Add Select the permissions Edit/contribute permissions, then click browse, and select "User who created current item". Click Add, Click Ok.

In workflow setting mark it to on Item create. Save and publish the workflow.

Only creator(Author) of item will be able to delete the item.

  • Am I correct in believing that Impersonation step has been removed in 2013 workflows? I noticed they were still available in 2010 workflows. – Haz Nov 17 '15 at 9:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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