Updates to handle custom user model change from Django 1.5

This commit is contained in:
Travis Chase 2013-06-11 17:26:41 -05:00
parent 9d8594117d
commit 5a2ea092e6
6 changed files with 33 additions and 5 deletions

1
.gitignore vendored
View file

@ -2,3 +2,4 @@
*.egg-info
*.sql
docs/build/*
.DS_Store

View file

@ -1,11 +1,16 @@
from django import forms
from django.utils.translation import ugettext_lazy as _
from django.contrib.contenttypes.models import ContentType
from django.contrib.auth.models import User, Group
from django.contrib.auth.models import Group
from django.utils.safestring import mark_safe
from authority import permissions, get_choices_for
from authority.models import Permission
from authority.utils import get_user_class
User = get_user_class()
class BasePermissionForm(forms.ModelForm):
codename = forms.CharField(label=_('Permission'))

View file

@ -1,4 +1,5 @@
from datetime import datetime
from django.conf import settings
from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
@ -7,6 +8,10 @@ from django.utils.translation import ugettext_lazy as _
from authority.managers import PermissionManager
USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')
class Permission(models.Model):
"""
A granular permission model, per-object permission in other words.
@ -18,9 +23,9 @@ class Permission(models.Model):
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
user = models.ForeignKey(User, null=True, blank=True, related_name='granted_permissions')
user = models.ForeignKey(USER_MODEL, null=True, blank=True, related_name='granted_permissions')
group = models.ForeignKey(Group, null=True, blank=True)
creator = models.ForeignKey(User, null=True, blank=True, related_name='created_permissions')
creator = models.ForeignKey(USER_MODEL, null=True, blank=True, related_name='created_permissions')
approved = models.BooleanField(_('approved'), default=False, help_text=_("Designates whether the permission has been approved and treated as active. Unselect this instead of deleting permissions."))

View file

@ -1,16 +1,21 @@
from django import template
from django.core.urlresolvers import reverse
from django.core.exceptions import ImproperlyConfigured
from django.contrib.auth.models import User, AnonymousUser
from django.contrib.auth.models import AnonymousUser
from django.core.urlresolvers import reverse
from authority import get_check
from authority import permissions
from authority.models import Permission
from authority.forms import UserPermissionForm
from authority.utils import get_user_class
register = template.Library()
User = get_user_class()
@register.simple_tag
def url_for_obj(view_name, obj):
return reverse(view_name, kwargs={

View file

@ -1,6 +1,6 @@
from django.conf import settings
from django.contrib.auth.models import Permission as DjangoPermission
from django.contrib.auth.models import User, Group
from django.contrib.auth.models import Group
from django.test import TestCase
from django.contrib.contenttypes.models import ContentType
@ -8,6 +8,10 @@ import authority
from authority import permissions
from authority.models import Permission
from authority.exceptions import NotAModel, UnsavedModelInstance
from authority.utils import get_user_class
User = get_user_class()
class UserPermission(permissions.BasePermission):

8
authority/utils.py Normal file
View file

@ -0,0 +1,8 @@
from django.contrib import auth
def get_user_class():
if hasattr(auth, "get_user_model"):
return auth.get_user_model()
else:
return auth.models.User