#!/usr/bin/perl use Dancer; use lib '../lib'; use Dancer::Plugin::Auth::Extensible; get '/' => sub { my $content = "

Non-secret home page!

"; if (my $user = logged_in_user()) { $content .= "

Hi there, $user->{name}!

"; } else { $content .= "

Why not log in?

"; } $content .= <Psst, wanna know a secret?

Or maybe you want a beer

Or, a vodka?

LINKS if (user_has_role('BeerDrinker')) { $content .= "

You can drink beer

"; } if (user_has_role('WineDrinker')) { $content .= "

You can drink wine

"; } return $content; }; get '/secret' => require_login sub { "Only logged-in users can see this" }; get '/beer' => require_any_role [qw(BeerDrinker HardDrinker)], sub { "Any drinker can get beer."; }; get '/vodka' => require_role HardDrinker => sub { "Only hard drinkers get vodka"; }; get '/realm' => require_login sub { "You are logged in using realm: " . session->{logged_in_user_realm}; }; dance();