Is it possible to restrict a Custom Action for a list so that only Admins (they will have the ApproveItems permission) and the item author can run it via the Rights Mask field?
Background
I have a calendar that any user can create items, it is set via the Advanced settings on the list that only the user who created an item can edit an item. Admins will then approve/reject this via a workflow and task.
However, I only want admins or the author to be able to delete an event but I wish to capture a reason for the deletion. To achieve this, the idea was to prevent deletions and have a custom action that will start a workflow.
This workflow has an initiation parameter (free text multi line) that enables the cancelling user to enter a reason for the cancellation, the workflow will then email all admins and the event author with the reason for cancellation. The workflow will then delete the item (within an impersonation step). This workflow works fine also.
The issue is restricting the custom action so that only the admins and the event author can run it or see it. Any suggestions or different approaches to achieve this goal?
Currently, I am trying to achieve this through SharePoint Designer however I am happy to use Visual Studio if that provides the solution...
Thanks in advance