UserLoggedOutMiddleware   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 9
c 1
b 0
f 0
dl 0
loc 33
ccs 7
cts 7
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 2 1
A handle() 0 12 3
1
<?php
2
/**
3
 * @package   WPEmerge
4
 * @author    Atanas Angelov <[email protected]>
5
 * @copyright 2017-2019 Atanas Angelov
6
 * @license   https://www.gnu.org/licenses/gpl-2.0.html GPL-2.0
7
 * @link      https://wpemerge.com/
8
 */
9
10
namespace WPEmerge\Middleware;
11
12
use Closure;
13
use WPEmerge\Requests\RequestInterface;
14
use WPEmerge\Responses\ResponseService;
15
16
/**
17
 * Redirect logged in users to a specific URL.
18
 */
19
class UserLoggedOutMiddleware {
20
	/**
21
	 * Response service.
22
	 *
23
	 * @var ResponseService
24
	 */
25
	protected $response_service = null;
26
27
	/**
28
	 * Constructor.
29
	 *
30
	 * @codeCoverageIgnore
31
	 * @param ResponseService $response_service
32
	 */
33
	public function __construct( ResponseService $response_service ) {
34
		$this->response_service = $response_service;
35
	}
36
37
	/**
38
	 * {@inheritDoc}
39
	 */
40 3
	public function handle( RequestInterface $request, Closure $next, $url = '' ) {
41 3
		if ( ! is_user_logged_in() ) {
42 1
			return $next( $request );
43
		}
44
45 2
		if ( empty( $url ) ) {
46 1
			$url = home_url();
47
		}
48
49 2
		$url = apply_filters( 'wpemerge.middleware.user.logged_out.redirect_url', $url, $request );
50
51 2
		return $this->response_service->redirect( $request )->to( $url );
52
	}
53
}
54