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.

Delete this entry (admin only).