Skip to content

Commit 5218759

Browse files
author
钟文彬
committedNov 7, 2023
rabbitmq-management3.9.29,user.ejs,limits.ejs文件异常,导致控制台报错问题
1 parent 88ceef6 commit 5218759

File tree

3 files changed

+278
-1
lines changed

3 files changed

+278
-1
lines changed
 

‎docker/rabbitmq/Dockerfile

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
FROM rabbitmq:3.9-management
22

3+
COPY ./users.ejs /opt/rabbitmq/plugins/rabbitmq_management-3.9.29/priv/www/js/tmpl
4+
COPY ./limits.ejs /opt/rabbitmq/plugins/rabbitmq_management-3.9.29/priv/www/js/tmpl
5+
36
RUN apt-get -o Acquire::Check-Date=false update && apt-get install -y curl
47

58
RUN curl -L https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.9.0/rabbitmq_delayed_message_exchange-3.9.0.ez > $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.9.0.ez
69

710
RUN chown rabbitmq:rabbitmq $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.9.0.ez
811

9-
RUN rabbitmq-plugins enable rabbitmq_delayed_message_exchange
12+
RUN rabbitmq-plugins enable rabbitmq_delayed_message_exchange

‎docker/rabbitmq/limits.ejs

+177
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
<h1>Limits</h1>
2+
3+
<div class="section">
4+
<h2>Virtual host Limits</h2>
5+
<div class="hider">
6+
<div class="updatable">
7+
8+
<% if (limits.length > 0) { %>
9+
<table class="list">
10+
<thead>
11+
<tr>
12+
<th>Virtual Host</th>
13+
<th>Limit</th>
14+
<th>Value</th>
15+
<th class="administrator-only"></th>
16+
</tr>
17+
</thead>
18+
<tbody>
19+
<% for (var i = 0; i < limits.length; i++) {
20+
var limit = limits[i];
21+
var limit_values = Object.keys(limit.value).sort().map(
22+
function(k) { return {name: k, value: limit.value[k]};});
23+
%>
24+
25+
<% for (var j = 0; j < limit_values.length; j++) {
26+
var limit_value = limit_values[j];
27+
%>
28+
29+
<tr<%= alt_rows(j+1)%>>
30+
<% if(j == 0) { %>
31+
<td rowspan="<%= limit_values.length %>"> <%= fmt_string(limit.vhost) %> </td>
32+
<% } %>
33+
<td><%= limit_value.name %></td>
34+
<td><%= limit_value.value %></td>
35+
<td class="administrator-only">
36+
<form action="#/limits" method="delete" class="confirm">
37+
<input type="hidden" name="name" value="<%= fmt_string(limit_value.name) %>"/>
38+
<input type="hidden" name="vhost" value="<%= fmt_string(limit.vhost) %>"/>
39+
<input type="submit" value="Clear"/>
40+
</form>
41+
</td>
42+
</tr>
43+
<% } %>
44+
<% } %>
45+
</tbody>
46+
</table>
47+
<% } %>
48+
</div>
49+
</div>
50+
</div>
51+
52+
<div class="section administrator-only">
53+
<h2>Set / update a virtual host limit</h2>
54+
<div class="hider">
55+
<form action="#/limits" method="put">
56+
<table class="form">
57+
<tr>
58+
<th><label>Virtual host:</label></th>
59+
<td>
60+
<select name="vhost">
61+
<% for (var i = 0; i < vhosts.length; i++) { %>
62+
<option value="<%= fmt_string(vhosts[i].name) %>">
63+
<%= fmt_string(vhosts[i].name) %>
64+
</option>
65+
<% } %>
66+
</select>
67+
</td>
68+
</tr>
69+
<tr>
70+
<th><label>Limit:</label></th>
71+
<td>
72+
<select name="name">
73+
<option value="max-connections">max-connections</option>
74+
<option value="max-queues">max-queues</option>
75+
</select>
76+
</td>
77+
</tr>
78+
<tr>
79+
<th><label>Value:</label></th>
80+
<td>
81+
<input type="text" name="value"/>
82+
<span class="mand">*</span>
83+
</td>
84+
</tr>
85+
</table>
86+
<input type="submit" value="Set / update limit"/>
87+
</form>
88+
</div>
89+
</div>
90+
91+
<div class="section">
92+
<h2>User Limits</h2>
93+
<div class="hider">
94+
<div class="updatable">
95+
96+
<% if (user_limits.length > 0) { %>
97+
<table class="list">
98+
<thead>
99+
<tr>
100+
<th>User</th>
101+
<th>Limit</th>
102+
<th>Value</th>
103+
<th class="administrator-only"></th>
104+
</tr>
105+
</thead>
106+
<tbody>
107+
<% for (var i = 0; i < user_limits.length; i++) {
108+
var user_limit = user_limits[i];
109+
var user_limit_values = Object.keys(user_limit.value).sort().map(
110+
function(k) { return {name: k, value: user_limit.value[k]};});
111+
%>
112+
113+
<% for (var j = 0; j < user_limit_values.length; j++) {
114+
var user_limit_value = user_limit_values[j];
115+
%>
116+
117+
<tr<%= alt_rows(j+1)%>>
118+
<% if(j == 0) { %>
119+
<td rowspan="<%= user_limit_values.length %>"> <%= fmt_string(user_limit.user) %> </td>
120+
<% } %>
121+
<td><%= user_limit_value.name %></td>
122+
<td><%= user_limit_value.value %></td>
123+
<td class="administrator-only">
124+
<form action="#/user-limits" method="delete" class="confirm">
125+
<input type="hidden" name="name" value="<%= fmt_string(user_limit_value.name) %>"/>
126+
<input type="hidden" name="user" value="<%= fmt_string(user_limit.user) %>"/>
127+
<input type="submit" value="Clear"/>
128+
</form>
129+
</td>
130+
</tr>
131+
<% } %>
132+
<% } %>
133+
</tbody>
134+
</table>
135+
<% } %>
136+
</div>
137+
</div>
138+
</div>
139+
140+
<div class="section administrator-only">
141+
<h2>Set / update a user limit</h2>
142+
<div class="hider">
143+
<form action="#/user-limits" method="put">
144+
<table class="form">
145+
<tr>
146+
<th><label>User:</label></th>
147+
<td>
148+
<select name="user">
149+
<% for (var i = 0; i < users.length; i++) { %>
150+
<option value="<%= fmt_string(users[i].name) %>">
151+
<%= fmt_string(users[i].name) %>
152+
</option>
153+
<% } %>
154+
</select>
155+
</td>
156+
</tr>
157+
<tr>
158+
<th><label>Limit:</label></th>
159+
<td>
160+
<select name="name">
161+
<option value="max-connections">max-connections</option>
162+
<option value="max-channels">max-channels</option>
163+
</select>
164+
</td>
165+
</tr>
166+
<tr>
167+
<th><label>Value:</label></th>
168+
<td>
169+
<input type="text" name="value"/>
170+
<span class="mand">*</span>
171+
</td>
172+
</tr>
173+
</table>
174+
<input type="submit" value="Set / update limit"/>
175+
</form>
176+
</div>
177+
</div>

