add AccessPermission modeling
This commit is contained in:
parent
0ce6ca9202
commit
7c44a9d74f
2 changed files with 70 additions and 1 deletions
54
src/c3nav/mapdata/migrations/0040_access_permissions.py
Normal file
54
src/c3nav/mapdata/migrations/0040_access_permissions.py
Normal file
|
@ -0,0 +1,54 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.6 on 2017-10-24 20:12
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('mapdata', '0039_auto_20171024_2011'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='AccessPermission',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('expire_date', models.DateTimeField(null=True, verbose_name='expires')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Access Permission',
|
||||
'verbose_name_plural': 'Access Permissions',
|
||||
'default_related_name': 'accesspermissions',
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='accessrestriction',
|
||||
name='open',
|
||||
field=models.BooleanField(default=False, verbose_name='open'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='accesspermission',
|
||||
name='access_restriction',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='accesspermissions', to='mapdata.AccessRestriction'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='accesspermission',
|
||||
name='user',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='accesspermissions', to=settings.AUTH_USER_MODEL),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='accessrestriction',
|
||||
name='users',
|
||||
field=models.ManyToManyField(related_name='accessrestrictions', through='mapdata.AccessPermission', to=settings.AUTH_USER_MODEL),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='accesspermission',
|
||||
unique_together=set([('user', 'access_restriction')]),
|
||||
),
|
||||
]
|
|
@ -1,3 +1,4 @@
|
|||
from django.conf import settings
|
||||
from django.db import models
|
||||
from django.db.models import Q
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
@ -7,8 +8,10 @@ from c3nav.mapdata.models.base import SerializableMixin, TitledMixin
|
|||
|
||||
class AccessRestriction(TitledMixin, models.Model):
|
||||
"""
|
||||
An access restriction, currently without finetuning
|
||||
An access restriction
|
||||
"""
|
||||
users = models.ManyToManyField(settings.AUTH_USER_MODEL, through='AccessPermission')
|
||||
open = models.BooleanField(default=False, verbose_name=_('open'))
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Access Restriction')
|
||||
|
@ -22,6 +25,18 @@ class AccessRestriction(TitledMixin, models.Model):
|
|||
return cls.objects.none()
|
||||
|
||||
|
||||
class AccessPermission(models.Model):
|
||||
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
|
||||
access_restriction = models.ForeignKey(AccessRestriction, on_delete=models.CASCADE)
|
||||
expire_date = models.DateTimeField(null=True, verbose_name=_('expires'))
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Access Permission')
|
||||
verbose_name_plural = _('Access Permissions')
|
||||
default_related_name = 'accesspermissions'
|
||||
unique_together = (('user', 'access_restriction'), )
|
||||
|
||||
|
||||
class AccessRestrictionMixin(SerializableMixin, models.Model):
|
||||
access_restriction = models.ForeignKey(AccessRestriction, null=True, blank=True,
|
||||
verbose_name=_('Access Restriction'))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue