Skip to content

Instantly share code, notes, and snippets.

@njamaleddine
Last active October 27, 2015 20:02
Show Gist options
  • Select an option

  • Save njamaleddine/581166049e017ee5a6ac to your computer and use it in GitHub Desktop.

Select an option

Save njamaleddine/581166049e017ee5a6ac to your computer and use it in GitHub Desktop.
Django Permissions Migration
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations
def initialize_admin_group_permissions(apps, schema_editor):
"""
Set up Admin users to have access to have read/write access for
certain objects
"""
Post = apps.get_model('posts', 'Post') # noqa
Comment = apps.get_model('posts', 'Comment') # noqa
Photo = apps.get_model('posts', 'Photo') # noqa
Video = apps.get_model('posts', 'Video') # noqa
ContentType = apps.get_model('contenttypes', 'ContentType') # noqa
Group = apps.get_model('auth', 'Group') # noqa
# Gather all permissions
post_permissions = ContentType.objects.get_for_model(Post).permission_set.all()
comment_permissions = ContentType.objects.get_for_model(Comment).permission_set.all()
photo_permissions = ContentType.objects.get_for_model(Photo).permission_set.all()
video_permissions = ContentType.objects.get_for_model(Video).permission_set.all()
moderator_group, created = Group.objects.get_or_create(name='Moderators')
moderator_group.permissions.add(*story_permissions)
moderator_group.permissions.add(*comment_permissions)
moderator_group.permissions.add(*tag_permissions)
moderator_group.permissions.add(*photo_permissions)
moderator_group.permissions.add(*video_permissions)
moderator_group.save()
class Migration(migrations.Migration):
dependencies = [
('users', '0007_auto_20151021_1505'),
]
operations = [
migrations.RunPython(initialize_admin_group_permissions)
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment