Skip to content

Commit cf2a198

Browse files
committed
Create a yangcatalog support group and populate its initial roles. Commit ready for merge.
- Legacy-Id: 18502
1 parent 1b90193 commit cf2a198

1 file changed

Lines changed: 70 additions & 0 deletions

File tree

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Copyright The IETF Trust 2020 All Rights Reserved
2+
3+
from django.db import migrations
4+
5+
def forward(apps, schema_editor):
6+
RoleName = apps.get_model('name','RoleName')
7+
Group = apps.get_model('group','Group')
8+
Role = apps.get_model('group','Role')
9+
Person = apps.get_model('person','Person')
10+
11+
RoleName.objects.create(
12+
slug = 'yc_operator',
13+
name = 'YangCatalog Operator',
14+
desc = 'Can grant user api rights and browse the YangCatalog directory structure',
15+
)
16+
17+
ycsupport = Group.objects.create(
18+
acronym='ycsupport',
19+
name="YangCatalog Support",
20+
state_id='active',
21+
type_id='team',
22+
parent = Group.objects.get(acronym='ops'),
23+
description = "Team for supporting YangCatalog.org operations",
24+
)
25+
26+
RoleName.objects.create(
27+
slug = 'yc_admin',
28+
name = 'YangCatalog Administrator',
29+
desc = 'Can operate the YangCatalog, change its configuration, and edit its data',
30+
)
31+
32+
for name,role_name_id in (
33+
('Robert Sparks','yc_operator'),
34+
('Benoit Claise','yc_operator'),
35+
('Eric Vyncke','yc_operator'),
36+
('Miroslav Kovac','yc_admin'),
37+
('Slavomir Mazur','yc_admin'),
38+
):
39+
person = Person.objects.get(name=name)
40+
email = person.email_set.filter(primary=True).first()
41+
if not email:
42+
email = person.email_set.filter(active=True).order_by("-time").first()
43+
Role.objects.create(
44+
name_id = role_name_id,
45+
group = ycsupport,
46+
person = person,
47+
email = email,
48+
)
49+
50+
def reverse(apps, schema_editor):
51+
RoleName = apps.get_model('name','RoleName')
52+
Group = apps.get_model('group','Group')
53+
Role = apps.get_model('group','Role')
54+
55+
Role.objects.filter(name_id__in = ( 'yc_operator' , 'yc_admin' )).delete()
56+
Group.objects.filter(acronym='ycsupport').delete()
57+
RoleName.objects.filter(slug__in=( 'yc_operator' , 'yc_admin' )).delete()
58+
59+
60+
class Migration(migrations.Migration):
61+
62+
dependencies = [
63+
('group', '0036_orgs_vs_repos'),
64+
('name', '0020_add_rescheduled_session_name'),
65+
('person','0016_auto_20200807_0750'),
66+
]
67+
68+
operations = [
69+
migrations.RunPython(forward, reverse),
70+
]

0 commit comments

Comments
 (0)