Separate aprrove permission for satellite and transmitter
Signed-off-by: Alfredos-Panagiotis Damkalis <fredy@fredy.gr>spacecruft
parent
418fe5ab3d
commit
2f11e6b8e8
|
@ -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'),)},
|
||||
),
|
||||
]
|
|
@ -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),
|
||||
]
|
|
@ -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
|
||||
|
|
|
@ -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.'))
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 %}
|
||||
|
|
Loading…
Reference in New Issue