|
10 | 10 | use SilverStripe\Security\Member;
|
11 | 11 | use SilverStripe\Security\Security;
|
12 | 12 | use SilverStripe\Security\SecurityToken;
|
13 |
| -use SilverStripe\SessionManager\Control\LoginSessionController; |
| 13 | +use SilverStripe\SessionManager\Controllers\LoginSessionController; |
14 | 14 | use SilverStripe\SessionManager\Models\LoginSession;
|
15 | 15 |
|
16 | 16 | class AuditHookSessionManagerTest extends SapphireTest
|
@@ -38,27 +38,29 @@ public function testOnBeforeRemoveLoginSession()
|
38 | 38 | {
|
39 | 39 | $this->logInWithPermission('ADMIN');
|
40 | 40 |
|
41 |
| - $currentUser = Security::getCurrentUser(); |
42 |
| - |
43 | 41 | $member = new Member(array('FirstName' => 'Joe', 'Email' => 'joe3'));
|
44 | 42 | $member->write();
|
45 | 43 | $request = Controller::curr()->getRequest();
|
46 | 44 | $loginSession = LoginSession::generate($member, false, $request);
|
47 | 45 |
|
| 46 | + // Only the current user is able to remove their login session, not even admin can do it |
| 47 | + Security::setCurrentUser($member); |
| 48 | + |
48 | 49 | SecurityToken::disable();
|
49 | 50 | $mockRequest = new HTTPRequest('DELETE', '');
|
50 | 51 | $mockRequest->setRouteParams(['ID' => $loginSession->ID]);
|
51 | 52 | $controller = new LoginSessionController();
|
52 |
| - $controller->removeLoginSession($mockRequest); |
| 53 | + $controller->remove($mockRequest); |
53 | 54 |
|
54 | 55 | $message = sprintf(
|
55 | 56 | 'Login session (ID: %s) for Member "%s" (ID: %s) is being removed by Member "%s" (ID: %s)',
|
56 | 57 | $loginSession->ID,
|
57 | 58 | $member->Email,
|
58 | 59 | $member->ID,
|
59 |
| - $currentUser->Email, |
60 |
| - $currentUser->ID |
| 60 | + $member->Email, |
| 61 | + $member->ID |
61 | 62 | );
|
62 |
| - $this->assertContains($message, $this->writer->getLastMessage()); |
| 63 | + |
| 64 | + $this->assertStringContainsString($message, $this->writer->getLastMessage()); |
63 | 65 | }
|
64 | 66 | }
|
0 commit comments