summaryrefslogtreecommitdiff
path: root/lib/Ultramarine/Middleware/Authorisation.pm
blob: 0ddacf646886c659bf164d62b86de67eaa0dcd8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use v6.d.PREVIEW;
use Cro::HTTP::Middleware;
use Ultramarine::Middleware::Authentication;
 
class Ultramarine::Middleware::Authorisation
 does Cro::HTTP::Middleware::Conditional {
    method process(Supply:D $request-stream{
        supply whenever $request-stream -> $request {
            if ($request ~~ Ultramarine::Request::Authed{
                # here we could also add some access control 
                emit $request;
            }
            else {
                emit Cro::HTTP::Response.new(:status<403>);
            }
        }
    }
}