Skip to content

Commit ad4b9a5

Browse files
committed
build
1 parent 3101729 commit ad4b9a5

File tree

2 files changed

+146
-6
lines changed

2 files changed

+146
-6
lines changed

api.include.php

+73-3
Original file line numberDiff line numberDiff line change
@@ -3306,7 +3306,7 @@ public function fromGlobals(): ServerRequestInterface
33063306
/**
33073307
* {@inheritdoc}
33083308
*/
3309-
public function fromArrays(array $server, array $headers = [], array $cookie = [], array $get = [], ?array $post = null, array $files = [], $body = null): ServerRequestInterface
3309+
public function fromArrays(array $server, array $headers = [], array $cookie = [], array $get = [], /*?array*/ $post = null, array $files = [], $body = null): ServerRequestInterface
33103310
{
33113311
$method = $this->getMethodFromEnv($server);
33123312
$uri = $this->getUriFromEnvWithHTTP($server);
@@ -3575,8 +3575,7 @@ public function fromArrays(
35753575
array $server,
35763576
array $headers = [],
35773577
array $cookie = [],
3578-
array $get = [],
3579-
?array $post = null,
3578+
array $get = [], /*?array*/ $post = null,
35803579
array $files = [],
35813580
$body = null
35823581
): ServerRequestInterface;
@@ -9949,6 +9948,73 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface
99499948
}
99509949
}
99519950

