Skip to content

Commit 5a3451d

Browse files
authored
Merge pull request #28 from pixelpoems/master
SS6 Update
2 parents 73612f1 + 628862a commit 5a3451d

File tree

8 files changed

+42
-29
lines changed

8 files changed

+42
-29
lines changed

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
"description": "SilverStripe module to allow you to masquerade as other users",
44
"type": "silverstripe-vendormodule",
55
"require": {
6-
"silverstripe/framework": "^5"
6+
"silverstripe/framework": "^6"
77
},
88
"require-dev": {
99
"phpunit/phpunit": "*",
10-
"squizlabs/php_codesniffer": "^3.7"
10+
"squizlabs/php_codesniffer": "*"
1111
},
1212
"config": {
1313
"allow-plugins": {

src/Control/MasqueradeMiddleware.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?php
22

3+
declare(strict_types=1);
4+
35
namespace DHensby\SilverStripeMasquerade\Control;
46

57
use SilverStripe\Control\HTTPRequest;

src/Extensions/LogoutHandlerExtension.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?php
22

3+
declare(strict_types=1);
4+
35
namespace DHensby\SilverStripeMasquerade\Extensions;
46

57
use SilverStripe\Control\Controller;
@@ -11,10 +13,10 @@
1113

1214
class LogoutHandlerExtension extends Extension
1315
{
14-
public function beforeLogout()
16+
public function beforeLogout(): void
1517
{
1618
/** @var HTTPRequest $request */
17-
$request = $this->owner->getRequest();
19+
$request = $this->getOwner()->getRequest();
1820
$session = $request->getSession();
1921

2022
// If we're currently masquerading, we only want to stop masquerading, not *actually* log out
@@ -34,19 +36,19 @@ public function beforeLogout()
3436
*/
3537
protected function redirectAfterLogout()
3638
{
37-
$backURL = $this->owner->getBackURL();
39+
$backURL = $this->getOwner()->getBackURL();
3840
if ($backURL) {
39-
return $this->owner->redirect($backURL);
41+
return $this->getOwner()->redirect($backURL);
4042
}
4143

4244
$link = Security::config()->get('login_url');
43-
$referer = $this->owner->getReturnReferer();
45+
$referer = $this->getOwner()->getReturnReferer();
4446
if ($referer) {
4547
$link = Controller::join_links($link, '?' . http_build_query([
4648
'BackURL' => Director::makeRelative($referer)
4749
]));
4850
}
4951

50-
return $this->owner->redirect($link);
52+
return $this->getOwner()->redirect($link);
5153
}
5254
}

src/Extensions/MemberExtension.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
<?php
22

3+
declare(strict_types=1);
4+
35
namespace DHensby\SilverStripeMasquerade\Extensions;
46

5-
use SilverStripe\ORM\DataExtension;
7+
use SilverStripe\Core\Extension;
68
use SilverStripe\Security\Member;
79
use SilverStripe\Security\Permission;
810
use SilverStripe\Security\Security;
911

10-
class MemberExtension extends DataExtension
12+
class MemberExtension extends Extension
1113
{
1214
/**
1315
* @param mixed $member

src/Extensions/SecurityAdminExtension.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?php
22

3+
declare(strict_types=1);
4+
35
namespace DHensby\SilverStripeMasquerade\Extensions;
46

57
use DHensby\SilverStripeMasquerade\Forms\GridField\GridFieldMasqueradeButton;
@@ -9,13 +11,14 @@
911

1012
class SecurityAdminExtension extends Extension
1113
{
12-
public function updateEditForm(Form $form)
14+
public function updateEditForm(Form $form): void
1315
{
1416
/** @var GridField $gridField */
1517
$gridField = $form->Fields()->dataFieldByName('users');
1618
if (!$gridField) {
1719
return;
1820
}
21+
1922
$gridField->getConfig()
2023
->addComponent(new GridFieldMasqueradeButton());
2124
}

src/Forms/GridField/GridFieldMasqueradeButton.php

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
<?php
22

3+
declare(strict_types=1);
4+
35
namespace DHensby\SilverStripeMasquerade\Forms\GridField;
46

7+
use SilverStripe\Model\ArrayData;
8+
use SilverStripe\Core\Validation\ValidationException;
59
use SilverStripe\Control\Controller;
610
use SilverStripe\Control\Director;
711
use SilverStripe\Control\HTTPRequest;
@@ -13,9 +17,7 @@
1317
use SilverStripe\Forms\GridField\GridField_URLHandler;
1418
use SilverStripe\ORM\DataObject;
1519
use SilverStripe\ORM\FieldType\DBHTMLText;
16-
use SilverStripe\ORM\ValidationException;
1720
use SilverStripe\Security\Member;
18-
use SilverStripe\View\ArrayData;
1921
use SilverStripe\View\SSViewer;
2022

2123
class GridFieldMasqueradeButton implements GridField_ColumnProvider, GridField_ActionMenuLink, GridField_URLHandler
@@ -29,7 +31,7 @@ public function getTitle($gridField, $record, $columnName)
2931
* @param GridField $gridField
3032
* @param array $columns
3133
*/
32-
public function augmentColumns($gridField, &$columns)
34+
public function augmentColumns($gridField, &$columns): void
3335
{
3436
if (!in_array('Actions', $columns)) {
3537
$columns[] = 'Actions';
@@ -61,6 +63,7 @@ public function getColumnMetadata($gridField, $columnName)
6163
if ($columnName == 'Actions') {
6264
return ['title' => ''];
6365
}
66+
6467
return [];
6568
}
6669

@@ -79,9 +82,8 @@ public function getColumnsHandled($gridField)
7982
* Which GridField actions are this component handling.
8083
*
8184
* @param $gridField
82-
* @return array
8385
*/
84-
public function getActions($gridField)
86+
public function getActions($gridField): array
8587
{
8688
return ['masquerade'];
8789
}
@@ -110,7 +112,7 @@ protected function getMasqueradeAction($gridField, $record, $columnName)
110112
return null;
111113
}
112114

113-
$data = new ArrayData([
115+
$data = ArrayData::create([
114116
'Link' => $this->getUrl($gridField, $record, $columnName),
115117
'ExtraClass' => 'grid-field__icon-action--hidden-on-hover font-icon-eye btn--icon-large action-menu--handled'
116118
]);
@@ -132,18 +134,16 @@ public function getGroup($gridField, $record, $columnName)
132134
return $action ? GridField_ActionMenuItem::DEFAULT_GROUP: null;
133135
}
134136

135-
public function handleMasquerade(GridField $gridField, HTTPRequest $request)
137+
public function handleMasquerade(GridField $gridField, HTTPRequest $request): ?HTTPResponse
136138
{
137139
/** @var DataObject $item */
138140
$item = $gridField->getList()->byID($request->param('ID'));
139141
if (!$item) {
140-
return;
142+
return null;
141143
}
142144

143145
if (!$item->canMasquerade()) {
144-
throw new ValidationException(
145-
_t(__CLASS__ . '.MasqueradePermissionsFailure', 'No masquerade permissions')
146-
);
146+
throw ValidationException::create(_t(__CLASS__ . '.MasqueradePermissionsFailure', 'No masquerade permissions'));
147147
}
148148

149149
if (Member::config()->get('session_regenerate_id') && !Director::is_cli() && !headers_sent()) {
@@ -152,7 +152,7 @@ public function handleMasquerade(GridField $gridField, HTTPRequest $request)
152152

153153
$request->getSession()->set('masqueradingAs', $item->ID);
154154

155-
$response = new HTTPResponse();
155+
$response = HTTPResponse::create();
156156
$response->addHeader('X-Reload', true);
157157
$response->addHeader('X-ControllerURL', Director::absoluteBaseURL());
158158
return $response;

tests/MasqueradeMemberTest.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
<?php
22

3+
declare(strict_types=1);
4+
35
namespace DHensby\SilverStripeMasquerade\Test;
46

57
use SilverStripe\Dev\FunctionalTest;
68
use SilverStripe\Security\Member;
79
use SilverStripe\Security\Security;
810

9-
class MasqueradeMemberTest extends FunctionalTest
11+
final class MasqueradeMemberTest extends FunctionalTest
1012
{
1113

1214
protected static $fixture_file = 'MasqueradeMemberTest.yml';
1315

14-
public function testCanMasquerade()
16+
public function testCanMasquerade(): void
1517
{
1618
$this->logInWithPermission('ADMIN');
1719
$admin = Security::getCurrentUser();
@@ -26,7 +28,7 @@ public function testCanMasquerade()
2628
//admin can't masquerade as themselves
2729
$this->assertFalse($admin->canMasquerade());
2830

29-
Security::setCurrentUser(null);
31+
Security::setCurrentUser();
3032

3133
// no logged in user can't masquerade
3234
$this->assertFalse($member->canMasquerade());
@@ -45,7 +47,7 @@ public function testCanMasquerade()
4547
$this->assertFalse($admin->canMasquerade());
4648
}
4749

48-
public function testMasquerade()
50+
public function testMasquerade(): void
4951
{
5052
$this->logInWithPermission('ADMIN');
5153
$admin = Security::getCurrentUser();

tests/MasqueradeSecurityControllerTest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
<?php
22

3+
declare(strict_types=1);
4+
35
namespace DHensby\SilverStripeMasquerade\Test;
46

57
use SilverStripe\Control\Director;
68
use SilverStripe\Security\Member;
79
use SilverStripe\Dev\FunctionalTest;
810
use SilverStripe\Security\Security;
911

10-
class MasqueradeSecurityControllerTest extends FunctionalTest
12+
final class MasqueradeSecurityControllerTest extends FunctionalTest
1113
{
1214

1315
protected static $fixture_file = 'MasqueradeMemberTest.yml';
1416

15-
public function testLogout()
17+
public function testLogout(): void
1618
{
1719
$this->markTestSkipped('not currently working');
1820

0 commit comments

Comments
 (0)