Commit 06995832 by Clinton Blackburn

Added row-level permissions to Catalog model

ECOM-3973
parent 87708bf6
from django.contrib import admin from django.contrib import admin
from guardian.admin import GuardedModelAdmin
from course_discovery.apps.catalogs.models import Catalog from course_discovery.apps.catalogs.models import Catalog
@admin.register(Catalog) @admin.register(Catalog)
class CatalogAdmin(admin.ModelAdmin): class CatalogAdmin(GuardedModelAdmin):
list_display = ('name',) list_display = ('name',)
readonly_fields = ('created', 'modified',) readonly_fields = ('created', 'modified',)
......
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('catalogs', '0001_initial'),
]
operations = [
migrations.AlterModelOptions(
name='catalog',
options={'ordering': ('-modified', '-created'), 'permissions': (('view_catalog', 'Can view catalog'),), 'get_latest_by': 'modified'},
),
]
...@@ -47,3 +47,9 @@ class Catalog(TimeStampedModel): ...@@ -47,3 +47,9 @@ class Catalog(TimeStampedModel):
contains[result.get_stored_fields()['key']] = True contains[result.get_stored_fields()['key']] = True
return contains return contains
class Meta(TimeStampedModel.Meta):
abstract = False
permissions = (
('view_catalog', 'Can view catalog'),
)
...@@ -3,9 +3,10 @@ ...@@ -3,9 +3,10 @@
from django.contrib.auth.models import AbstractUser from django.contrib.auth.models import AbstractUser
from django.db import models from django.db import models
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from guardian.mixins import GuardianUserMixin
class User(AbstractUser): class User(GuardianUserMixin, AbstractUser):
"""Custom user model for use with OpenID Connect.""" """Custom user model for use with OpenID Connect."""
full_name = models.CharField(_('Full Name'), max_length=255, blank=True, null=True) full_name = models.CharField(_('Full Name'), max_length=255, blank=True, null=True)
......
...@@ -36,6 +36,7 @@ THIRD_PARTY_APPS = ( ...@@ -36,6 +36,7 @@ THIRD_PARTY_APPS = (
'sortedm2m', 'sortedm2m',
'simple_history', 'simple_history',
'haystack', 'haystack',
'guardian',
) )
PROJECT_APPS = ( PROJECT_APPS = (
...@@ -166,8 +167,13 @@ AUTH_USER_MODEL = 'core.User' ...@@ -166,8 +167,13 @@ AUTH_USER_MODEL = 'core.User'
AUTHENTICATION_BACKENDS = ( AUTHENTICATION_BACKENDS = (
'auth_backends.backends.EdXOpenIdConnect', 'auth_backends.backends.EdXOpenIdConnect',
'django.contrib.auth.backends.ModelBackend', 'django.contrib.auth.backends.ModelBackend',
'guardian.backends.ObjectPermissionBackend',
) )
# Guardian settings
ANONYMOUS_USER_NAME = None # Do not allow anonymous user access
GUARDIAN_MONKEY_PATCH = False # Use the mixin on the User model instead of monkey-patching.
ENABLE_AUTO_AUTH = False ENABLE_AUTO_AUTH = False
AUTO_AUTH_USERNAME_PREFIX = 'auto_auth_' AUTO_AUTH_USERNAME_PREFIX = 'auto_auth_'
......
django==1.8.7 django==1.8.7
django-extensions==1.5.9 django-extensions==1.5.9
django-guardian==1.4.2
django-haystack==2.4.1 django-haystack==2.4.1
django-simple-history==1.8.1 django-simple-history==1.8.1
django-sortedm2m==1.1.1 django-sortedm2m==1.1.1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment