瀏覽代碼

add check isFairUseOfFreePushService on login

Signed-off-by: Vitor Mattos <vitor@php.rio>
tags/v23.0.0beta2
Vitor Mattos 2 年之前
父節點
當前提交
d613b32045
沒有連結到貢獻者的電子郵件帳戶。
共有 2 個檔案被更改,包括 42 行新增8 行删除
  1. 17
    1
      core/Controller/LoginController.php
  2. 25
    7
      tests/Core/Controller/LoginControllerTest.php

+ 17
- 1
core/Controller/LoginController.php 查看文件

@@ -46,6 +46,7 @@ use OCP\AppFramework\Http\TemplateResponse;
use OCP\Defaults;
use OCP\IConfig;
use OCP\IInitialStateService;
use OCP\IL10N;
use OCP\ILogger;
use OCP\IRequest;
use OCP\ISession;
@@ -53,6 +54,7 @@ use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Notification\IManager;
use OCP\Util;

class LoginController extends Controller {
@@ -81,6 +83,10 @@ class LoginController extends Controller {
private $initialStateService;
/** @var WebAuthnManager */
private $webAuthnManager;
/** @var IManager */
private $manager;
/** @var IL10N */
private $l10n;

public function __construct(?string $appName,
IRequest $request,
@@ -94,7 +100,9 @@ class LoginController extends Controller {
Throttler $throttler,
Chain $loginChain,
IInitialStateService $initialStateService,
WebAuthnManager $webAuthnManager) {
WebAuthnManager $webAuthnManager,
IManager $manager,
IL10N $l10n) {
parent::__construct($appName, $request);
$this->userManager = $userManager;
$this->config = $config;
@@ -107,6 +115,8 @@ class LoginController extends Controller {
$this->loginChain = $loginChain;
$this->initialStateService = $initialStateService;
$this->webAuthnManager = $webAuthnManager;
$this->manager = $manager;
$this->l10n = $l10n;
}

/**
@@ -153,6 +163,12 @@ class LoginController extends Controller {
}

$loginMessages = $this->session->get('loginMessages');
if (!$this->manager->isFairUseOfFreePushService()) {
if (!is_array($loginMessages)) {
$loginMessages = [[], []];
}
$loginMessages[1][] = $this->l10n->t('This community release of Nextcloud is unsupported and instant notifications are unavailable.');
}
if (is_array($loginMessages)) {
[$errors, $messages] = $loginMessages;
$this->initialStateService->provideInitialState('core', 'loginMessages', $messages);

+ 25
- 7
tests/Core/Controller/LoginControllerTest.php 查看文件

@@ -33,12 +33,14 @@ use OCP\AppFramework\Http\TemplateResponse;
use OCP\Defaults;
use OCP\IConfig;
use OCP\IInitialStateService;
use OCP\IL10N;
use OCP\ILogger;
use OCP\IRequest;
use OCP\ISession;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserManager;
use OCP\Notification\IManager;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;

@@ -86,6 +88,12 @@ class LoginControllerTest extends TestCase {
/** @var \OC\Authentication\WebAuthn\Manager|MockObject */
private $webAuthnManager;

/** @var IManager|MockObject */
private $notificationManager;

/** @var IL10N|MockObject */
private $l;

protected function setUp(): void {
parent::setUp();
$this->request = $this->createMock(IRequest::class);
@@ -101,6 +109,13 @@ class LoginControllerTest extends TestCase {
$this->chain = $this->createMock(LoginChain::class);
$this->initialStateService = $this->createMock(IInitialStateService::class);
$this->webAuthnManager = $this->createMock(\OC\Authentication\WebAuthn\Manager::class);
$this->notificationManager = $this->createMock(IManager::class);
$this->l = $this->createMock(IL10N::class);
$this->l->expects($this->any())
->method('t')
->willReturnCallback(function ($text, $parameters = []) {
return vsprintf($text, $parameters);
});


$this->request->method('getRemoteAddress')
@@ -124,7 +139,9 @@ class LoginControllerTest extends TestCase {
$this->throttler,
$this->chain,
$this->initialStateService,
$this->webAuthnManager
$this->webAuthnManager,
$this->notificationManager,
$this->l
);
}

@@ -249,6 +266,7 @@ class LoginControllerTest extends TestCase {
[
'MessageArray1',
'MessageArray2',
'This community release of Nextcloud is unsupported and instant notifications are unavailable.',
]
);
$this->initialStateService->expects($this->at(1))
@@ -278,7 +296,7 @@ class LoginControllerTest extends TestCase {
->expects($this->once())
->method('isLoggedIn')
->willReturn(false);
$this->initialStateService->expects($this->at(2))
$this->initialStateService->expects($this->at(4))
->method('provideInitialState')
->with(
'core',
@@ -339,14 +357,14 @@ class LoginControllerTest extends TestCase {
->method('get')
->with('LdapUser')
->willReturn($user);
$this->initialStateService->expects($this->at(0))
$this->initialStateService->expects($this->at(2))
->method('provideInitialState')
->with(
'core',
'loginUsername',
'LdapUser'
);
$this->initialStateService->expects($this->at(4))
$this->initialStateService->expects($this->at(6))
->method('provideInitialState')
->with(
'core',
@@ -386,21 +404,21 @@ class LoginControllerTest extends TestCase {
->method('get')
->with('0')
->willReturn($user);
$this->initialStateService->expects($this->at(1))
$this->initialStateService->expects($this->at(3))
->method('provideInitialState')
->with(
'core',
'loginAutocomplete',
true
);
$this->initialStateService->expects($this->at(3))
$this->initialStateService->expects($this->at(5))
->method('provideInitialState')
->with(
'core',
'loginResetPasswordLink',
false
);
$this->initialStateService->expects($this->at(4))
$this->initialStateService->expects($this->at(6))
->method('provideInitialState')
->with(
'core',

Loading…
取消
儲存