From ddd36206bc7a403b2ba43de7b4c43d5bf6466399 Mon Sep 17 00:00:00 2001 From: markotibold Date: Sat, 25 Jun 2011 13:08:46 +0200 Subject: [PATCH 1/9] Added a fixture so that the users default have a user to login with and play with permissions. --- .../permissionsexample/fixtures/initial_data.yaml | 12 ++++++++++++ examples/permissionsexample/models.py | 1 + examples/permissionsexample/urls.py | 2 +- examples/requirements.txt | 1 + examples/settings.py | 7 +++++++ 5 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 examples/permissionsexample/fixtures/initial_data.yaml create mode 100644 examples/permissionsexample/models.py diff --git a/examples/permissionsexample/fixtures/initial_data.yaml b/examples/permissionsexample/fixtures/initial_data.yaml new file mode 100644 index 000000000..22276ec2b --- /dev/null +++ b/examples/permissionsexample/fixtures/initial_data.yaml @@ -0,0 +1,12 @@ +- fields: + first_name: '' + groups: [] + is_active: true + is_staff: true + is_superuser: true + last_name: '' + password: sha1$b3dff$671b4ab97f2714446da32670d27576614e176758 + user_permissions: [] + username: test + model: auth.user + pk: 2 diff --git a/examples/permissionsexample/models.py b/examples/permissionsexample/models.py new file mode 100644 index 000000000..232085ad3 --- /dev/null +++ b/examples/permissionsexample/models.py @@ -0,0 +1 @@ +#for fixture loading \ No newline at end of file diff --git a/examples/permissionsexample/urls.py b/examples/permissionsexample/urls.py index d17f5159a..e3b0ffbd1 100644 --- a/examples/permissionsexample/urls.py +++ b/examples/permissionsexample/urls.py @@ -2,5 +2,5 @@ from django.conf.urls.defaults import patterns, url from permissionsexample.views import ThrottlingExampleView urlpatterns = patterns('', - url(r'^$', ThrottlingExampleView.as_view(), name='throttled-resource'), + url(r'^$', ThrottlingExampleView.as_view(), name='throttled-resource'), ) diff --git a/examples/requirements.txt b/examples/requirements.txt index 09cda9451..19d37673e 100644 --- a/examples/requirements.txt +++ b/examples/requirements.txt @@ -5,4 +5,5 @@ wsgiref==0.1.2 Pygments==1.4 httplib2==0.6.0 Markdown==2.0.3 +Pyyaml diff --git a/examples/settings.py b/examples/settings.py index 1537c5f8e..2eab2cfa0 100644 --- a/examples/settings.py +++ b/examples/settings.py @@ -89,6 +89,12 @@ TEMPLATE_DIRS = ( # Don't forget to use absolute paths, not relative paths. ) +# for loading initial data +##SERIALIZATION_MODULES = { + # 'yml': "django.core.serializers.pyyaml" + +#} + INSTALLED_APPS = ( 'django.contrib.auth', @@ -104,6 +110,7 @@ INSTALLED_APPS = ( 'objectstore', 'pygments_api', 'blogpost', + 'permissionsexample', ) import os From bae21b14c93e458014107a007e894e93a181bd0e Mon Sep 17 00:00:00 2001 From: markotibold Date: Sat, 25 Jun 2011 16:38:16 +0200 Subject: [PATCH 2/9] added a container view for the permissions example --- examples/permissionsexample/urls.py | 6 ++++-- examples/permissionsexample/views.py | 20 ++++++++++++++++++-- examples/sandbox/views.py | 3 ++- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/examples/permissionsexample/urls.py b/examples/permissionsexample/urls.py index e3b0ffbd1..c421c7cca 100644 --- a/examples/permissionsexample/urls.py +++ b/examples/permissionsexample/urls.py @@ -1,6 +1,8 @@ from django.conf.urls.defaults import patterns, url -from permissionsexample.views import ThrottlingExampleView +from permissionsexample.views import PermissionsExampleView, ThrottlingExampleView, LoggedinView urlpatterns = patterns('', - url(r'^$', ThrottlingExampleView.as_view(), name='throttled-resource'), + url(r'^$', PermissionsExampleView.as_view(), name='permissions-example'), + url(r'^throttling$', ThrottlingExampleView.as_view(), name='throttled-resource'), + url(r'^loggedin$', LoggedinView.as_view(), name='loggedin-resource'), ) diff --git a/examples/permissionsexample/views.py b/examples/permissionsexample/views.py index 20e7cba7a..ca4561912 100644 --- a/examples/permissionsexample/views.py +++ b/examples/permissionsexample/views.py @@ -1,6 +1,16 @@ from djangorestframework.views import View -from djangorestframework.permissions import PerUserThrottling +from djangorestframework.permissions import PerUserThrottling, IsAuthenticated +from django.core.urlresolvers import reverse +class PermissionsExampleView(View): + """ + A container view for permissions examples. + """ + + def get(self, request): + return [{'name': 'Throttling Example', 'url': reverse('throttled-resource')}, + {'name': 'Logged in example', 'url': reverse('loggedin-resource')},] + class ThrottlingExampleView(View): """ @@ -17,4 +27,10 @@ class ThrottlingExampleView(View): """ Handle GET requests. """ - return "Successful response to GET request because throttle is not yet active." \ No newline at end of file + return "Successful response to GET request because throttle is not yet active." + +class LoggedinView(View): + + permissions = (IsAuthenticated, ) + def get(self, request): + return 'Logged in or not?' \ No newline at end of file diff --git a/examples/sandbox/views.py b/examples/sandbox/views.py index 1e326f432..f8d87a0bc 100644 --- a/examples/sandbox/views.py +++ b/examples/sandbox/views.py @@ -22,6 +22,7 @@ class Sandbox(View): 4. A generic object store API. 5. A code highlighting API. 6. A blog posts and comments API. + 7. A basic example using permissions. You can login with **'test', 'test'.** Please feel free to browse, create, edit and delete the resources in these examples.""" @@ -32,5 +33,5 @@ class Sandbox(View): {'name': 'Object store API', 'url': reverse('object-store-root')}, {'name': 'Code highlighting API', 'url': reverse('pygments-root')}, {'name': 'Blog posts API', 'url': reverse('blog-posts-root')}, - {'name': 'Permissions example', 'url': reverse('throttled-resource')} + {'name': 'Permissions example', 'url': reverse('permissions-example')} ] From 43c63c60ce8e89dbdb8e102f1c7ce1cd11fa8808 Mon Sep 17 00:00:00 2001 From: markotibold Date: Sat, 25 Jun 2011 23:07:06 +0200 Subject: [PATCH 3/9] Smaller version in the header --- djangorestframework/templates/renderer.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/djangorestframework/templates/renderer.html b/djangorestframework/templates/renderer.html index 97d3837a3..507b5c251 100644 --- a/djangorestframework/templates/renderer.html +++ b/djangorestframework/templates/renderer.html @@ -8,6 +8,8 @@ #site-name a {color: #F4F379 !important;} .errorlist {display: inline !important} .errorlist li {display: inline !important; background: white !important; color: black !important; border: 0 !important;} + /* Custom styles */ + .version{font-size:8px;} @@ -18,7 +20,7 @@