<%args> $userName => "" $password => "" <%once> use HTML::Entities; # For encode_entities() use Masterkey::Admin; <%perl> my $admin = new Masterkey::Admin(undef); my $tab = $admin->siteConfigValue("redirectToTab"); if (defined $tab) { # For installations that default to a favoured tab. $m->comp("/mc/redirect.html", url => "$tab/"); } elsif ($userName eq "" || $password eq "") { # For sites requiring an initial login $m->comp("form", admin => $admin, userName => $userName, password => $password); } else { for (my $i = 1;; $i++) { my $ws = $admin->siteConfigValue("login.$i.authRealm"); my $rs; if ($ws) { my $torus = create Masterkey::Admin::Torus::RealmBased($admin, $ws); $rs = $torus->list(undef, { userName => $userName, password => $password }); } else { $ws = $admin->siteConfigValue("login.$i.authTorus") or last; my $torus = create Masterkey::Admin::Torus::OldStyle($admin, $ws); $rs = $torus->list($admin->siteConfigValue("login.$i.authTorusRealm"), { userName => $userName, password => $password }); } my $users = $rs->records(); if (@$users) { my $tab = $admin->siteConfigValue("login.$i.authRedirect"); return $m->comp("postLogin", tab => $tab, userName => $userName, password => $password, dest => "/"); } } $m->comp("form", admin => $admin, userName => $userName, password => $password, error => "No match"); } <%def form> <%args> $admin $userName $password $error => "" <%perl> my $title = $admin->siteConfigValue("frontPageTitle"); my $h1 = $admin->siteConfigValue("frontPageH1") || $title; my $logo = $admin->siteConfigValue("logo"); my $icon = $admin->siteConfigValue("siteIcon"); <% encode_entities($title) %> % if (defined $icon) { % }

<% $h1 %>

% if (defined $logo) {
% }
% if (defined $error) {

<% encode_entities($error) %>

% }

UserName:
Password:

Masterkey::Admin version <% $Masterkey::Admin::VERSION %>
Running on <% `hostname` %>

<%def postLogin> <%args> $tab $userName $password %# backwards-compatibility hack for old configurations % $tab = "/$tab" if $tab =~ /^console\//;