I want to implement a business scenario for our custom list inside sharepoint enterprise server 2013, to manage our project management projects. The business scenario is as follow:-
- Contributor users can create a new Project item.
- Automatically certain users inside a security group named “Senior Managers” will get notified by email.
- “Senior Managers” can review the item, and then modify it.
- If they are satisfied with the project item they can change a custom column named “Approved by Senior Managers” to true.
- Once the item is being “Approved by Senior Managers”, the Technical Team leader for the item creator will get notified and he can start working on the project.
- The Technical Team leader for the item creator will be dynamically retrieved from our active directory.
- Once the project is closed the Technical Team leader can close the item, by changing its status to closed.
Now we want to have a certain level of custom authorization rules as follow:-
Once the item is “Approved by Senior Managers” the original Contributor and other contributors should not be able to modify the item.
The Technical Team leader should not be able to modify the item until it is set to “Approved by Senior Managers”.
Now I did not implement any complex business scenarios using workflow, where I only uses workflow to update some list items and send emails when items are created or edited…
So for the above scenario, I find this approach to implement it using Event Receivers:-
- Create a new custom list named “Projects”.
- Create 3 security groups; Project Contributors + Senior Managers + Technical Team leader (this should include all our technical team leaders. such as the network team lead, the software team lead, the user support team lead, etc..).
- Grant these 3 groups edit permission on the list.
This will allow all users to edit/create list items at any stage. And to control this , I can create an event receiver when the project item is being updated, the event receiver will do the following:-
- Prevent Project Contributors from editing an item if it has been “Approved by Senior managers”.
- Prevent Technical Team leader from modifying a project item until it has been “Approved by senior Manager”.
- Also implement sending notification emails.
- And also notify the item creator’s team leader. Where I will be querying our active directory to get the team leader for the user who created the project item.
Now I am note sure if using Event Receivers is the way to go for? Or my business scenario is better to be implemented using workflow 2010 or 2013 and why ?? Regards