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->{flashMsg} = $c->flash->{flashMsg};
|
||||
$c->stash->{successMsg} = $c->flash->{successMsg};
|
||||
$c->stash->{personaEnabled} = $c->config->{enable_persona} // "0" eq "1";
|
||||
|
||||
if (scalar(@args) == 0 || $args[0] ne "static") {
|
||||
$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) = @_;
|
||||
requirePost($c);
|
||||
|
||||
error($c, "Persona support is not enabled.") unless $c->stash->{personaEnabled};
|
||||
|
||||
my $assertion = $c->req->params->{assertion} or die;
|
||||
|
||||
my $ua = new LWP::UserAgent;
|
||||
|
|
|
@ -101,11 +101,13 @@
|
|||
|
||||
<script>
|
||||
function doLogout() {
|
||||
$.post("[% c.uri_for('/logout') %]")
|
||||
.done(function(data) {
|
||||
window.location.reload();
|
||||
})
|
||||
.fail(function() { bootbox.alert("Server request failed!"); });
|
||||
[% IF c.user_exists %]
|
||||
$.post("[% c.uri_for('/logout') %]")
|
||||
.done(function(data) {
|
||||
window.location.reload();
|
||||
})
|
||||
.fail(function() { bootbox.alert("Server request failed!"); });
|
||||
[% END %]
|
||||
}
|
||||
</script>
|
||||
|
||||
|
@ -124,7 +126,8 @@
|
|||
url: "[% c.uri_for('/persona-login') %]",
|
||||
data: "assertion=" + assertion,
|
||||
type: 'POST',
|
||||
success: function(data) { window.location.reload(); }
|
||||
success: function(data) { window.location.reload(); },
|
||||
postError: function() { navigator.id.logout(); }
|
||||
});
|
||||
},
|
||||
onlogout: doLogout
|
||||
|
|
|
@ -107,4 +107,4 @@ td.nowrap {
|
|||
|
||||
.star:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -135,6 +135,7 @@ function requestJSON(args) {
|
|||
bootbox.alert("Server error: " + escapeHTML(data.responseText));
|
||||
else
|
||||
bootbox.alert("Unknown server error!");
|
||||
if (args.postError) args.postError(data);
|
||||
};
|
||||
return $.ajax(args);
|
||||
};
|
||||
|
|
|
@ -123,15 +123,21 @@
|
|||
<a href="#" id="persona-signout">Sign out</a>
|
||||
</li>
|
||||
[% 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>
|
||||
<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>
|
||||
<a href="#hydra-signin" data-toggle="modal">Sign in</a>
|
||||
</li>
|
||||
[% END %]
|
||||
[% END %]
|
||||
|
|
Loading…
Reference in a new issue