Skip to content

Commit 02e6c73

Browse files
UpstreamDatab-rowan
authored andcommitted
Handle permissions on software and rollouts page.
Prevent users from writing when they don't have the correct permissions.
1 parent 5fb32c7 commit 02e6c73

File tree

2 files changed

+81
-39
lines changed

2 files changed

+81
-39
lines changed

goosebit/ui/templates/rollouts.html.jinja

+59-38
Original file line numberDiff line numberDiff line change
@@ -23,50 +23,71 @@
2323
</div>
2424
</div>
2525
</div>
26-
<div class="modal" id="rollout-create-modal">
27-
<div class="modal-dialog modal-lg">
28-
<div class="modal-content">
29-
<div class="modal-header">
30-
<h5 class="modal-title">Create Rollout</h5>
31-
<button type="button"
32-
class="btn-close"
33-
data-bs-dismiss="modal"
34-
aria-label="Close"></button>
35-
</div>
36-
<form id="rollout-form" class="needs-validation" novalidate>
37-
<div class="modal-body">
38-
<div class="form-group mb-3">
39-
<label for="rollout-selected-name">Name</label>
40-
<input id="rollout-selected-name"
41-
class="form-control"
42-
placeholder="Release 1" />
43-
</div>
44-
<div class="form-group mb-3">
45-
<label for="rollout-selected-feed">Feed</label>
46-
<input id="rollout-selected-feed"
47-
class="form-control"
48-
placeholder="qa"
49-
required />
50-
<div class="invalid-feedback">
51-
Feed missing. Use "default" if working with a single
52-
feed.
26+
{% if compare_permissions(["rollout.write"], request.user.permissions) %}
27+
<div class="modal" id="rollout-create-modal">
28+
<div class="modal-dialog modal-lg">
29+
<div class="modal-content">
30+
<div class="modal-header">
31+
<h5 class="modal-title">Create Rollout</h5>
32+
<button type="button"
33+
class="btn-close"
34+
data-bs-dismiss="modal"
35+
aria-label="Close"></button>
36+
</div>
37+
<form id="rollout-form" class="needs-validation" novalidate>
38+
<div class="modal-body">
39+
<div class="form-group mb-3">
40+
<label for="rollout-selected-name">Name</label>
41+
<input id="rollout-selected-name"
42+
class="form-control"
43+
placeholder="Release 1" />
44+
</div>
45+
<div class="form-group mb-3">
46+
<label for="rollout-selected-feed">Feed</label>
47+
<input id="rollout-selected-feed"
48+
class="form-control"
49+
placeholder="qa"
50+
required />
51+
<div class="invalid-feedback">
52+
Feed missing. Use "default" if working with a single
53+
feed.
54+
</div>
55+
</div>
56+
<div class="form-group mb-3">
57+
<label for="selected-sw">Software</label>
58+
<select class="form-select" id="selected-sw" required>
59+
<option value="" disabled selected>Select software</option>
60+
</select>
61+
<div class="invalid-feedback">Select software for the rollout.</div>
5362
</div>
5463
</div>
55-
<div class="form-group mb-3">
56-
<label for="selected-sw">Software</label>
57-
<select class="form-select" id="selected-sw" required>
58-
<option value="" disabled selected>Select software</option>
59-
</select>
60-
<div class="invalid-feedback">Select software for the rollout.</div>
64+
<div class="modal-footer">
65+
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
66+
<button type="submit" class="btn btn-outline-light">Save changes</button>
6167
</div>
68+
</form>
69+
</div>
70+
</div>
71+
</div>
72+
{% else %}
73+
<div class="modal modal-lg fade" id="rollout-create-modal">
74+
<div class="modal-dialog modal-dialog-centered modal-xl">
75+
<div class="modal-content">
76+
<div class="modal-header">
77+
Unavailable
78+
<button type="button"
79+
class="btn-close"
80+
data-bs-dismiss="modal"
81+
aria-label="Close"></button>
6282
</div>
63-
<div class="modal-footer">
64-
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
65-
<button type="submit" class="btn btn-outline-light">Save changes</button>
83+
<div class="modal-body">
84+
<div class="alert alert-warning m-0" role="alert">You do not have permission to add rollouts.</div>
85+
<form id="rollout-form">
86+
</form>
6687
</div>
67-
</form>
88+
</div>
6889
</div>
6990
</div>
70-
</div>
91+
{% endif %}
7192
<script src="{{ url_for('static', path='js/rollouts.js') }}"></script>
7293
{% endblock content %}

goosebit/ui/templates/software.html.jinja

+22-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
</div>
2020
</div>
2121
</div>
22-
{% if "software.write" in request.user.permissions %}
22+
{% if compare_permissions(["software.write"], request.user.permissions) %}
2323
<div class="modal modal-lg fade" id="upload-modal">
2424
<div class="modal-dialog modal-dialog-centered modal-xl">
2525
<div class="modal-content">
@@ -112,6 +112,27 @@
112112
</div>
113113
</div>
114114
</div>
115+
{% else %}
116+
<div class="modal modal-lg fade" id="upload-modal">
117+
<div class="modal-dialog modal-dialog-centered modal-xl">
118+
<div class="modal-content">
119+
<div class="modal-header">
120+
Unavailable
121+
<button type="button"
122+
class="btn-close"
123+
data-bs-dismiss="modal"
124+
aria-label="Close"></button>
125+
</div>
126+
<div class="modal-body">
127+
<div class="alert alert-warning m-0" role="alert">You do not have permission to add software files.</div>
128+
<form id="upload-form">
129+
</form>
130+
<form id="url-form">
131+
</form>
132+
</div>
133+
</div>
134+
</div>
135+
</div>
115136
{% endif %}
116137
<script src="{{ url_for('static', path='js/util.js') }}"></script>
117138
<script src="{{ url_for('static', path='js/software.js') }}"></script>

0 commit comments

Comments
 (0)