Skip to content

Commit f15e85a

Browse files
Move most javascript logic to helper.js
1 parent 4efe57b commit f15e85a

File tree

3 files changed

+34
-17
lines changed

3 files changed

+34
-17
lines changed

deps/rabbitmq_management/priv/www/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<link href="favicon.ico" rel="shortcut icon" type="image/x-icon"/>
2323

2424
<script type="module">
25-
window.oauth = oauth_initialize_if_required("index");
25+
window.oauth = oauth_initialize_if_required();
2626

2727
</script>
2828

deps/rabbitmq_management/priv/www/js/oidc-oauth/helper.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,29 @@ function auth_settings_apply_defaults(authSettings) {
8686
return authSettings;
8787
}
8888

89+
var oauth_settings = { oauth_enabled : false}
90+
91+
export function set_oauth_settings(settings) {
92+
oauth_settings = settings
93+
}
94+
function get_oauth_settings() {
95+
return oauth_settings
96+
}
97+
98+
export function oauth_initialize_if_required(state = "index") {
99+
let oauth = oauth_initialize(get_oauth_settings())
100+
if (!oauth.enabled) return oauth;
101+
switch (state) {
102+
case 'login-callback':
103+
oauth_completeLogin(); break;
104+
case 'logout-callback':
105+
oauth_completeLogout(); break;
106+
default:
107+
oauth = oauth_initiate(oauth);
108+
}
109+
return oauth;
110+
}
111+
89112
export function oauth_initiate(oauth) {
90113
if (oauth.enabled) {
91114
if (!oauth.sp_initiated) {

deps/rabbitmq_management/src/rabbit_mgmt_oauth_bootstrap.erl

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,18 @@ init(Req0, State) ->
1818
bootstrap_oauth(Req0, State) ->
1919
AuthSettings = rabbit_mgmt_wm_auth:authSettings(),
2020
Dependencies = oauth_dependencies(),
21-
JSContent = case proplists:get_value(oauth_enabled, AuthSettings, false) of
22-
false -> declare_oauth_initialize_if_required(AuthSettings);
23-
true -> import_dependencies(Dependencies) ++
24-
declare_oauth_initialize_if_required(AuthSettings) ++
25-
set_token_auth(Req0) ++
26-
export_dependencies(Dependencies)
27-
28-
end ++ export_dependencies(["oauth_initialize_if_required"]),
21+
JSContent = import_dependencies(Dependencies) ++
22+
set_oauth_settings(AuthSettings) ++
23+
case proplists:get_value(oauth_enabled, AuthSettings, false) of
24+
true -> set_token_auth(Req0) ++ export_dependencies(oauth_dependencies());
25+
false -> export_dependencies(["oauth_initialize_if_required", "set_oauth_settings"])
26+
end,
2927
{ok, cowboy_req:reply(200, #{<<"content-type">> => <<"text/javascript; charset=utf-8">>}, JSContent, Req0), State}.
3028

31-
declare_oauth_initialize_if_required(AuthSettings) ->
29+
set_oauth_settings(AuthSettings) ->
3230
case proplists:get_value(oauth_enabled, AuthSettings, false) of
33-
true -> ["export default function oauth_initialize_if_required(state) { ",
34-
"let oauth = oauth_initialize(", rabbit_json:encode(rabbit_mgmt_format:format_nulls(AuthSettings)), "); ",
35-
"if (!oauth.enabled) return oauth;"
36-
"switch (state) { case 'login-callback': oauth_completeLogin(); break; case 'logout-callback': oauth_completeLogout(); break; default: oauth = oauth_initiate(oauth);}",
37-
"return oauth; }"];
38-
false -> ["export default function oauth_initialize_if_required(state) { return {oauth_enabled: false}; }"]
31+
true -> ["set_oauth_settings(", rabbit_json:encode(rabbit_mgmt_format:format_nulls(AuthSettings)), "); "];
32+
false -> ["set_oauth_settings({oauth_enabled: false});"]
3933
end.
4034

4135
set_token_auth(Req0) ->
@@ -52,7 +46,7 @@ import_dependencies(Dependencies) ->
5246
["import {", string:join(Dependencies, ","), "} from './helper.js';"].
5347

5448
oauth_dependencies() ->
55-
["hasAnyResourceServerReady", "oauth_initialize", "oauth_initiate", "oauth_initiateLogin", "oauth_initiateLogout", "oauth_completeLogin", "oauth_completeLogout"].
49+
["oauth_initialize_if_required", "hasAnyResourceServerReady", "oauth_initialize", "oauth_initiate", "oauth_initiateLogin", "oauth_initiateLogout", "oauth_completeLogin", "oauth_completeLogout", "set_oauth_settings"].
5650

5751
export_dependencies(Dependencies) ->
5852
[ io_lib:format("window.~s = ~s;", [Dep, Dep]) || Dep <- Dependencies ].

0 commit comments

Comments
 (0)