0001-define-allowed-services-m2m-for-user-profile-types-6.patch
src/authentic2/custom_user/migrations/0030_auto_20220222_1028.py | ||
---|---|---|
1 |
# Generated by Django 2.2.24 on 2022-02-22 09:28 |
|
2 | ||
3 |
import django.db.models.deletion |
|
4 |
from django.db import migrations, models |
|
5 | ||
6 | ||
7 |
class Migration(migrations.Migration): |
|
8 | ||
9 |
dependencies = [ |
|
10 |
('authentic2', '0035_service_home_url'), |
|
11 |
('custom_user', '0029_profile_profiletype'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.CreateModel( |
|
16 |
name='ServiceProfileType', |
|
17 |
fields=[ |
|
18 |
( |
|
19 |
'id', |
|
20 |
models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), |
|
21 |
), |
|
22 |
( |
|
23 |
'profile_type', |
|
24 |
models.ForeignKey( |
|
25 |
on_delete=django.db.models.deletion.CASCADE, to='custom_user.ProfileType' |
|
26 |
), |
|
27 |
), |
|
28 |
( |
|
29 |
'service', |
|
30 |
models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='authentic2.Service'), |
|
31 |
), |
|
32 |
], |
|
33 |
options={ |
|
34 |
'unique_together': {('service', 'profile_type')}, |
|
35 |
}, |
|
36 |
), |
|
37 |
migrations.AddField( |
|
38 |
model_name='profiletype', |
|
39 |
name='allowed_services', |
|
40 |
field=models.ManyToManyField( |
|
41 |
blank=True, |
|
42 |
through='custom_user.ServiceProfileType', |
|
43 |
to='authentic2.Service', |
|
44 |
related_name='authorized_profile_types', |
|
45 |
verbose_name='allowed services for this profile type', |
|
46 |
), |
|
47 |
), |
|
48 |
] |
src/authentic2/custom_user/models.py | ||
---|---|---|
485 | 485 |
name = models.CharField(max_length=128, verbose_name=_('name')) |
486 | 486 |
slug = models.SlugField(verbose_name=_('slug'), max_length=256, unique=True) |
487 | 487 | |
488 |
allowed_services = models.ManyToManyField( |
|
489 |
to=Service, |
|
490 |
verbose_name=_('allowed services for this profile type'), |
|
491 |
through='ServiceProfileType', |
|
492 |
through_fields=('profile_type', 'service'), |
|
493 |
blank=True, |
|
494 |
related_name='authorized_profile_types', |
|
495 |
) |
|
496 | ||
488 | 497 |
def save(self, *args, **kwargs): |
489 | 498 |
if not self.slug: |
490 | 499 |
self.slug = generate_slug(self.name) |
... | ... | |
518 | 527 |
verbose_name = _('profile') |
519 | 528 |
verbose_name_plural = _('profiles') |
520 | 529 |
ordering = ('user', 'profile_type') |
530 | ||
531 | ||
532 |
class ServiceProfileType(models.Model): |
|
533 |
service = models.ForeignKey(Service, on_delete=models.CASCADE) |
|
534 |
profile_type = models.ForeignKey(ProfileType, on_delete=models.CASCADE) |
|
535 | ||
536 |
class Meta: |
|
537 |
unique_together = (('service', 'profile_type'),) |
|
521 |
- |