committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 219 additions and 18 deletions
-
1apps/admin_audit/composer/composer/autoload_classmap.php
-
1apps/admin_audit/composer/composer/autoload_static.php
-
75apps/admin_audit/lib/Actions/Security.php
-
16apps/admin_audit/lib/AppInfo/Application.php
-
75apps/admin_audit/tests/Actions/SecurityTest.php
-
43lib/private/Authentication/TwoFactorAuth/Manager.php
-
3lib/private/Server.php
-
6lib/public/Authentication/TwoFactorAuth/IProvider.php
-
1tests/enable_all.php
-
15tests/lib/Authentication/TwoFactorAuth/ManagerTest.php
-
1tests/phpunit-autotest.xml
@ -0,0 +1,75 @@ |
|||
<?php |
|||
declare(strict_types=1); |
|||
/** |
|||
* @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl> |
|||
* |
|||
* @author Roeland Jago Douma <roeland@famdouma.nl> |
|||
* |
|||
* @license GNU AGPL version 3 or any later version |
|||
* |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU Affero General Public License as |
|||
* published by the Free Software Foundation, either version 3 of the |
|||
* License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU Affero General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU Affero General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
* |
|||
*/ |
|||
|
|||
namespace OCA\AdminAudit\Actions; |
|||
use OCP\IUser; |
|||
|
|||
/** |
|||
* Class Sharing logs the sharing actions |
|||
* |
|||
* @package OCA\AdminAudit\Actions |
|||
*/ |
|||
class Security extends Action { |
|||
/** |
|||
* Log twofactor auth enabled |
|||
* |
|||
* @param IUser $user |
|||
* @param array $params |
|||
*/ |
|||
public function twofactorFailed(IUser $user, array $params) { |
|||
$params['uid'] = $user->getUID(); |
|||
$params['displayName'] = $user->getDisplayName(); |
|||
|
|||
$this->log( |
|||
'Failed two factor attempt by user %s (%s) with provider %s', |
|||
$params, |
|||
[ |
|||
'displayName', |
|||
'uid', |
|||
'provider', |
|||
] |
|||
); |
|||
} |
|||
|
|||
/** |
|||
* Logs unsharing of data |
|||
* |
|||
* @param IUser $user |
|||
* @param array $params |
|||
*/ |
|||
public function twofactorSuccess(IUser $user, array $params) { |
|||
$params['uid'] = $user->getUID(); |
|||
$params['displayName'] = $user->getDisplayName(); |
|||
|
|||
$this->log( |
|||
'Successful two factor attempt by user %s (%s) with provider %s', |
|||
$params, |
|||
[ |
|||
'displayName', |
|||
'uid', |
|||
'provider', |
|||
] |
|||
); |
|||
} |
|||
} |
@ -0,0 +1,75 @@ |
|||
<?php |
|||
declare(strict_types=1); |
|||
/** |
|||
* @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl> |
|||
* |
|||
* @author Roeland Jago Douma <roeland@famdouma.nl> |
|||
* |
|||
* @license GNU AGPL version 3 or any later version |
|||
* |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU Affero General Public License as |
|||
* published by the Free Software Foundation, either version 3 of the |
|||
* License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU Affero General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU Affero General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
* |
|||
*/ |
|||
|
|||
namespace OCA\AdminAudit\Tests\Actions; |
|||
|
|||
use OCA\AdminAudit\Actions\Security; |
|||
use OCP\ILogger; |
|||
use OCP\IUser; |
|||
use Test\TestCase; |
|||
|
|||
class SecurityTest extends TestCase { |
|||
/** @var ILogger|\PHPUnit_Framework_MockObject_MockObject */ |
|||
private $logger; |
|||
|
|||
/** @var Security */ |
|||
private $security; |
|||
|
|||
/** @var IUser|\PHPUnit_Framework_MockObject_MockObject */ |
|||
private $user; |
|||
|
|||
public function setUp() { |
|||
parent::setUp(); |
|||
|
|||
$this->logger = $this->createMock(ILogger::class); |
|||
$this->security = new Security($this->logger); |
|||
|
|||
$this->user = $this->createMock(IUser::class); |
|||
$this->user->method('getUID')->willReturn('myuid'); |
|||
$this->user->method('getDisplayName')->willReturn('mydisplayname'); |
|||
} |
|||
|
|||
public function testTwofactorFailed() { |
|||
$this->logger->expects($this->once()) |
|||
->method('info') |
|||
->with( |
|||
$this->equalTo('Failed two factor attempt by user mydisplayname (myuid) with provider myprovider'), |
|||
['app' => 'admin_audit'] |
|||
); |
|||
|
|||
$this->security->twofactorFailed($this->user, ['provider' => 'myprovider']); |
|||
} |
|||
|
|||
public function testTwofactorSuccess() { |
|||
$this->logger->expects($this->once()) |
|||
->method('info') |
|||
->with( |
|||
$this->equalTo('Successful two factor attempt by user mydisplayname (myuid) with provider myprovider'), |
|||
['app' => 'admin_audit'] |
|||
); |
|||
|
|||
$this->security->twofactorSuccess($this->user, ['provider' => 'myprovider']); |
|||
} |
|||
|
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue