Entry 3149
object-based permissions
Submitted by anonymous
on Feb. 8, 2010 at 8:42 a.m.
Language: Python. Code size: 835 bytes.
from django.db import models from django.contrib.contenttypes import generic from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType class Permission(models.Model): class Meta: unique_together=(('user','object_id','content_t'),) ##Создадим GenericForeignKey чтобы связать объект и разрешение content_t= models.ForeignKey(ContentType,related_name='content_t') object_id = models.PositiveIntegerField() content_object = generic.GenericForeignKey('content_t', 'object_id') ##Свяжем модель с пользователем и опишем права user=models.ForeignKey(User) read=models.BooleanField('can read',default=False) write=models.BooleanField('can write',default=False) execute=models.BooleanField('can execute',default=False)
This snippet took 0.01 seconds to highlight.
Back to the Entry List or Home.