1
0
mirror of https://github.com/django/django.git synced 2025-07-05 10:19:20 +00:00

[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
This commit is contained in:
Christopher Long 2006-07-24 23:29:35 +00:00
parent 71dad9e305
commit 8e48efbbd0
2 changed files with 7 additions and 1 deletions

View File

@ -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)

View File

@ -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