1
0
Fork 0
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:
Real-Gecko 2020-05-28 11:20:23 +06:00
parent a62daad87b
commit 3d0493537f
7 changed files with 127 additions and 30 deletions

View 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': (),
},
),
]

View 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),
]

View file

@ -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