summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/db/models/base.py5
-rw-r--r--django/db/models/options.py3
2 files changed, 7 insertions, 1 deletions
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