Esempio n. 1
0
def run_migration(apps, schema_editor):
    Role = apps.get_model('weblate_auth', 'Role')
    Group = apps.get_model('weblate_auth', 'Group')
    GroupACL = apps.get_model('permissions', 'GroupACL')
    Language = apps.get_model('lang', 'Language')

    # Bring group definitions up to date
    # Either creates them (on fresh install) or sets
    # default roles for migrated ones
    migrate_groups(Group, Role, update=True)

    # Remove possible old template groups which are no longer
    # used
    Group.objects.filter(name__startswith='@').delete()

    # Adjust roles for migrated groups
    for group in Group.objects.filter(name__contains='@'):
        name = group.name.split('@', 1)[1]
        if name not in ACL_GROUPS:
            continue
        group.roles.set(
            Role.objects.filter(name=ACL_GROUPS[name]),
        )
        for groupacl in GroupACL.objects.filter(groups=group.id):
            if groupacl.project:
                group.projects.add(groupacl.project)
        group.internal = True
        group.save(update_fields=['internal'])

    # Apply all languages selector
    for group in Group.objects.all():
        group.languages.set(Language.objects.all())
Esempio n. 2
0
def run_migration(apps, schema_editor):
    Role = apps.get_model('weblate_auth', 'Role')
    Group = apps.get_model('weblate_auth', 'Group')
    GroupACL = apps.get_model('permissions', 'GroupACL')
    Language = apps.get_model('lang', 'Language')

    # Bring group definitions up to date
    # Either creates them (on fresh install) or sets
    # default roles for migrated ones
    migrate_groups(Group, Role, update=True)

    # Remove possible old template groups which are no longer
    # used
    Group.objects.filter(name__startswith='@').delete()

    # Adjust roles for migrated groups
    for group in Group.objects.filter(name__contains='@'):
        name = group.name.split('@', 1)[1]
        if name not in ACL_GROUPS:
            continue
        group.roles.set(Role.objects.filter(name=ACL_GROUPS[name]), )
        for groupacl in GroupACL.objects.filter(groups=group.id):
            if groupacl.project:
                group.projects.add(groupacl.project)
        group.internal = True
        group.save(update_fields=['internal'])

    # Apply all languages selector
    for group in Group.objects.all():
        group.languages.set(Language.objects.all())
Esempio n. 3
0
def create_groups(update):
    """Creates standard groups and gives them permissions."""

    # Create permissions and roles
    migrate_permissions(Permission)
    migrate_roles(Role, Permission)
    migrate_groups(Group, Role, update)

    # Create anonymous user
    create_anonymous(User, Group, update)

    # Automatic assignment to the users group
    group = Group.objects.get(name='Users')
    if not AutoGroup.objects.filter(group=group).exists():
        AutoGroup.objects.create(group=group, match='^.*$')
    group = Group.objects.get(name='Viewers')
    if not AutoGroup.objects.filter(group=group).exists():
        AutoGroup.objects.create(group=group, match='^.*$')
Esempio n. 4
0
def create_groups(update):
    """Creates standard groups and gives them permissions."""

    # Create permissions and roles
    migrate_permissions(Permission)
    migrate_roles(Role, Permission)
    migrate_groups(Group, Role, update)

    # Create anonymous user
    create_anonymous(User, Group, update)

    # Automatic assignment to the users group
    group = Group.objects.get(name='Users')
    if not AutoGroup.objects.filter(group=group).exists():
        AutoGroup.objects.create(group=group, match='^.*$')
    group = Group.objects.get(name='Viewers')
    if not AutoGroup.objects.filter(group=group).exists():
        AutoGroup.objects.create(group=group, match='^.*$')
Esempio n. 5
0
def create_groups(update):
    """Creates standard groups and gives them permissions."""
    # Create permissions and roles
    migrate_permissions(Permission)
    new_roles = migrate_roles(Role, Permission)
    migrate_groups(Group, Role, update)

    # Create anonymous user
    create_anonymous(User, Group, update)

    # Automatic assignment to the users group
    group = Group.objects.get(name="Users")
    if not AutoGroup.objects.filter(group=group).exists():
        AutoGroup.objects.create(group=group, match="^.*$")
    group = Group.objects.get(name="Viewers")
    if not AutoGroup.objects.filter(group=group).exists():
        AutoGroup.objects.create(group=group, match="^.*$")

    # Create new per project groups
    if new_roles:
        for project in Project.objects.iterator():
            project.save()