1
0
Fork 0

Separate aprrove permission for satellite and transmitter

Signed-off-by: Alfredos-Panagiotis Damkalis <fredy@fredy.gr>
spacecruft
Alfredos-Panagiotis Damkalis 2021-04-26 18:09:12 +03:00
parent 418fe5ab3d
commit 2f11e6b8e8
7 changed files with 87 additions and 6 deletions

View File

@ -0,0 +1,21 @@
# Generated by Django 3.1.5 on 2021-04-26 13:56
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('base', '0044_update_latest_tle_set_and_satellite_models'),
]
operations = [
migrations.AlterModelOptions(
name='satellitesuggestion',
options={'permissions': (('approve_satellitesuggestion', 'Can approve/reject satellite suggestions'),)},
),
migrations.AlterModelOptions(
name='transmittersuggestion',
options={'permissions': (('approve_transmittersuggestion', 'Can approve/reject transmitter suggestions'),)},
),
]

View File

@ -0,0 +1,56 @@
# Generated by Django 3.1.5 on 2021-04-26 14:15
from django.db import migrations
def reverse_move_permissions(apps, schema_editor):
pass
def move_permissions(apps, schema_editor):
Permission = apps.get_model('auth', 'Permission')
Group = apps.get_model('auth', 'Group')
User = apps.get_model('auth', 'User')
try:
old_transmitter_approve = Permission.objects.get(codename='approve',
content_type__model='transmittersuggestion')
new_transmitter_approve = Permission.objects.get(codename='approve_transmittersuggestion')
groups_with_old_transmitter_approve = Group.objects.filter(permissions=old_transmitter_approve)
for group in groups_with_old_transmitter_approve:
group.permissions.remove(old_transmitter_approve)
group.permissions.add(new_transmitter_approve)
users_with_old_transmitter_approve = User.objects.filter(user_permissions=old_transmitter_approve)
for user in users_with_old_transmitter_approve:
user.user_permissions.remove(old_transmitter_approve)
user.user_permissions.add(new_transmitter_approve)
except Permission.DoesNotExist:
pass
try:
old_satellite_approve = Permission.objects.get(codename='approve',
content_type__model='satellitesuggestion')
new_satellite_approve = Permission.objects.get(codename='approve_satellitesuggestion')
groups_with_old_satellite_approve = Group.objects.filter(permissions=old_satellite_approve)
for group in groups_with_old_satellite_approve:
group.permissions.remove(old_satellite_approve)
group.permissions.add(new_satellite_approve)
users_with_old_satellite_approve = User.objects.filter(user_permissions=old_satellite_approve)
for user in users_with_old_satellite_approve:
user.user_permissions.remove(old_satellite_approve)
user.user_permissions.add(new_satellite_approve)
except Permission.DoesNotExist:
pass
Permission.objects.filter(codename='approve').delete()
class Migration(migrations.Migration):
dependencies = [
('base', '0045_split_approve_permission_for_satellite_and_transmitter_suggestions'),
]
operations = [
migrations.RunPython(move_permissions, reverse_move_permissions),
]

View File

@ -225,7 +225,9 @@ class SatelliteSuggestion(SatelliteEntry):
class Meta:
proxy = True
permissions = (('approve', 'Can approve/reject satellite suggestions'), )
permissions = (
('approve_satellitesuggestion', 'Can approve/reject satellite suggestions'),
)
class SatelliteManager(models.Manager): # pylint: disable=R0903
@ -583,7 +585,9 @@ class TransmitterSuggestion(TransmitterEntry):
class Meta:
proxy = True
permissions = (('approve', 'Can approve/reject transmitter suggestions'), )
permissions = (
('approve_transmittersuggestion', 'Can approve/reject transmitter suggestions'),
)
class TransmitterManager(models.Manager): # pylint: disable=R0903

View File

@ -219,7 +219,7 @@ def transmitter_suggestion_handler(request):
:returns: Satellite page
"""
transmitter = get_object_or_404(TransmitterSuggestion, pk=request.POST['pk'])
if request.user.has_perm('base.approve'):
if request.user.has_perm('base.approve_transmittersuggestion'):
if 'approve' in request.POST:
transmitter.approved = True
messages.success(request, ('Transmitter approved.'))

View File

@ -46,7 +46,7 @@
<a class="nav-link" id="transmitters-tab" data-toggle="tab" href="#transmitters" role="tab"
aria-controls="transmitters" aria-selected="false" aria-label="Transmitters">
<i class="nav-icon fas fa-satellite-dish"></i>
{% if perms.base.approve and satellite.transmitter_suggestion_count %}
{% if perms.base.approve_transmittersuggestion and satellite.transmitter_suggestion_count %}
<span class="badge badge-warning navbar-badge">{{ satellite.transmitter_suggestion_count }}</span>
{% elif satellite.transmitters %}
<span class="badge badge-satnogs-primary navbar-badge">{{ satellite.transmitters.count }}</span>

View File

@ -9,7 +9,7 @@
</div>
<div class="d-flex ml-auto">
{% if perms.base.approve and satellite.suggested_transmitters|length > 0 %}
{% if perms.base.approve_transmittersuggestion and satellite.suggested_transmitters|length > 0 %}
<div class="mx-1">
<span class="badge badge-warning" data-toggle="tooltip"
title="Transmitter Suggestions">{{ satellite.suggested_transmitters|length }}</span>

View File

@ -29,7 +29,7 @@
<button class="btn btn-satnogs dropdown-toggle ml-3" data-toggle="dropdown" aria-expanded="false"
id="dropdown-{{ transmitter.id }}"><i class="fas fa-bars"></i></button>
<div class="dropdown-menu" aria-labelledby="dropdown-{{ transmitter.id }}">
{% if perms.base.approve and suggestion_card %}
{% if perms.base.approve_transmittersuggestion and suggestion_card %}
<form action="{% url 'transmitter_suggestion_handler' %}" method="post"
id="transmitter_suggestion_handler-form">
{% csrf_token %}