update migrations; management command that creates default group with default perms; add new users to default group
This commit is contained in:
		
							parent
							
								
									369bbf042c
								
							
						
					
					
						commit
						020393c48b
					
				| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					from django.apps import AppConfig
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CoreConfig(AppConfig):
 | 
				
			||||||
 | 
					    name = 'core'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def ready(self):
 | 
				
			||||||
 | 
					        from django.contrib.auth.models import User
 | 
				
			||||||
 | 
					        from django.db.models.signals import post_save
 | 
				
			||||||
 | 
					        from portier.common import handlers
 | 
				
			||||||
 | 
					        post_save.connect(handlers.add_to_default_group, sender=User)
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					from django.core.management.base import BaseCommand
 | 
				
			||||||
 | 
					from django.contrib.auth.models import Group
 | 
				
			||||||
 | 
					from django.contrib.auth.models import Permission
 | 
				
			||||||
 | 
					from django.conf import settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PERMISSIONS = [
 | 
				
			||||||
 | 
					    'add_stream',
 | 
				
			||||||
 | 
					    'add_restreamconfig'
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Command(BaseCommand):
 | 
				
			||||||
 | 
					    help = 'Creates default user group with default permissions available to all users'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def handle(self, *args, **options):
 | 
				
			||||||
 | 
					        default_group, _ = Group.objects.get_or_create(name=settings.DEFAULT_GROUP)
 | 
				
			||||||
 | 
					        for permission in PERMISSIONS:
 | 
				
			||||||
 | 
					            try:
 | 
				
			||||||
 | 
					                perm = Permission.objects.get(codename=permission)
 | 
				
			||||||
 | 
					            except Permission.DoesNotExist:
 | 
				
			||||||
 | 
					                print("permission '%s' does not exist" % permission)
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            default_group.permissions.add(perm)
 | 
				
			||||||
| 
						 | 
					@ -2,6 +2,15 @@ from django.contrib.contenttypes.models import ContentType
 | 
				
			||||||
from django.db.models import Q
 | 
					from django.db.models import Q
 | 
				
			||||||
from guardian.models import UserObjectPermission
 | 
					from guardian.models import UserObjectPermission
 | 
				
			||||||
from guardian.models import GroupObjectPermission
 | 
					from guardian.models import GroupObjectPermission
 | 
				
			||||||
 | 
					from django.contrib.auth.models import User, Group
 | 
				
			||||||
 | 
					from django.conf import settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def add_to_default_group(sender, **kwargs):
 | 
				
			||||||
 | 
					    user = kwargs["instance"]
 | 
				
			||||||
 | 
					    if kwargs["created"]:
 | 
				
			||||||
 | 
					        group = Group.objects.get(name=settings.DEFAULT_GROUP)
 | 
				
			||||||
 | 
					        user.groups.add(group)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def remove_obj_perms_connected_with_user(sender, instance, **kwargs):
 | 
					def remove_obj_perms_connected_with_user(sender, instance, **kwargs):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,6 +27,8 @@ DEBUG = int(os.environ.get("DEBUG", default=0))
 | 
				
			||||||
ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS", default="*").split(" ")
 | 
					ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS", default="*").split(" ")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEFAULT_GROUP = 'default'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Application definition
 | 
					# Application definition
 | 
				
			||||||
 | 
					
 | 
				
			||||||
INSTALLED_APPS = [
 | 
					INSTALLED_APPS = [
 | 
				
			||||||
| 
						 | 
					@ -40,6 +42,7 @@ INSTALLED_APPS = [
 | 
				
			||||||
    'django_registration',
 | 
					    'django_registration',
 | 
				
			||||||
    'bootstrap4',
 | 
					    'bootstrap4',
 | 
				
			||||||
    'fa',
 | 
					    'fa',
 | 
				
			||||||
 | 
					    'core.apps.CoreConfig',
 | 
				
			||||||
    'portal.apps.PortalConfig',
 | 
					    'portal.apps.PortalConfig',
 | 
				
			||||||
    'rtmp.apps.RtmpConfig',
 | 
					    'rtmp.apps.RtmpConfig',
 | 
				
			||||||
    'concierge.apps.ConciergeConfig',
 | 
					    'concierge.apps.ConciergeConfig',
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,39 @@
 | 
				
			||||||
 | 
					# Generated by Django 3.0.5 on 2020-05-01 13:02
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.db import migrations, models
 | 
				
			||||||
 | 
					import django.db.models.deletion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Migration(migrations.Migration):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dependencies = [
 | 
				
			||||||
 | 
					        ('rtmp', '0004_auto_20200501_1302'),
 | 
				
			||||||
 | 
					        ('restream', '0001_initial'),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    operations = [
 | 
				
			||||||
 | 
					        migrations.AlterModelOptions(
 | 
				
			||||||
 | 
					            name='restreamconfig',
 | 
				
			||||||
 | 
					            options={'verbose_name': 'restreamconfig_verbose_name', 'verbose_name_plural': 'restreamconfig_verbose_name_plural'},
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='restreamconfig',
 | 
				
			||||||
 | 
					            name='active',
 | 
				
			||||||
 | 
					            field=models.BooleanField(help_text='restreamconfig_activate_help'),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='restreamconfig',
 | 
				
			||||||
 | 
					            name='name',
 | 
				
			||||||
 | 
					            field=models.CharField(help_text='restreamconfig_name_help', max_length=100),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='restreamconfig',
 | 
				
			||||||
 | 
					            name='stream',
 | 
				
			||||||
 | 
					            field=models.ForeignKey(help_text='restreamconfig_stream_help', on_delete=django.db.models.deletion.CASCADE, to='rtmp.Stream'),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='restreamconfig',
 | 
				
			||||||
 | 
					            name='target',
 | 
				
			||||||
 | 
					            field=models.CharField(help_text='restreamconfig_target_help', max_length=500),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,34 @@
 | 
				
			||||||
 | 
					# Generated by Django 3.0.5 on 2020-05-01 13:02
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.db import migrations, models
 | 
				
			||||||
 | 
					import django.db.models.deletion
 | 
				
			||||||
 | 
					import uuid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Migration(migrations.Migration):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dependencies = [
 | 
				
			||||||
 | 
					        ('rtmp', '0003_auto_20200426_1834'),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    operations = [
 | 
				
			||||||
 | 
					        migrations.AlterModelOptions(
 | 
				
			||||||
 | 
					            name='application',
 | 
				
			||||||
 | 
					            options={'verbose_name': 'application_verbose_name', 'verbose_name_plural': 'application_verbose_name_plural'},
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='stream',
 | 
				
			||||||
 | 
					            name='application',
 | 
				
			||||||
 | 
					            field=models.ForeignKey(help_text='stream_application_help', on_delete=django.db.models.deletion.CASCADE, to='rtmp.Application'),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='stream',
 | 
				
			||||||
 | 
					            name='name',
 | 
				
			||||||
 | 
					            field=models.CharField(help_text='stream_name_help', max_length=100),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='stream',
 | 
				
			||||||
 | 
					            name='stream',
 | 
				
			||||||
 | 
					            field=models.UUIDField(default=uuid.uuid4, help_text='stream_stream_help', unique=True),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
		Loading…
	
		Reference in New Issue