Skip to content

Commit 715b8a5

Browse files
committed
FIX Add logging for permission role codes
1 parent 9c5fc08 commit 715b8a5

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

code/AuditHook.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use SilverStripe\Security\Group;
1313
use SilverStripe\Security\Member;
1414
use SilverStripe\Security\PermissionRole;
15+
use SilverStripe\Security\PermissionRoleCode;
1516
use SilverStripe\Security\Security;
1617

1718
/**
@@ -95,6 +96,7 @@ public static function handle_manipulation($manipulation)
9596
$schema->tableName(Member::class),
9697
$schema->tableName(Group::class),
9798
$schema->tableName(PermissionRole::class),
99+
$schema->tableName(PermissionRoleCode::class),
98100
];
99101

100102
foreach ($manipulation as $table => $details) {
@@ -128,6 +130,12 @@ public static function handle_manipulation($manipulation)
128130
implode($data->Codes()->column('Code'), ', ')
129131
);
130132
}
133+
if ($table === $schema->tableName(PermissionRoleCode::class)) {
134+
$extendedText = sprintf(
135+
'Effective code: %s',
136+
$data->Code
137+
);
138+
}
131139
if ($table === $schema->tableName(Member::class)) {
132140
$extendedText = sprintf(
133141
'Effective groups: %s',

tests/AuditHookTest.php

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,21 @@
33
namespace SilverStripe\Auditor\Tests;
44

55
use Page;
6-
use Silverstripe\Auditor\AuditHook;
76
use SilverStripe\Auditor\Tests\AuditHookTest\Logger;
87
use SilverStripe\Core\Injector\Injector;
98
use SilverStripe\Dev\FunctionalTest;
109
use SilverStripe\Security\Group;
1110
use SilverStripe\Security\Member;
11+
use SilverStripe\Security\PermissionRole;
12+
use SilverStripe\Security\PermissionRoleCode;
1213

1314
class AuditHookTest extends FunctionalTest
1415
{
1516
protected $usesDatabase = true;
1617

18+
/**
19+
* @var Logger
20+
*/
1721
protected $writer = null;
1822

1923
protected function setUp()
@@ -159,6 +163,22 @@ public function testRemoveMemberFromGroupUsingMemberGroupsRelation()
159163
$this->assertContains('from Group "My group"', $message);
160164
}
161165

166+
public function testAddRoleCodeToRole()
167+
{
168+
$this->logInWithPermission('ADMIN');
169+
170+
$roleCode = new PermissionRoleCode(['Code' => 'grand_ruler']);
171+
$roleCode->write();
172+
173+
$permissionRole = new PermissionRole(['Title' => 'Grand Ruler']);
174+
$permissionRole->Codes()->add($roleCode);
175+
$permissionRole->write();
176+
177+
$message = $this->writer->getLastMessage();
178+
$this->assertContains('Effective code', $message);
179+
$this->assertContains('grand_ruler', $message);
180+
}
181+
162182
public function testAddViewerGroupToPage()
163183
{
164184
if (!class_exists(Page::class)) {

0 commit comments

Comments
 (0)