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