]> git.openstreetmap.org Git - osqa.git/commitdiff
Fixes OSQA 317, Wrong links in the user profile in the new notification email, and...
authorhernani <hernani@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Wed, 16 Jun 2010 11:41:52 +0000 (11:41 +0000)
committerhernani <hernani@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Wed, 16 Jun 2010 11:41:52 +0000 (11:41 +0000)
git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@428 0cfe37f9-358a-4d5e-be75-b63607b5c754

forum/http_responses.py
forum/skins/default/templates/401.html [new file with mode: 0644]
forum/skins/default/templates/403.html
forum/skins/default/templates/404.html
forum/views/admin.py
forum/views/auth.py
forum/views/commands.py
forum/views/readers.py
forum/views/users.py
forum/views/writers.py

index 42bef588814b98c3437917470a6e71882ae166d8..7fae3b69f3bd63b9d60fc93f91b733633e8af2a8 100644 (file)
@@ -1,15 +1,27 @@
 from django.http import HttpResponse
 from django.template.loader import render_to_string
 from django.http import HttpResponse
 from django.template.loader import render_to_string
+from django.template import RequestContext
 
 from forum import settings
 
 class HttpResponseServiceUnavailable(HttpResponse):
     def __init__(self, message):
 
 from forum import settings
 
 class HttpResponseServiceUnavailable(HttpResponse):
     def __init__(self, message):
-        super(HttpResponseServiceUnavailable, self).__init__(content=render_to_string('503.html', {
-        'message': message,
-        'app_logo': settings.APP_LOGO,
-        'app_title': settings.APP_TITLE
-        }), status=503)
+        super(HttpResponseServiceUnavailable, self).__init__(
+            content=render_to_string('503.html', {
+                'message': message,
+                'app_logo': settings.APP_LOGO,
+                'app_title': settings.APP_TITLE
+            }), status=503)
 
 class HttpResponseUnauthorized(HttpResponse):
 
 class HttpResponseUnauthorized(HttpResponse):
-    pass
\ No newline at end of file
+    def __init__(self, request):
+        if request.user.is_authenticated():
+            super(HttpResponseUnauthorized, self).__init__(
+                content=render_to_string('403.html', context_instance=RequestContext(request)),
+                status=403
+            )
+        else:
+            super(HttpResponseUnauthorized, self).__init__(
+                content=render_to_string('401.html', context_instance=RequestContext(request)),
+                status=401
+            )
\ No newline at end of file
diff --git a/forum/skins/default/templates/401.html b/forum/skins/default/templates/401.html
new file mode 100644 (file)
index 0000000..c689f53
--- /dev/null
@@ -0,0 +1,46 @@
+{% extends "base_content.html" %}
+{% load i18n %}
+{% block title %}{% trans "Not logged in" %}{% endblock %}
+{% block meta %}
+    <!-- <meta http-equiv="refresh" content="5;url={% url auth_signin %}"> -->
+{% endblock %}
+{% block forestyle%}
+    <style type="text/css">
+               form input { margin-right: 5px; }
+       </style>
+{% endblock %}
+{% block forejs %}
+       <script type="text/javascript">
+        $().ready(function(){
+            window.setInterval(function() {
+                $('#redirect_loader').html($('#redirect_loader').html() + '.')
+            }, 800);
+
+            window.setTimeout(function() {
+                window.location = "{% url auth_signin %}";
+            }, 5000);
+        });
+
+        </script>
+{% endblock %}
+{% block content %}
+<div id="main-bar" class="headNormal">
+    {% trans "Not logged in" %}
+</div>
+<div id="main-body" class="">
+    <div style="padding:5px 0px 10px 0;line-height:25px;">
+        <h3>{% trans "You are not logged in..." %}</h3>
+        <div style="margin-top:5px">
+            {% trans "...and the resource you're trying to access is pretocted." %}
+            <p>
+                {% trans "Redirecting to the login page." %}<span id="redirect_loader"></span>
+            </p>
+            <p>
+                {% trans "If you're not automatically redirected in 5 seconds, please click" %}
+                <a href="{% url auth_signin %}">{% trans "here" %}</a>.
+            </p>
+        </div>
+    </div>
+
+</div>
+{% endblock %}
\ No newline at end of file
index 461c264c5772b8a61a7d0717f201f59213aa4783..26b563f63fd812f72e244d71db6cb97177820c70 100644 (file)
@@ -6,40 +6,29 @@
                form input { margin-right: 5px; }
        </style>
 {% endblock %}
                form input { margin-right: 5px; }
        </style>
 {% endblock %}
-{% block forejs %}
-       <script type="text/javascript">
-        $().ready(function(){
-            $("#linkPrevious").bind("click", back=function(){history.go(-1);})
-        });
-
-        </script>
-{% endblock %}
 {% block content %}
 <div id="main-bar" class="headNormal">
     {% trans "Forbidden" %}
 </div>
 <div id="main-body" class="">
     <div style="padding:5px 0px 10px 0;line-height:25px;">
 {% block content %}
 <div id="main-bar" class="headNormal">
     {% trans "Forbidden" %}
 </div>
 <div id="main-body" class="">
     <div style="padding:5px 0px 10px 0;line-height:25px;">
-        <h3>{% trans "Sorry, could not find the page you requested." %}</h3>
+        <h3>{% trans "Sorry, you don't have permissions to access this page." %}</h3>
         <div style="margin-top:5px">
         {% trans "This might have happened for the following reasons:" %}<br/>
             <ul>
         <div style="margin-top:5px">
         {% trans "This might have happened for the following reasons:" %}<br/>
             <ul>
-            <li>{% trans "this question or answer has been deleted;" %}</li>
-            <li>{% trans "url has error - please check it;" %}</li>
-            <li>{% trans "the page you tried to visit is protected or you don't have sufficient points, see" %} <a href="{% url faq %}"> faq</a>;</li>
-            <li>{% trans "if you believe this error 404 should not have occurred, please" %}
-                               <a href="{{feedback_site_url}}" target="_blank">{% trans "report this problem" %}</a></li>
+            <li>{% trans "you followed a link on an email, but you're currently logged in as another user;" %}</li>
+            <li>{% trans "there are errors in the url, please confirm it;" %}</li>
+            <li>{% trans "if you believe you shouldn't bee seeing this error, please" %}
+                               <a href="{% if settings.CONTACT_URL %}{{ settings.CONTACT_URL }}{% else %}{% url feedback %}{% endif %}" target="_blank">
+                                   {% trans "report this problem" %}
+                               </a>
+                       </li>
             </ul>
         </div>
             </ul>
         </div>
-        <script type="text/javascript">
-            var GOOG_FIXURL_LANG = '{{settings.LANGUAGE_CODE}}';
-            var GOOG_FIXURL_SITE = '{{site_url}}';
-        </script>
-        <script type="text/javascript" src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
         <ul>
         <ul>
-            <li><a href="#" id="linkPrevious">{% trans "back to previous page" %} È</a></li>
-            <li><a href="{% url questions %}">{% trans "see all questions" %} È</a></li>
-            <li><a href="{% url tags %}">{% trans "see all tags" %} È</a></li>
+            <li><a href="{% url index %}">{% trans "to home page" %} &raquo;</a></li>
+            <li><a href="{% url questions %}">{% trans "see all questions" %} &raquo;</a></li>
+            <li><a href="{% url tags %}">{% trans "see all tags" %} &raquo;</a></li>
         </ul>
     </div>
 
         </ul>
     </div>
 
index 03cab26bbd664b5ea0cc008a92016eaf8312f369..100086adc2494374bf5320b05ba8ed33d9f5c082 100644 (file)
@@ -27,7 +27,6 @@
             <ul>
             <li>{% trans "this question or answer has been deleted;" %}</li>
             <li>{% trans "url has error - please check it;" %}</li>
             <ul>
             <li>{% trans "this question or answer has been deleted;" %}</li>
             <li>{% trans "url has error - please check it;" %}</li>
-            <li>{% trans "the page you tried to visit is protected or you don't have sufficient points, see" %} <a href="{% url faq %}"> faq</a>;</li>
             <li>{% trans "if you believe this error 404 should not have occurred, please" %} 
                                <a href="{{feedback_site_url}}" target="_blank">{% trans "report this problem" %}</a></li>
             </ul>
             <li>{% trans "if you believe this error 404 should not have occurred, please" %} 
                                <a href="{{feedback_site_url}}" target="_blank">{% trans "report this problem" %}</a></li>
             </ul>
@@ -38,9 +37,9 @@
         </script>
         <script type="text/javascript" src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
         <ul>
         </script>
         <script type="text/javascript" src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
         <ul>
-            <li><a href="#" id="linkPrevious">{% trans "back to previous page" %} »</a></li>
-            <li><a href="{% url questions %}">{% trans "see all questions" %} »</a></li>
-            <li><a href="{% url tags %}">{% trans "see all tags" %} »</a></li>
+            <li><a href="#" id="linkPrevious">{% trans "back to previous page" %} &raquo;</a></li>
+            <li><a href="{% url questions %}">{% trans "see all questions" %} &raquo;</a></li>
+            <li><a href="{% url tags %}">{% trans "see all tags" %} &raquo;</a></li>
         </ul>
     </div>
 
         </ul>
     </div>
 
index 52f9eee3a05a2941aa7260c3e5a5721a513fe825..7297c1f9fb8649fb8d9cf94e2d35cd530dd398db 100644 (file)
@@ -3,7 +3,8 @@ import time
 
 from django.shortcuts import render_to_response, get_object_or_404
 from django.core.urlresolvers import reverse
 
 from django.shortcuts import render_to_response, get_object_or_404
 from django.core.urlresolvers import reverse
-from django.http import HttpResponseRedirect, HttpResponse, HttpResponseForbidden, Http404
+from django.http import HttpResponseRedirect, HttpResponse, Http404
+from forum.http_responses import HttpResponseUnauthorized
 from django.template import RequestContext
 from django.utils.translation import ugettext as _
 from django.utils import simplejson
 from django.template import RequestContext
 from django.utils.translation import ugettext as _
 from django.utils import simplejson
@@ -21,7 +22,7 @@ def super_user_required(fn):
         if request.user.is_authenticated() and request.user.is_superuser:
             return fn(request, *args, **kwargs)
         else:
         if request.user.is_authenticated() and request.user.is_superuser:
             return fn(request, *args, **kwargs)
         else:
-            return HttpResponseForbidden()
+            return HttpResponseUnauthorized(request)
 
     return wrapper
 
 
     return wrapper
 
index 27cf5c9198bddbd2aba31aea2e0ad23435a68429..7f9b91e6e0b33c4a9000b41b042223596467357b 100644 (file)
@@ -2,7 +2,8 @@ from django.shortcuts import render_to_response, get_object_or_404
 from django.template import RequestContext
 from django.core.urlresolvers import reverse
 from forum.models import User
 from django.template import RequestContext
 from django.core.urlresolvers import reverse
 from forum.models import User
-from django.http import HttpResponseRedirect, Http404, HttpResponseForbidden
+from django.http import HttpResponseRedirect, Http404
+from forum.http_responses import HttpResponseUnauthorized
 from django.utils.safestring import mark_safe
 from django.utils.translation import ugettext as _
 from django.utils.http import urlquote_plus
 from django.utils.safestring import mark_safe
 from django.utils.translation import ugettext as _
 from django.utils.http import urlquote_plus
@@ -277,7 +278,7 @@ def auth_settings(request, id):
     user_ = get_object_or_404(User, id=id)
 
     if not (request.user.is_superuser or request.user == user_):
     user_ = get_object_or_404(User, id=id)
 
     if not (request.user.is_superuser or request.user == user_):
-        return HttpResponseForbidden()
+        return HttpResponseUnauthorized(request)
 
     auth_keys = user_.auth_keys.all()
 
 
     auth_keys = user_.auth_keys.all()
 
@@ -331,7 +332,7 @@ def auth_settings(request, id):
 def remove_external_provider(request, id):
     association = get_object_or_404(AuthKeyUserAssociation, id=id)
     if not (request.user.is_superuser or request.user == association.user):
 def remove_external_provider(request, id):
     association = get_object_or_404(AuthKeyUserAssociation, id=id)
     if not (request.user.is_superuser or request.user == association.user):
-        return HttpResponseForbidden()
+        return HttpResponseUnauthorized(request)
 
     request.user.message_set.create(message=_("You removed the association with %s") % association.provider)
     association.delete()
 
     request.user.message_set.create(message=_("You removed the association with %s") % association.provider)
     association.delete()
index 63c65063ea044d8ca82b1aa8b208dbd31df74842..f04bd356c14b8c755abb3dfa4ad367801ea1d53c 100644 (file)
@@ -2,7 +2,7 @@ import datetime
 from forum import settings
 from django.core.exceptions import ObjectDoesNotExist
 from django.utils import simplejson
 from forum import settings
 from django.core.exceptions import ObjectDoesNotExist
 from django.utils import simplejson
-from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404
+from django.http import HttpResponse, HttpResponseRedirect, Http404
 from django.shortcuts import get_object_or_404, render_to_response
 from django.utils.translation import ungettext, ugettext as _
 from django.template import RequestContext
 from django.shortcuts import get_object_or_404, render_to_response
 from django.utils.translation import ungettext, ugettext as _
 from django.template import RequestContext
index f933a3bac889695525b54a481322a5568584d08b..32aedec796987155770328f179a7f44f8f0232ac 100644 (file)
@@ -4,7 +4,7 @@ import logging
 from urllib import unquote
 from forum import settings as django_settings
 from django.shortcuts import render_to_response, get_object_or_404
 from urllib import unquote
 from forum import settings as django_settings
 from django.shortcuts import render_to_response, get_object_or_404
