Merge pull request #1188 from nextcloud/2fa-redirect-default-app

redirect to default app after solving the 2FA challenge
This commit is contained in:
Lukas Reschke 2016-08-31 19:46:38 +02:00 committed by GitHub
commit 2685129184
2 changed files with 15 additions and 17 deletions

View File

@ -24,6 +24,8 @@
namespace OC\Core\Controller; namespace OC\Core\Controller;
use OC\Authentication\TwoFactorAuth\Manager; use OC\Authentication\TwoFactorAuth\Manager;
use OC_User;
use OC_Util;
use OCP\AppFramework\Controller; use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\RedirectResponse; use OCP\AppFramework\Http\RedirectResponse;
use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Http\TemplateResponse;
@ -67,7 +69,7 @@ class TwoFactorChallengeController extends Controller {
* @return string * @return string
*/ */
protected function getLogoutAttribute() { protected function getLogoutAttribute() {
return \OC_User::getLogoutAttribute(); return OC_User::getLogoutAttribute();
} }
/** /**
@ -143,7 +145,7 @@ class TwoFactorChallengeController extends Controller {
if (!is_null($redirect_url)) { if (!is_null($redirect_url)) {
return new RedirectResponse($this->urlGenerator->getAbsoluteURL(urldecode($redirect_url))); return new RedirectResponse($this->urlGenerator->getAbsoluteURL(urldecode($redirect_url)));
} }
return new RedirectResponse($this->urlGenerator->linkToRoute('files.view.index')); return new RedirectResponse(OC_Util::getDefaultPageUrl());
} }
$this->session->set('two_factor_auth_error', true); $this->session->set('two_factor_auth_error', true);

View File

@ -39,13 +39,13 @@ class TwoFactorChallengeControllerTest extends TestCase {
protected function setUp() { protected function setUp() {
parent::setUp(); parent::setUp();
$this->request = $this->getMock('\OCP\IRequest'); $this->request = $this->getMockBuilder('\OCP\IRequest')->getMock();
$this->twoFactorManager = $this->getMockBuilder('\OC\Authentication\TwoFactorAuth\Manager') $this->twoFactorManager = $this->getMockBuilder('\OC\Authentication\TwoFactorAuth\Manager')
->disableOriginalConstructor() ->disableOriginalConstructor()
->getMock(); ->getMock();
$this->userSession = $this->getMock('\OCP\IUserSession'); $this->userSession = $this->getMockBuilder('\OCP\IUserSession')->getMock();
$this->session = $this->getMock('\OCP\ISession'); $this->session = $this->getMockBuilder('\OCP\ISession')->getMock();
$this->urlGenerator = $this->getMock('\OCP\IURLGenerator'); $this->urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator')->getMock();
$this->controller = $this->getMockBuilder('OC\Core\Controller\TwoFactorChallengeController') $this->controller = $this->getMockBuilder('OC\Core\Controller\TwoFactorChallengeController')
->setConstructorArgs([ ->setConstructorArgs([
@ -64,7 +64,7 @@ class TwoFactorChallengeControllerTest extends TestCase {
} }
public function testSelectChallenge() { public function testSelectChallenge() {
$user = $this->getMock('\OCP\IUser'); $user = $this->getMockBuilder('\OCP\IUser')->getMock();
$providers = [ $providers = [
'prov1', 'prov1',
'prov2', 'prov2',
@ -88,7 +88,7 @@ class TwoFactorChallengeControllerTest extends TestCase {
} }
public function testShowChallenge() { public function testShowChallenge() {
$user = $this->getMock('\OCP\IUser'); $user = $this->getMockBuilder('\OCP\IUser')->getMock();
$provider = $this->getMockBuilder('\OCP\Authentication\TwoFactorAuth\IProvider') $provider = $this->getMockBuilder('\OCP\Authentication\TwoFactorAuth\IProvider')
->disableOriginalConstructor() ->disableOriginalConstructor()
->getMock(); ->getMock();
@ -130,7 +130,7 @@ class TwoFactorChallengeControllerTest extends TestCase {
} }
public function testShowInvalidChallenge() { public function testShowInvalidChallenge() {
$user = $this->getMock('\OCP\IUser'); $user = $this->getMockBuilder('\OCP\IUser')->getMock();
$this->userSession->expects($this->once()) $this->userSession->expects($this->once())
->method('getUser') ->method('getUser')
@ -150,7 +150,7 @@ class TwoFactorChallengeControllerTest extends TestCase {
} }
public function testSolveChallenge() { public function testSolveChallenge() {
$user = $this->getMock('\OCP\IUser'); $user = $this->getMockBuilder('\OCP\IUser')->getMock();
$provider = $this->getMockBuilder('\OCP\Authentication\TwoFactorAuth\IProvider') $provider = $this->getMockBuilder('\OCP\Authentication\TwoFactorAuth\IProvider')
->disableOriginalConstructor() ->disableOriginalConstructor()
->getMock(); ->getMock();
@ -167,17 +167,13 @@ class TwoFactorChallengeControllerTest extends TestCase {
->method('verifyChallenge') ->method('verifyChallenge')
->with('myprovider', $user, 'token') ->with('myprovider', $user, 'token')
->will($this->returnValue(true)); ->will($this->returnValue(true));
$this->urlGenerator->expects($this->once())
->method('linkToRoute')
->with('files.view.index')
->will($this->returnValue('files/index/url'));
$expected = new \OCP\AppFramework\Http\RedirectResponse('files/index/url'); $expected = new \OCP\AppFramework\Http\RedirectResponse(\OC_Util::getDefaultPageUrl());
$this->assertEquals($expected, $this->controller->solveChallenge('myprovider', 'token')); $this->assertEquals($expected, $this->controller->solveChallenge('myprovider', 'token'));
} }
public function testSolveChallengeInvalidProvider() { public function testSolveChallengeInvalidProvider() {
$user = $this->getMock('\OCP\IUser'); $user = $this->getMockBuilder('\OCP\IUser')->getMock();
$this->userSession->expects($this->once()) $this->userSession->expects($this->once())
->method('getUser') ->method('getUser')
@ -197,7 +193,7 @@ class TwoFactorChallengeControllerTest extends TestCase {
} }
public function testSolveInvalidChallenge() { public function testSolveInvalidChallenge() {
$user = $this->getMock('\OCP\IUser'); $user = $this->getMockBuilder('\OCP\IUser')->getMock();
$provider = $this->getMockBuilder('\OCP\Authentication\TwoFactorAuth\IProvider') $provider = $this->getMockBuilder('\OCP\Authentication\TwoFactorAuth\IProvider')
->disableOriginalConstructor() ->disableOriginalConstructor()
->getMock(); ->getMock();