Skip to content

Commit c65f58b

Browse files
codesankalpnemesifier
authored andcommitted
[fix] Added config settings permissions to default groups #664
Fixes #664
1 parent 9bcba3d commit c65f58b

File tree

3 files changed

+45
-0
lines changed

3 files changed

+45
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Generated by Django 4.0.5 on 2022-06-21 17:49
2+
3+
from django.db import migrations
4+
5+
from . import assign_organization_config_settings_permissions_to_groups
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
('config', '0040_vpnclient_ip_setnull'),
12+
]
13+
14+
operations = [
15+
migrations.RunPython(
16+
code=assign_organization_config_settings_permissions_to_groups,
17+
reverse_code=migrations.operations.special.RunPython.noop,
18+
)
19+
]

openwisp_controller/config/migrations/__init__.py

+21
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,24 @@ def assign_devicegroup_permissions_to_groups(apps, schema_editor):
7878
)
7979
admin.permissions.add(permission.pk)
8080
operator.permissions.add(permission.pk)
81+
82+
83+
def assign_organization_config_settings_permissions_to_groups(apps, schema_editor):
84+
create_default_permissions(apps, schema_editor)
85+
operator_operations = ['view']
86+
admin_operations = operator_operations + ['change']
87+
Group = get_swapped_model(apps, 'openwisp_users', 'Group')
88+
try:
89+
admin = Group.objects.get(name='Administrator')
90+
operator = Group.objects.get(name='Operator')
91+
# consider failures custom cases
92+
# that do not have to be dealt with
93+
except Group.DoesNotExist:
94+
return
95+
for operation in admin_operations:
96+
permission = Permission.objects.get(
97+
codename='{}_{}'.format(operation, 'organizationconfigsettings')
98+
)
99+
if operation in operator_operations:
100+
operator.permissions.add(permission.pk)
101+
admin.permissions.add(permission.pk)

tests/openwisp2/sample_config/migrations/0002_default_groups_permissions.py

+5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from openwisp_controller.config.migrations import (
44
assign_devicegroup_permissions_to_groups,
5+
assign_organization_config_settings_permissions_to_groups,
56
assign_permissions_to_groups,
67
)
78

@@ -17,4 +18,8 @@ class Migration(migrations.Migration):
1718
assign_devicegroup_permissions_to_groups,
1819
reverse_code=migrations.RunPython.noop,
1920
),
21+
migrations.RunPython(
22+
code=assign_organization_config_settings_permissions_to_groups,
23+
reverse_code=migrations.operations.special.RunPython.noop,
24+
),
2025
]

0 commit comments

Comments
 (0)