‎docker/rabbitmq/users.ejs

+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
<h1>Users</h1>
2+
<div class="section">
3+
<%= paginate_ui(users, 'users') %>
4+
</div>
5+
<div class="updatable">
6+
<% if (users.items.length > 0) { %>
7+
<table class="list">
8+
<thead>
9+
<tr>
10+
<th><%= fmt_sort('Name', 'name') %></th>
11+
<th><%= fmt_sort('Tags', 'tags') %></th>
12+
<th>Can access virtual hosts</th>
13+
<th>Has password</th>
14+
</tr>
15+
</thead>
16+
<tbody>
17+
<%
18+
for (var i = 0; i < users.items.length; i++) {
19+
var user = users.items[i];
20+
%>
21+
<tr<%= alt_rows(i)%>>
22+
<td><%= link_user(user.name) %></td>
23+
<td class="c"><%= fmt_string(user.tags) %></td>
24+
<td class="c"><%= fmt_permissions(user, permissions, 'user', 'vhost',
25+
'<p class="warning">No access</p>') %></td>
26+
<td class="c"><%= fmt_boolean(user.password_hash.length > 0) %></td>
27+
</tr>
28+
<% } %>
29+
</tbody>
30+
</table>
31+
<% } else { %>
32+
<p>... no users ...</p>
33+
<% } %>
34+
<p><span class="help" id="internal-users-only"></span></p>
35+
</div>
36+
</div>
37+
</div>
38+
39+
<div class="section-hidden">
40+
<h2>Add a user</h2>
41+
<div class="hider">
42+
<form action="#/users-add" method="put">
43+
<table class="form">
44+
<tr>
45+
<th><label>Username:</label></th>
46+
<td>
47+
<input type="text" name="username"/>
48+
<span class="mand">*</span>
49+
</td>
50+
</tr>
51+
<tr>
52+
<th>
53+
<label>
54+
<select name="has-password" class="narrow controls-appearance">
55+
<option value="password">Password:</option>
56+
<option value="no-password">No password</option>
57+
</select>
58+
</label>
59+
</th>
60+
<td>
61+
<div id="password-div">
62+
<input type="password" name="password" />
63+
<span class="mand">*</span><br/>
64+
<input type="password" name="password_confirm" />
65+
<span class="mand">*</span>
66+
(confirm)
67+
</div>
68+
<div id="no-password-div" style="display: none;">
69+
User cannot log in using password.
70+
</div>
71+
</td>
72+
</tr>
73+
<tr>
74+
<th><label>Tags:</label></th>
75+
<td>
76+
<input type="text" name="tags" id="tags" />
77+
<span class="help" id="user-tags"/>
78+
<table class="argument-links">
79+
<tr>
80+
<td>Set</td>
81+
<td>
82+
<span class="tag-link" tag="administrator">Admin</span> |
83+
<span class="tag-link" tag="monitoring">Monitoring</span> |
84+
<span class="tag-link" tag="policymaker">Policymaker</span><br />
85+
<span class="tag-link" tag="management">Management</span> |
86+
<span class="tag-link" tag="impersonator">Impersonator</span> |
87+
<span class="tag-link" tag="">None</span>
88+
</td>
89+
</tr>
90+
</table>
91+
</td>
92+
</tr>
93+
</table>
94+
<input type="submit" value="Add user"/>
95+
</form>
96+
</div>
97+
</div>

0 commit comments

Comments
 (0)
Please sign in to comment.