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())
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())
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='^.*$')
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()