mirror of
				https://github.com/retspen/webvirtcloud
				synced 2025-07-31 12:41:08 +00:00 
			
		
		
		
	Added 'instances:clone_instances' permission
Replaces 'can_clone_instances' user attribute
This commit is contained in:
		
							parent
							
								
									a62daad87b
								
							
						
					
					
						commit
						3d0493537f
					
				
					 7 changed files with 127 additions and 30 deletions
				
			
		
							
								
								
									
										24
									
								
								instances/migrations/0002_permissionset.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								instances/migrations/0002_permissionset.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,24 @@
 | 
			
		|||
# Generated by Django 2.2.12 on 2020-05-27 07:01
 | 
			
		||||
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ('instances', '0001_initial'),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name='PermissionSet',
 | 
			
		||||
            fields=[
 | 
			
		||||
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
 | 
			
		||||
            ],
 | 
			
		||||
            options={
 | 
			
		||||
                'permissions': (('clone_instances', 'Can clone instances'),),
 | 
			
		||||
                'managed': False,
 | 
			
		||||
                'default_permissions': (),
 | 
			
		||||
            },
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
							
								
								
									
										35
									
								
								instances/migrations/0003_migrate_can_clone_instances.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								instances/migrations/0003_migrate_can_clone_instances.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,35 @@
 | 
			
		|||
from django.db import migrations
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def migrate_can_clone_instances(apps, schema_editor):
 | 
			
		||||
    from django.contrib.auth.models import User, Permission
 | 
			
		||||
    user: User
 | 
			
		||||
    users = User.objects.all()
 | 
			
		||||
 | 
			
		||||
    permission = Permission.objects.get(codename='clone_instances')
 | 
			
		||||
 | 
			
		||||
    for user in users:
 | 
			
		||||
        if user.userattributes.can_clone_instances:
 | 
			
		||||
            user.user_permissions.add(permission)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def reverse_can_clone_instances(apps, schema_editor):
 | 
			
		||||
    from django.contrib.auth.models import User, Permission
 | 
			
		||||
    user: User
 | 
			
		||||
    users = User.objects.all()
 | 
			
		||||
 | 
			
		||||
    permission = Permission.objects.get(codename='clone_instances')
 | 
			
		||||
 | 
			
		||||
    for user in users:
 | 
			
		||||
        user.user_permissions.remove(permission)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ('instances', '0002_permissionset'),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.RunPython(migrate_can_clone_instances, reverse_can_clone_instances),
 | 
			
		||||
    ]
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,7 @@
 | 
			
		|||
from django.db.models import Model, ForeignKey, CharField, BooleanField, DateField, CASCADE
 | 
			
		||||
from django.db.models import (CASCADE, BooleanField, CharField, DateField,
 | 
			
		||||
                              ForeignKey, Model)
 | 
			
		||||
from django.utils.translation import ugettext_lazy as _
 | 
			
		||||
 | 
			
		||||
from computes.models import Compute
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -11,3 +14,15 @@ class Instance(Model):
 | 
			
		|||
 | 
			
		||||
    def __unicode__(self):
 | 
			
		||||
        return self.name
 | 
			
		||||
 | 
			
		||||
class PermissionSet(Model):
 | 
			
		||||
    """
 | 
			
		||||
    Dummy model for holding set of permissions we need to be automatically added by Django
 | 
			
		||||
    """
 | 
			
		||||
    class Meta:
 | 
			
		||||
        default_permissions = ()
 | 
			
		||||
        permissions = (
 | 
			
		||||
            ('clone_instances', _('Can clone instances')),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        managed = False
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue