From 94c5bda1c13960f8626b3c8e8ec47d9e3005f792 Mon Sep 17 00:00:00 2001
From: Dan McGee <dan@archlinux.org>
Date: Mon, 5 Dec 2011 23:10:44 -0600
Subject: Add a stub admin command to help fix permissions/content types

I needed this today to get the application working from scratch on
another host.  Probably not all there yet, but we'll see how far it gets
us.

Signed-off-by: Dan McGee <dan@archlinux.org>
---
 .../commands/update_types_permissions.py           | 25 ++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 devel/management/commands/update_types_permissions.py

(limited to 'devel/management')

diff --git a/devel/management/commands/update_types_permissions.py b/devel/management/commands/update_types_permissions.py
new file mode 100644
index 00000000..bbe8dc47
--- /dev/null
+++ b/devel/management/commands/update_types_permissions.py
@@ -0,0 +1,25 @@
+from django.core.management.base import BaseCommand
+from django.db.models import get_models, get_app
+from django.contrib.auth.management import create_permissions
+from django.contrib.contenttypes.management import update_contenttypes
+
+
+class Command(BaseCommand):
+    args = '<app app ...>'
+    help = 'reloads permissions for specified apps, or all apps if no args are specified'
+
+    def handle(self, *args, **options):
+        if not args:
+            apps = []
+            for model in get_models():
+                apps.append(get_app(model._meta.app_label))
+        else:
+            apps = []
+            for arg in args:
+                apps.append(get_app(arg))
+
+        for app in apps:
+            update_contenttypes(app, None, options.get('verbosity', 2), interactive=True)
+            create_permissions(app, get_models(), options.get('verbosity', 0))
+
+# vim: set ts=4 sw=4 et:
-- 
cgit v1.2.3-54-g00ecf