From 3724b94e4ada60367ab1d1dedcfcb462c612e8d5 Mon Sep 17 00:00:00 2001 From: Daan Sprenkels Date: Tue, 9 Jun 2020 17:36:12 +0200 Subject: [PATCH] Add 'unlimited_queue_length' permission The 'unlimited_queue_length' permission allows a user to queue songs without being restricted by the 45-minute queue length. --- .../0009_unlimited_queue_length_perm.py | 17 +++++++++++++++++ marietje/queues/models.py | 3 ++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 marietje/queues/migrations/0009_unlimited_queue_length_perm.py diff --git a/marietje/queues/migrations/0009_unlimited_queue_length_perm.py b/marietje/queues/migrations/0009_unlimited_queue_length_perm.py new file mode 100644 index 0000000..7bede28 --- /dev/null +++ b/marietje/queues/migrations/0009_unlimited_queue_length_perm.py @@ -0,0 +1,17 @@ +# Generated by Django 2.2.13 on 2020-06-09 15:24 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('queues', '0008_remove_queuecommand_executed'), + ] + + operations = [ + migrations.AlterModelOptions( + name='queue', + options={'permissions': (('can_skip', 'Can skip the currently playing song'), ('can_move', 'Can move all songs in the queue'), ('can_cancel', 'Can cancel all songs in the queue'), ('can_control_volume', 'Can control the volume of Marietje'), ('unlimited_queue_length', 'Is unlimited by maximum queue length'))}, + ), + ] diff --git a/marietje/queues/models.py b/marietje/queues/models.py index 962512b..e7ac8a7 100644 --- a/marietje/queues/models.py +++ b/marietje/queues/models.py @@ -64,6 +64,7 @@ class Queue(models.Model): ('can_move', 'Can move all songs in the queue'), ('can_cancel', 'Can cancel all songs in the queue'), ('can_control_volume', 'Can control the volume of Marietje'), + ('unlimited_queue_length', 'Is unlimited by maximum queue length'), ) name = models.TextField() @@ -111,7 +112,7 @@ class Queue(models.Model): return songs[1:] def request(self, song, user): - if not user.is_superuser: + if not user.has_perm('unlimited_queue_length'): playlist_songs = PlaylistSong.objects.filter(playlist=self.playlist, state=0).order_by('id') seconds_in_a_row = sum(ps.song.duration for ps in playlist_songs if ps.user == user)