-from django.http import HttpResponseRedirect, HttpResponse, HttpResponseForbidden, Http404, HttpResponsePermanentRedirect
+from django.http import HttpResponseRedirect, HttpResponse, Http404, HttpResponsePermanentRedirect
 from django.core.paginator import Paginator, EmptyPage, InvalidPage
 from django.template import RequestContext
 from django import template
 from django.core.paginator import Paginator, EmptyPage, InvalidPage
 from django.template import RequestContext
 from django import template
index fbde0954dd89fc0416383773bafe095d4c504468..9978255dfe4c2ab0574d763d285c7dadb04cbaf9 100644 (file)
@@ -7,7 +7,8 @@ from django.contrib.contenttypes.models import ContentType
 from django.core.urlresolvers import reverse\r
 from django.shortcuts import render_to_response, get_object_or_404\r
 from django.template import RequestContext\r
 from django.core.urlresolvers import reverse\r
 from django.shortcuts import render_to_response, get_object_or_404\r
 from django.template import RequestContext\r
-from django.http import HttpResponse, HttpResponseForbidden, HttpResponseRedirect, Http404\r
+from django.http import HttpResponse, HttpResponseRedirect, Http404\r
+from forum.http_responses import HttpResponseUnauthorized\r
 from django.utils.translation import ugettext as _\r
 from django.utils.http import urlquote_plus\r
 from django.utils.html import strip_tags\r
 from django.utils.translation import ugettext as _\r
 from django.utils.http import urlquote_plus\r
 from django.utils.html import strip_tags\r
@@ -84,7 +85,7 @@ def set_new_email(user, new_email, nomessage=False):
 def edit_user(request, id):\r
     user = get_object_or_404(User, id=id)\r
     if not (request.user.is_superuser or request.user == user):\r
 def edit_user(request, id):\r
     user = get_object_or_404(User, id=id)\r
     if not (request.user.is_superuser or request.user == user):\r
-        return HttpResponseForbidden()\r
+        return HttpResponseUnauthorized(request)\r
     if request.method == "POST":\r
         form = EditUserForm(user, request.POST)\r
         if form.is_valid():\r
     if request.method == "POST":\r
         form = EditUserForm(user, request.POST)\r
         if form.is_valid():\r
@@ -118,7 +119,7 @@ def edit_user(request, id):
 @login_required\r
 def user_powers(request, id, action, status):\r
     if not request.user.is_superuser:\r
 @login_required\r
 def user_powers(request, id, action, status):\r
     if not request.user.is_superuser:\r
-        return HttpResponseForbidden()\r
+        return HttpResponseUnauthorized(request)\r
 \r
     user = get_object_or_404(User, id=id)\r
     new_state = action == 'grant'\r
 \r
     user = get_object_or_404(User, id=id)\r
     new_state = action == 'grant'\r
@@ -189,7 +190,7 @@ def user_view(template, tab_name, tab_description, page_title, private=False):
         def decorated(request, id, slug=None):\r
             user = get_object_or_404(User, id=id)\r
             if private and not (user == request.user or request.user.is_superuser):\r
         def decorated(request, id, slug=None):\r
             user = get_object_or_404(User, id=id)\r
             if private and not (user == request.user or request.user.is_superuser):\r
-                return HttpResponseForbidden()\r
+                return HttpResponseUnauthorized(request)\r
             context = fn(request, user)\r
 \r
             rev_page_title = user.username + " - " + page_title\r
             context = fn(request, user)\r
 \r
             rev_page_title = user.username + " - " + page_title\r
index aace1f6aa269d63fe6bcd5e974aacabf8054a924..c7dbbf39117607807dc338ad5ca1c11835ff0a2b 100644 (file)
@@ -5,7 +5,7 @@ import logging
 from django.core.files.storage import FileSystemStorage
 from django.shortcuts import render_to_response, get_object_or_404
 from django.contrib.auth.decorators import login_required
 from django.core.files.storage import FileSystemStorage
 from django.shortcuts import render_to_response, get_object_or_404
 from django.contrib.auth.decorators import login_required
-from django.http import HttpResponseRedirect, HttpResponse, HttpResponseForbidden, Http404
+from django.http import HttpResponseRedirect, HttpResponse, Http404
 from django.template import RequestContext
 from django.utils.html import *
 from django.utils import simplejson
 from django.template import RequestContext
 from django.utils.html import *
 from django.utils import simplejson