Add a flag to enable Persona support
It's disabled by default. To enable, add the following to hydra.conf: enable_persona = 1
This commit is contained in:
parent
d118a575e1
commit
b44baf3746
|
@ -24,6 +24,7 @@ sub begin :Private {
|
||||||
$c->stash->{tracker} = $ENV{"HYDRA_TRACKER"};
|
$c->stash->{tracker} = $ENV{"HYDRA_TRACKER"};
|
||||||
$c->stash->{flashMsg} = $c->flash->{flashMsg};
|
$c->stash->{flashMsg} = $c->flash->{flashMsg};
|
||||||
$c->stash->{successMsg} = $c->flash->{successMsg};
|
$c->stash->{successMsg} = $c->flash->{successMsg};
|
||||||
|
$c->stash->{personaEnabled} = $c->config->{enable_persona} // "0" eq "1";
|
||||||
|
|
||||||
if (scalar(@args) == 0 || $args[0] ne "static") {
|
if (scalar(@args) == 0 || $args[0] ne "static") {
|
||||||
$c->stash->{nrRunningBuilds} = $c->model('DB::Builds')->search({ finished => 0, busy => 1 }, {})->count();
|
$c->stash->{nrRunningBuilds} = $c->model('DB::Builds')->search({ finished => 0, busy => 1 }, {})->count();
|
||||||
|
|
|
@ -48,6 +48,8 @@ sub persona_login :Path('/persona-login') Args(0) {
|
||||||
my ($self, $c) = @_;
|
my ($self, $c) = @_;
|
||||||
requirePost($c);
|
requirePost($c);
|
||||||
|
|
||||||
|
error($c, "Persona support is not enabled.") unless $c->stash->{personaEnabled};
|
||||||
|
|
||||||
my $assertion = $c->req->params->{assertion} or die;
|
my $assertion = $c->req->params->{assertion} or die;
|
||||||
|
|
||||||
my $ua = new LWP::UserAgent;
|
my $ua = new LWP::UserAgent;
|
||||||
|
|
|
@ -101,11 +101,13 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
function doLogout() {
|
function doLogout() {
|
||||||
$.post("[% c.uri_for('/logout') %]")
|
[% IF c.user_exists %]
|
||||||
.done(function(data) {
|
$.post("[% c.uri_for('/logout') %]")
|
||||||
window.location.reload();
|
.done(function(data) {
|
||||||
})
|
window.location.reload();
|
||||||
.fail(function() { bootbox.alert("Server request failed!"); });
|
})
|
||||||
|
.fail(function() { bootbox.alert("Server request failed!"); });
|
||||||
|
[% END %]
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -124,7 +126,8 @@
|
||||||
url: "[% c.uri_for('/persona-login') %]",
|
url: "[% c.uri_for('/persona-login') %]",
|
||||||
data: "assertion=" + assertion,
|
data: "assertion=" + assertion,
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
success: function(data) { window.location.reload(); }
|
success: function(data) { window.location.reload(); },
|
||||||
|
postError: function() { navigator.id.logout(); }
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
onlogout: doLogout
|
onlogout: doLogout
|
||||||
|
|
|
@ -107,4 +107,4 @@ td.nowrap {
|
||||||
|
|
||||||
.star:hover {
|
.star:hover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
|
@ -135,6 +135,7 @@ function requestJSON(args) {
|
||||||
bootbox.alert("Server error: " + escapeHTML(data.responseText));
|
bootbox.alert("Server error: " + escapeHTML(data.responseText));
|
||||||
else
|
else
|
||||||
bootbox.alert("Unknown server error!");
|
bootbox.alert("Unknown server error!");
|
||||||
|
if (args.postError) args.postError(data);
|
||||||
};
|
};
|
||||||
return $.ajax(args);
|
return $.ajax(args);
|
||||||
};
|
};
|
||||||
|
|
|
@ -123,15 +123,21 @@
|
||||||
<a href="#" id="persona-signout">Sign out</a>
|
<a href="#" id="persona-signout">Sign out</a>
|
||||||
</li>
|
</li>
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
[% WRAPPER makeSubMenu title="Sign in" %]
|
[% IF personaEnabled %]
|
||||||
|
[% WRAPPER makeSubMenu title="Sign in" %]
|
||||||
|
<li>
|
||||||
|
<a href="#" id="persona-signin">
|
||||||
|
<img src="https://developer.mozilla.org/files/3963/persona_sign_in_blue.png" alt="Sign in with Persona" />
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li>
|
||||||
|
<a href="#hydra-signin" data-toggle="modal">Sign in with a Hydra account</a>
|
||||||
|
</li>
|
||||||
|
[% END %]
|
||||||
|
[% ELSE %]
|
||||||
<li>
|
<li>
|
||||||
<a href="#" id="persona-signin">
|
<a href="#hydra-signin" data-toggle="modal">Sign in</a>
|
||||||
<img src="https://developer.mozilla.org/files/3963/persona_sign_in_blue.png" alt="Sign in with Persona" />
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="divider"></li>
|
|
||||||
<li>
|
|
||||||
<a href="#hydra-signin" data-toggle="modal">Sign in with a Hydra account</a>
|
|
||||||
</li>
|
</li>
|
||||||
[% END %]
|
[% END %]
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
Loading…
Reference in a new issue