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)