Skip to content

Commit

Permalink
Update
Browse files Browse the repository at this point in the history
  • Loading branch information
SychO9 committed Apr 10, 2021
1 parent a7685c8 commit 3fae4e6
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 13 deletions.
6 changes: 0 additions & 6 deletions src/Http/ActorReference.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,11 @@ class ActorReference
*/
private $actor;

/**
* @param User $actor
*/
public function setActor(User $actor)
{
$this->actor = $actor;
}

/**
* @return User
*/
public function getActor(): User
{
return $this->actor;
Expand Down
2 changes: 0 additions & 2 deletions src/Http/Middleware/AuthenticateWithHeader.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,6 @@ public function process(Request $request, Handler $handler): Response
$request = RequestUtil::withActor($request, $actor);
$request = $request->withAttribute('bypassCsrfToken', true);
$request = $request->withoutAttribute('session');

$request->getAttribute('actorReference')->setActor($actor);
}
}

Expand Down
2 changes: 0 additions & 2 deletions src/Http/Middleware/AuthenticateWithSession.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ public function process(Request $request, Handler $handler): Response

$request = RequestUtil::withActor($request, $actor);

$request->getAttribute('actorReference')->setActor($actor);

return $handler->handle($request);
}

Expand Down
4 changes: 3 additions & 1 deletion src/Http/Middleware/InjectActorReference.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,18 @@
namespace Flarum\Http\Middleware;

use Flarum\Http\ActorReference;
use Flarum\Http\RequestUtil;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\MiddlewareInterface as Middleware;
use Psr\Http\Server\RequestHandlerInterface as Handler;
use Flarum\User\Guest;

class InjectActorReference implements Middleware
{
public function process(Request $request, Handler $handler): Response
{
$request = $request->withAttribute('actorReference', new ActorReference);
$request = RequestUtil::withActor($request, new Guest);

return $handler->handle($request);
}
Expand Down
16 changes: 14 additions & 2 deletions src/Http/RequestUtil.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,23 @@ class RequestUtil
{
public static function getActor(Request $request): User
{
return $request->getAttribute('actor');
return $request->getAttribute('actorReference')->getActor();
}

public static function withActor(Request $request, User $actor): Request
{
return $request->withAttribute('actor', $actor);
$actorReference = $request->getAttribute('actorReference');

if (! $actorReference) {
$actorReference = new ActorReference;
$request = $request->withAttribute('actorReference', $actorReference);
}

$actorReference->setActor($actor);

// BC Layer
$request = $request->withAttribute('actor', $actor);

return $request;
}
}

0 comments on commit 3fae4e6

Please sign in to comment.