Update | 02-03-18
Basic Pagination working
NOTE:
I am using Custom Settings of the Hierachy Type to handle the permission toggling
If you'd like to use the code, you'll need to create a Custom Setting named BetterNotesAttachmentsSettings of the Hierachy Type, and create the following "fields" under that. You can certainly use your own Custom Setting name, but be sure to adjust the code accordingly.
Note-specific Custom Setting fields
-Insert_Note__c
-Update_Note__c
-Delete_Note__c
Attachment-specific Custom Setting fields
-Insert_Attachment__c
-Update_Attachment__c
-Delete_Attachment__c
Goals:
Small project to create granular Note & Attachment Permissioning tools.
Unmanaged Package for easy install and no-fuss setup
Intuitive Permission Management for Notes and Attachments
Triggers to prevent certain operations on Notes and Attachments depending on a Profile/User's ID and the user's selected Permission level
e.g. Insert, Update, Deletion permissions correspond with the relevant Trigger on-fire actions
How It Will Work:
The information below is how I intend for the completed code to function. It is currently a work in Progress and not 100% functional, so this information is not specific to what has been completed.
Users without a Custom Setting entry for their Profile or User will default to No Permissions (overriding the profile/permission set profiles, so don't worry about people getting access when they shouldn't - the triggers will override their profile permissions).
You only need to add the User Record OR User Profile to the Custom Setting Hierarchy. If you add both to the Custom Settings, the User Custom Setting entry will override the Profile entry if a user has both - this is good if you want to give a specific user more access than their profile allows without giving access to the others sharing that profile