kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
29 wiersze
903 B
Python
29 wiersze
903 B
Python
"""
|
|
Convert django permissions to user permissions in the database,
|
|
following the work done in #152.
|
|
"""
|
|
from django.contrib.auth.models import Permission
|
|
from django.db.models import Q
|
|
|
|
from funkwhale_api.users import models
|
|
|
|
mapping = {
|
|
"dynamic_preferences.change_globalpreferencemodel": "settings",
|
|
"music.add_importbatch": "library",
|
|
}
|
|
|
|
|
|
def main(command, **kwargs):
|
|
for codename, user_permission in sorted(mapping.items()):
|
|
app_label, c = codename.split(".")
|
|
p = Permission.objects.get(content_type__app_label=app_label, codename=c)
|
|
users = models.User.objects.filter(
|
|
Q(groups__permissions=p) | Q(user_permissions=p)
|
|
).distinct()
|
|
total = users.count()
|
|
|
|
command.stdout.write(
|
|
f"Updating {total} users with {user_permission} permission..."
|
|
)
|
|
users.update(**{f"permission_{user_permission}": True})
|