Source of file AuditHookManyManyList.php
Size: 1,512 Bytes - Last Modified: 2021-12-23T10:28:01+00:00
/var/www/docs.ssmods.com/process/src/code/AuditHookManyManyList.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | <?php namespace SilverStripe\Auditor; use SilverStripe\Core\Injector\Injector; use SilverStripe\ORM\ManyManyList; use SilverStripe\Security\Group; use SilverStripe\Security\Member; use SilverStripe\Security\Security; class AuditHookManyManyList extends ManyManyList { /** * Overload {@link ManyManyList::removeByID()} so we can log * when a Member is removed from a Group. */ public function removeByID($itemID) { parent::removeByID($itemID); if ($this->getJoinTable() == 'Group_Members') { $currentMember = Security::getCurrentUser(); if (!($currentMember && $currentMember->exists())) { return; } $member = Member::get()->byId($itemID); $group = Group::get()->byId($this->getForeignID()); if (!$group) { return; } if (!$member) { return; } $this->getAuditLogger()->info(sprintf( '"%s" (ID: %s) removed Member "%s" (ID: %s) from Group "%s" (ID: %s)', $currentMember->Email ?: $currentMember->Title, $currentMember->ID, $member->Email ?: $member->Title, $member->ID, $group->Title, $group->ID )); } } protected function getAuditLogger() { // See note on AuditHook::getAuditLogger return Injector::inst()->get('AuditLogger'); } } |