Skip to content

Commit 8714b86

Browse files
authored
Merge pull request #38 from netboxlabs/develop
🚚 release
2 parents f07fc25 + 2531c74 commit 8714b86

File tree

3 files changed

+47
-21
lines changed

3 files changed

+47
-21
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ PLUGINS_CONFIG = {
5555
# User allowed for NetBox to Diode communication
5656
"netbox_to_diode_username": "netbox-to-diode",
5757

58-
# # User allowed for data ingestion
58+
# User allowed for data ingestion
5959
"diode_username": "diode-ingestion",
6060
},
6161
}

netbox_diode_plugin/migrations/0001_initial.py

+10-20
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,13 @@ def _read_secret(secret_name, default=None):
2424
return f.readline().strip()
2525

2626

27-
def _create_user_with_token(
28-
apps, user_category, username, group, is_superuser: bool = False
29-
):
27+
def _create_user_with_token(apps, user_category, username, group):
3028
User = apps.get_model(netbox_settings.AUTH_USER_MODEL)
3129
"""Create a user with the given username and API key if it does not exist."""
3230
try:
3331
user = User.objects.get(username=username)
3432
except User.DoesNotExist:
35-
if is_superuser:
36-
user = User.objects.create_superuser(username=username, is_active=True)
37-
else:
38-
user = User.objects.create(username=username, is_active=True)
33+
user = User.objects.create(username=username, is_active=True)
3934

4035
user.groups.add(*[group.id])
4136

@@ -56,22 +51,10 @@ def configure_plugin(apps, schema_editor):
5651
Group = apps.get_model("users", "Group")
5752
group, _ = Group.objects.get_or_create(name="diode")
5853

59-
diode_to_netbox_user_id = None
60-
61-
for user_category, username in get_diode_usernames().items():
62-
is_superuser = user_category in ("netbox_to_diode",)
63-
user = _create_user_with_token(
64-
apps, user_category, username, group, is_superuser
65-
)
66-
if user_category == "diode_to_netbox":
67-
diode_to_netbox_user_id = user.id
68-
6954
app_config = django_apps.get_app_config("netbox_diode_plugin")
70-
7155
create_contenttypes(app_config, verbosity=0)
7256

7357
ContentType = apps.get_model("contenttypes", "ContentType")
74-
7558
diode_plugin_object_type = ContentType.objects.get(
7659
app_label="netbox_diode_plugin", model="diode"
7760
)
@@ -81,9 +64,16 @@ def configure_plugin(apps, schema_editor):
8164
name="Diode",
8265
actions=["add", "view"],
8366
)
67+
permission.object_types.set([diode_plugin_object_type.id])
68+
69+
diode_to_netbox_user_id = None
70+
71+
for user_category, username in get_diode_usernames().items():
72+
user = _create_user_with_token(apps, user_category, username, group)
73+
if user_category == "diode_to_netbox":
74+
diode_to_netbox_user_id = user.id
8475

8576
permission.users.set([diode_to_netbox_user_id])
86-
permission.object_types.set([diode_plugin_object_type.id])
8777

8878

8979
class Migration(migrations.Migration):
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/usr/bin/env python
2+
# Copyright 2024 NetBox Labs Inc
3+
"""Diode Netbox Plugin - Database migrations."""
4+
5+
from django.db import migrations
6+
7+
from netbox_diode_plugin.plugin_config import get_diode_usernames
8+
9+
10+
def revoke_superuser_status(apps, schema_editor):
11+
"""Revoke superuser status."""
12+
diode_usernames = get_diode_usernames().values()
13+
User = apps.get_model("users", "User")
14+
users = User.objects.filter(username__in=diode_usernames, groups__name="diode")
15+
16+
for user in users:
17+
user.is_staff = False
18+
user.is_superuser = False
19+
user.save()
20+
21+
22+
class Migration(migrations.Migration):
23+
"""0005_revoke_superuser_status migration."""
24+
25+
dependencies = [
26+
("netbox_diode_plugin", "0001_initial"),
27+
("netbox_diode_plugin", "0002_setting"),
28+
("netbox_diode_plugin", "0003_clear_permissions"),
29+
("netbox_diode_plugin", "0004_rename_legacy_users"),
30+
]
31+
32+
operations = [
33+
migrations.RunPython(
34+
code=revoke_superuser_status, reverse_code=migrations.RunPython.noop
35+
),
36+
]

0 commit comments

Comments
 (0)