9951+
// file: src/Tqdev/PhpCrudApi/Middleware/WpAuthMiddleware.php
9952+
namespace Tqdev\PhpCrudApi\Middleware {
9953+
9954+
use Psr\Http\Message\ResponseInterface;
9955+
use Psr\Http\Message\ServerRequestInterface;
9956+
use Psr\Http\Server\RequestHandlerInterface;
9957+
use Tqdev\PhpCrudApi\Config\Config;
9958+
use Tqdev\PhpCrudApi\Controller\Responder;
9959+
use Tqdev\PhpCrudApi\Middleware\Base\Middleware;
9960+
use Tqdev\PhpCrudApi\Middleware\Router\Router;
9961+
use Tqdev\PhpCrudApi\Record\ErrorCode;
9962+
use Tqdev\PhpCrudApi\RequestUtils;
9963+
9964+
class WpAuthMiddleware extends Middleware
9965+
{
9966+
public function __construct(Router $router, Responder $responder, Config $config, string $middleware)
9967+
{
9968+
parent::__construct($router, $responder, $config, $middleware);
9969+
}
9970+
9971+
public function process(ServerRequestInterface $request, RequestHandlerInterface $next): ResponseInterface
9972+
{
9973+
define('WP_USE_THEMES', false); // Don't load theme support functionality
9974+
$wpDirectory = $this->getProperty('wpDirectory', '.');
9975+
require_once("$wpDirectory/wp-load.php");
9976+
$path = RequestUtils::getPathSegment($request, 1);
9977+
$method = $request->getMethod();
9978+
if ($method == 'POST' && $path == 'login') {
9979+
$body = $request->getParsedBody();
9980+
$usernameFormFieldName = $this->getProperty('usernameFormField', 'username');
9981+
$passwordFormFieldName = $this->getProperty('passwordFormField', 'password');
9982+
$username = isset($body->$usernameFormFieldName) ? $body->$usernameFormFieldName : '';
9983+
$password = isset($body->$passwordFormFieldName) ? $body->$passwordFormFieldName : '';
9984+
$user = wp_signon([
9985+
'user_login' => $username,
9986+
'user_password' => $password,
9987+
'remember' => false,
9988+
]);
9989+
if ($user->ID) {
9990+
return $this->responder->success($user);
9991+
}
9992+
return $this->responder->error(ErrorCode::AUTHENTICATION_FAILED, $username);
9993+
}
9994+
if ($method == 'POST' && $path == 'logout') {
9995+
if (is_user_logged_in()) {
9996+
wp_logout();
9997+
return $this->responder->success($user);
9998+
}
9999+
return $this->responder->error(ErrorCode::AUTHENTICATION_REQUIRED, '');
10000+
}
10001+
if ($method == 'GET' && $path == 'me') {
10002+
if (is_user_logged_in()) {
10003+
return $this->responder->success(wp_get_current_user());
10004+
}
10005+
return $this->responder->error(ErrorCode::AUTHENTICATION_REQUIRED, '');
10006+
}
10007+
if (!is_user_logged_in()) {
10008+
$authenticationMode = $this->getProperty('mode', 'required');
10009+
if ($authenticationMode == 'required') {
10010+
return $this->responder->error(ErrorCode::AUTHENTICATION_REQUIRED, '');
10011+
}
10012+
}
10013+
return $next->handle($request);
10014+
}
10015+
}
10016+
}
10017+
995210018
// file: src/Tqdev/PhpCrudApi/Middleware/XmlMiddleware.php
995310019
namespace Tqdev\PhpCrudApi\Middleware {
995410020

@@ -12184,6 +12250,7 @@ private function setHabtmValues(ReflectedTable $t1, ReflectedTable $t2, array &$
1218412250
use Tqdev\PhpCrudApi\Middleware\SslRedirectMiddleware;
1218512251
use Tqdev\PhpCrudApi\Middleware\TextSearchMiddleware;
1218612252
use Tqdev\PhpCrudApi\Middleware\ValidationMiddleware;
12253+
use Tqdev\PhpCrudApi\Middleware\WpAuthMiddleware;
1218712254
use Tqdev\PhpCrudApi\Middleware\XmlMiddleware;
1218812255
use Tqdev\PhpCrudApi\Middleware\XsrfMiddleware;
1218912256
use Tqdev\PhpCrudApi\OpenApi\OpenApiService;
@@ -12240,6 +12307,9 @@ public function __construct(Config $config)
1224012307
case 'dbAuth':
1224112308
new DbAuthMiddleware($router, $responder, $config, $middleware, $reflection, $db);
1224212309
break;
12310+
case 'wpAuth':
12311+
new WpAuthMiddleware($router, $responder, $config, $middleware);
12312+
break;
1224312313
case 'reconnect':
1224412314
new ReconnectMiddleware($router, $responder, $config, $middleware, $reflection, $db);
1224512315
break;

api.php

+73-3
Original file line numberDiff line numberDiff line change
@@ -3306,7 +3306,7 @@ public function fromGlobals(): ServerRequestInterface
33063306
/**
33073307
* {@inheritdoc}
33083308
*/
3309-
public function fromArrays(array $server, array $headers = [], array $cookie = [], array $get = [], ?array $post = null, array $files = [], $body = null): ServerRequestInterface
3309+
public function fromArrays(array $server, array $headers = [], array $cookie = [], array $get = [], /*?array*/ $post = null, array $files = [], $body = null): ServerRequestInterface
33103310
{
33113311
$method = $this->getMethodFromEnv($server);
33123312
$uri = $this->getUriFromEnvWithHTTP($server);
@@ -3575,8 +3575,7 @@ public function fromArrays(
35753575
array $server,
35763576
array $headers = [],
35773577
array $cookie = [],
3578-
array $get = [],
3579-
?array $post = null,
3578+
array $get = [], /*?array*/ $post = null,
35803579
array $files = [],
35813580
$body = null
35823581
): ServerRequestInterface;
@@ -9949,6 +9948,73 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface
99499948
}
99509949
}
99519950

9951+
// file: src/Tqdev/PhpCrudApi/Middleware/WpAuthMiddleware.php
9952+
namespace Tqdev\PhpCrudApi\Middleware {
9953+
9954+
use Psr\Http\Message\ResponseInterface;
9955+
use Psr\Http\Message\ServerRequestInterface;
9956+
use Psr\Http\Server\RequestHandlerInterface;
9957+
use Tqdev\PhpCrudApi\Config\Config;
9958+
use Tqdev\PhpCrudApi\Controller\Responder;
9959+
use Tqdev\PhpCrudApi\Middleware\Base\Middleware;
9960+
use Tqdev\PhpCrudApi\Middleware\Router\Router;
9961+
use Tqdev\PhpCrudApi\Record\ErrorCode;
9962+
use Tqdev\PhpCrudApi\RequestUtils;
9963+
9964+
class WpAuthMiddleware extends Middleware
9965+
{
9966+
public function __construct(Router $router, Responder $responder, Config $config, string $middleware)
9967+
{
9968+
parent::__construct($router, $responder, $config, $middleware);
9969+
}
9970+
9971+
public function process(ServerRequestInterface $request, RequestHandlerInterface $next): ResponseInterface
9972+
{
9973+
define('WP_USE_THEMES', false); // Don't load theme support functionality
9974+
$wpDirectory = $this->getProperty('wpDirectory', '.');
9975+
require_once("$wpDirectory/wp-load.php");
9976+
$path = RequestUtils::getPathSegment($request, 1);
9977+
$method = $request->getMethod();
9978+
if ($method == 'POST' && $path == 'login') {
9979+
$body = $request->getParsedBody();
9980+
$usernameFormFieldName = $this->getProperty('usernameFormField', 'username');
9981+
$passwordFormFieldName = $this->getProperty('passwordFormField', 'password');
9982+
$username = isset($body->$usernameFormFieldName) ? $body->$usernameFormFieldName : '';
9983+
$password = isset($body->$passwordFormFieldName) ? $body->$passwordFormFieldName : '';
9984+
$user = wp_signon([
9985+
'user_login' => $username,
9986+
'user_password' => $password,
9987+
'remember' => false,
9988+
]);
9989+
if ($user->ID) {
9990+
return $this->responder->success($user);
9991+
}
9992+
return $this->responder->error(ErrorCode::AUTHENTICATION_FAILED, $username);
9993+
}
9994+
if ($method == 'POST' && $path == 'logout') {
9995+
if (is_user_logged_in()) {
9996+
wp_logout();
9997+
return $this->responder->success($user);
9998+
}
9999+
return $this->responder->error(ErrorCode::AUTHENTICATION_REQUIRED, '');
10000+
}
10001+
if ($method == 'GET' && $path == 'me') {
10002+
if (is_user_logged_in()) {
10003+
return $this->responder->success(wp_get_current_user());
10004+
}
10005+
return $this->responder->error(ErrorCode::AUTHENTICATION_REQUIRED, '');
10006+
}
10007+
if (!is_user_logged_in()) {
10008+
$authenticationMode = $this->getProperty('mode', 'required');
10009+
if ($authenticationMode == 'required') {
10010+
return $this->responder->error(ErrorCode::AUTHENTICATION_REQUIRED, '');
10011+
}
10012+
}
10013+
return $next->handle($request);
10014+
}
10015+
}
10016+
}
10017+
995210018
// file: src/Tqdev/PhpCrudApi/Middleware/XmlMiddleware.php
995310019
namespace Tqdev\PhpCrudApi\Middleware {
995410020

@@ -12184,6 +12250,7 @@ private function setHabtmValues(ReflectedTable $t1, ReflectedTable $t2, array &$
1218412250
use Tqdev\PhpCrudApi\Middleware\SslRedirectMiddleware;
1218512251
use Tqdev\PhpCrudApi\Middleware\TextSearchMiddleware;
1218612252
use Tqdev\PhpCrudApi\Middleware\ValidationMiddleware;
12253+
use Tqdev\PhpCrudApi\Middleware\WpAuthMiddleware;
1218712254
use Tqdev\PhpCrudApi\Middleware\XmlMiddleware;
1218812255
use Tqdev\PhpCrudApi\Middleware\XsrfMiddleware;
1218912256
use Tqdev\PhpCrudApi\OpenApi\OpenApiService;
@@ -12240,6 +12307,9 @@ public function __construct(Config $config)
1224012307
case 'dbAuth':
1224112308
new DbAuthMiddleware($router, $responder, $config, $middleware, $reflection, $db);
1224212309
break;
12310+
case 'wpAuth':
12311+
new WpAuthMiddleware($router, $responder, $config, $middleware);
12312+
break;
1224312313
case 'reconnect':
1224412314
new ReconnectMiddleware($router, $responder, $config, $middleware, $reflection, $db);
1224512315
break;

0 commit comments

Comments
 (0)