From 8e48efbbd09685f04856bf448d37c4b7a84e8548 Mon Sep 17 00:00:00 2001 From: Christopher Long Date: Mon, 24 Jul 2006 23:29:35 +0000 Subject: [PATCH] [per-object-permissions] django.db.models.base now adds the row level permission relation when enabled using the meta class [per-object-permissions] django.db.models.options contains the row level permission option for the meta class, by default the option is false (not enabled) git-svn-id: http://code.djangoproject.com/svn/django/branches/per-object-permissions@3441 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/db/models/base.py | 5 +++++ django/db/models/options.py | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/django/db/models/base.py b/django/db/models/base.py index c89033c491..2ea7f65ab2 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -62,6 +62,11 @@ class ModelBase(type): except FieldDoesNotExist: field.contribute_to_class(new_class, field.name) + if getattr(new_class._meta, 'row_level_permissions', None): + from django.contrib.auth.models import RowLevelPermission + gen_rel = django.db.models.GenericRelation(RowLevelPermission, object_id_field="type_id", content_type_field="type_ct") + new_class.add_to_class("row_level_permissions", gen_rel) + new_class._prepare() register_models(new_class._meta.app_label, new_class) diff --git a/django/db/models/options.py b/django/db/models/options.py index ff0d112d16..e96afac16a 100644 --- a/django/db/models/options.py +++ b/django/db/models/options.py @@ -13,7 +13,7 @@ get_verbose_name = lambda class_name: re.sub('(((?<=[a-z])[A-Z])|([A-Z](?![A-Z]| DEFAULT_NAMES = ('verbose_name', 'db_table', 'ordering', 'unique_together', 'permissions', 'get_latest_by', - 'order_with_respect_to', 'app_label') + 'order_with_respect_to', 'app_label', 'row_level_permissions') class Options(object): def __init__(self, meta): @@ -33,6 +33,7 @@ class Options(object): self.has_auto_field = False self.one_to_one_field = None self.parents = [] + self.row_level_permissions = False def contribute_to_class(self, cls, name): cls._meta = self