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:
parent
71dad9e305
commit
8e48efbbd0
@ -62,6 +62,11 @@ class ModelBase(type):
|
|||||||
except FieldDoesNotExist:
|
except FieldDoesNotExist:
|
||||||
field.contribute_to_class(new_class, field.name)
|
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()
|
new_class._prepare()
|
||||||
|
|
||||||
register_models(new_class._meta.app_label, new_class)
|
register_models(new_class._meta.app_label, new_class)
|
||||||
|
@ -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',
|
DEFAULT_NAMES = ('verbose_name', 'db_table', 'ordering',
|
||||||
'unique_together', 'permissions', 'get_latest_by',
|
'unique_together', 'permissions', 'get_latest_by',
|
||||||
'order_with_respect_to', 'app_label')
|
'order_with_respect_to', 'app_label', 'row_level_permissions')
|
||||||
|
|
||||||
class Options(object):
|
class Options(object):
|
||||||
def __init__(self, meta):
|
def __init__(self, meta):
|
||||||
@ -33,6 +33,7 @@ class Options(object):
|
|||||||
self.has_auto_field = False
|
self.has_auto_field = False
|
||||||
self.one_to_one_field = None
|
self.one_to_one_field = None
|
||||||
self.parents = []
|
self.parents = []
|
||||||
|
self.row_level_permissions = False
|
||||||
|
|
||||||
def contribute_to_class(self, cls, name):
|
def contribute_to_class(self, cls, name):
|
||||||
cls._meta = self
|
cls._meta = self
|
||||||
|
Loading…
x
Reference in New Issue
Block a user