diff options
| author | Adrian Holovaty <adrian@holovaty.com> | 2005-10-23 22:43:24 +0000 |
|---|---|---|
| committer | Adrian Holovaty <adrian@holovaty.com> | 2005-10-23 22:43:24 +0000 |
| commit | c604de5a5db2cff33ad78ad8565fcb9b05e405f6 (patch) | |
| tree | 655e1a3d4332c17cfc5b7a9ddbcf858f7b418d0e /django/core | |
| parent | 43ad69e24e556c26cdefd96f84a8d06e086ff854 (diff) | |
Added 'django-admin.py installperms' command
git-svn-id: http://code.djangoproject.com/svn/django/trunk@1005 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/core')
| -rw-r--r-- | django/core/management.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/django/core/management.py b/django/core/management.py index 3b973c28da..ca94683cff 100644 --- a/django/core/management.py +++ b/django/core/management.py @@ -345,6 +345,27 @@ The full error: %s\n""" % \ install.help_doc = "Executes ``sqlall`` for the given model module name(s) in the current database." install.args = APP_ARGS +def installperms(mod): + "Installs any permissions for the given model, if needed." + from django.models.auth import permissions + from django.models.core import packages + num_added = 0 + package = packages.get_object(pk=mod._MODELS[0]._meta.app_label) + for klass in mod._MODELS: + opts = klass._meta + for codename, name in _get_all_permissions(opts): + try: + permissions.get_object(name__exact=name, codename__exact=codename, package__label__exact=package.label) + except permissions.PermissionDoesNotExist: + p = permissions.Permission(name=name, package=package, codename=codename) + p.save() + print "Added permission '%r'." % p + num_added += 1 + if not num_added: + print "No permissions were added, because all necessary permissions were already installed." +installperms.help_doc = "Installs any permissions for the given model module name(s), if needed." +installperms.args = APP_ARGS + def _start_helper(app_or_project, name, directory, other_name=''): other = {'project': 'app', 'app': 'project'}[app_or_project] if not _is_valid_dir_name(name): |
