I'd like to record permission changes on pages. I already found this https://jira.atlassian.com/browse/CONFSERVER-19721 but figured I might be able to implement something myself with the help of the Scriptrunner Addon.
I created a custom Event which listens to the ContentPermissionEvent being fired. Generally speaking it would be enough to log something to console stating how a permission was changed. I also found out that the confluence database keeps the set of page permissions, whereas no entry means "full permissions and EDIT/VIEW are written according to what I configured.
The following shows the script that I got so far.
// create Loglistener
def log = Logger.getLogger("com.company.CustomContentPermissionEventListener")
def event = event as ContentPermissionEvent
def contentid = event.content.idAsString
def contentPermission = event.contentPermission
//group our user
permissionString = "Group: " + contentPermission.groupName
permissionString = "User: " + contentPermission.userName
permissionString = permissionString + ", Type: " + contentPermission.type
// Log data from Event
log.info("PermissionEvent registered for PageId " + contentid + ", details: " + permissionString)
Apparently the event seems to be not smart enough to tell adding and removing permissions apart. In both cases the log entry is the same. Is there a way to tell them apart?
Thanks allot for any pointers.