Skip to content

Commit 2990d75

Browse files
committed
fix(namespace): update namespace deletes to include objects, increase delete warnings
1 parent ed95d29 commit 2990d75

5 files changed

Lines changed: 44 additions & 29 deletions

File tree

users/templates/users/device_perm_detail.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ <h1>Edit Device Permissions</h1>
6060
<button type="submit" class="btn btn-secondary btn-sm" name="save">Save</button>
6161
<button type="submit" class="btn btn-secondary btn-sm" name="token">Generate MQTT Token</button>
6262
<hr />
63-
<input type="button" class="btn btn-danger btn-sm" onclick="clickDelete(this);" value="Delete Permissions" />
63+
<input type="button" class="btn btn-danger btn-sm" onclick="clickDelete(this);"
64+
value="Delete Device Permissions" />
6465
</form>
6566

6667
</div>
@@ -80,7 +81,8 @@ <h1>Edit Device Permissions</h1>
8081

8182
async function clickDelete() {
8283
Swal.fire({
83-
title: 'Are you sure you want to delete device permissions: {{ device.name }}?',
84+
title: 'Are you sure you want to delete all device permissions for: {{ device.name }}?',
85+
icon: 'warning',
8486
showCancelButton: true,
8587
confirmButtonText: `Yes`,
8688
customClass: {

users/templates/users/namespace_perm_detail.html

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,28 @@ <h1>Edit Namespace Permissions</h1>
1616
<td><b>Namespace Name:</b></td>
1717
<td><b>{{ namespace.name }}</b></td>
1818
<td></td>
19-
</tr>
20-
<tr>
21-
<td><b>Owners:</b></td>
22-
<td>{{ owners|join:", " }}</td>
23-
<td>Owners cannot be removed. Includes Editor permissions.</td>
24-
</tr>
25-
<tr>
26-
<td><b>Editors:</b></td>
27-
<td>{{ form.editors }}</td>
28-
<td>Add/remove additional Editors. Editors can change namespace objects and permissions. Includes Viewer permissions.</td>
29-
</tr>
30-
<tr>
31-
<td><b>Viewers:</b></td>
32-
<td>{{ form.viewers }}</td>
33-
<td>Add/remove additional Viewers. Viewers can see namespace names in lists.</td>
34-
</tr> </table>
19+
</tr>
20+
<tr>
21+
<td><b>Owners:</b></td>
22+
<td>{{ owners|join:", " }}</td>
23+
<td>Owners cannot be removed. Includes Editor permissions.</td>
24+
</tr>
25+
<tr>
26+
<td><b>Editors:</b></td>
27+
<td>{{ form.editors }}</td>
28+
<td>Add/remove additional Editors. Editors can change namespace objects and permissions.
29+
Includes Viewer permissions.</td>
30+
</tr>
31+
<tr>
32+
<td><b>Viewers:</b></td>
33+
<td>{{ form.viewers }}</td>
34+
<td>Add/remove additional Viewers. Viewers can see namespace names in lists.</td>
35+
</tr>
36+
</table>
3537
<button type="submit" class="btn btn-secondary btn-sm" name="save">Save</button>
3638
<hr />
37-
<input type="button" class="btn btn-danger btn-sm" onclick="clickDelete(this);" value="Delete Permissions" />
39+
<input type="button" class="btn btn-danger btn-sm" onclick="clickDelete(this);"
40+
value="Delete Namespace Objects and Permissions" />
3841
</form>
3942

4043
</div>
@@ -47,7 +50,8 @@ <h1>Edit Namespace Permissions</h1>
4750

4851
async function clickDelete() {
4952
Swal.fire({
50-
title: 'Are you sure you want to delete namespace permissions: {{ namespace.name }}?',
53+
title: 'Are you sure you want to delete all namespace objects and permissions for: {{ namespace.name }}/+?',
54+
icon: 'warning',
5155
showCancelButton: true,
5256
confirmButtonText: `Yes`,
5357
customClass: {

users/templates/users/scene_perm_detail.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ <h1>Edit Scene Permissions</h1>
8888
class="btn btn-secondary btn-sm">Edit Scene Objects</a>
8989
<hr />
9090
<input type="button" class="btn btn-danger btn-sm" onclick="clickDelete(this);"
91-
value="Delete Objects and Permissions" />
91+
value="Delete Scene Objects and Permissions" />
9292
</form>
9393

9494
</div>
@@ -116,7 +116,8 @@ <h1>Edit Scene Permissions</h1>
116116

117117
async function clickDelete() {
118118
Swal.fire({
119-
title: 'Are you sure you want to delete scene objects and permissions: {{ scene.name }}?',
119+
title: 'Are you sure you want to delete all scene objects and permissions for: {{ scene.name }}?',
120+
icon: 'warning',
120121
showCancelButton: true,
121122
confirmButtonText: `Yes`,
122123
customClass: {

users/templates/users/user_profile.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,8 @@ <h5>Anonymous users have no profile.</h5>
381381
const {
382382
value: text
383383
} = await Swal.fire({
384-
title: 'Are you sure you want to delete account {{ user.get_username }} and all {{ user.get_username }}/+ scenes?',
384+
title: 'Are you sure you want to delete account "{{ user.get_username }}" and all files and scenes for: {{ user.get_username }}/+?',
385+
icon: 'warning',
385386
showCancelButton: true,
386387
confirmButtonText: `Yes`,
387388
customClass: {

users/views.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,13 @@ def namespace_perm_detail(request, pk):
235235
return redirect("users:user_profile")
236236
elif "delete" in request.POST:
237237
# delete account namespace data
238-
namespace.delete()
239-
messages.success(request, f"Removed namespace permissions: {pk}")
238+
if namespace.pk:
239+
namespace.delete()
240+
messages.success(request, f"Removed namespace permissions: {pk}")
241+
# delete persist objects for this namespace
242+
if delete_persist_namespace_objects(pk):
243+
messages.success(request, f"Removed namespace persistence objects: {pk}")
244+
240245
return redirect("users:user_profile")
241246
else:
242247
form = NamespaceForm(instance=namespace)
@@ -275,8 +280,9 @@ def scene_perm_detail(request, pk):
275280
return redirect("users:user_profile")
276281
elif "delete" in request.POST:
277282
# delete account scene data
278-
scene.delete()
279-
messages.success(request, f"Removed scene permissions: {pk}")
283+
if scene.pk:
284+
scene.delete()
285+
messages.success(request, f"Removed scene permissions: {pk}")
280286
# delete persist scene data
281287
namespace, sceneId = pk.split("/")
282288
if delete_persist_scene_objects(namespace, sceneId):
@@ -336,8 +342,9 @@ def device_perm_detail(request, pk):
336342
return redirect("users:user_profile")
337343
elif "delete" in request.POST:
338344
# delete account device data
339-
device.delete()
340-
messages.success(request, f"Removed device permissions: {pk}")
345+
if device.pk:
346+
device.delete()
347+
messages.success(request, f"Removed device permissions: {pk}")
341348
return redirect("users:user_profile")
342349
elif "token" in request.POST:
343350
token = generate_arena_token(

0 commit comments

Comments
 (0)