~oubiwann/adytum-collection/Projects

« back to all changes in this revision

Viewing changes to MacGregorSite/cms/views/publisher.py

  • Committer: oubiwann
  • Date: 2009-03-20 04:32:44 UTC
  • Revision ID: svn-v4:a5ecbb21-ded8-0310-8b19-a7ee6de54fb5:Projects:880
* Moved admin security code into a security module.
* Moved response and page not found into new view publisher module.
* Moved edit_instance and edit_updated_page into admin module.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import configuration
 
2
 
 
3
from django import shortcuts
 
4
 
 
5
from google.appengine.api import users
 
6
 
 
7
import models
 
8
 
 
9
def respond(request, template, params=None):
 
10
  """Helper to render a response.
 
11
 
 
12
  This function assumes that the user is logged in.
 
13
 
 
14
  Args:
 
15
    request: The request object
 
16
    template: The template name; '.html' is appended automatically.
 
17
    params: A dict giving the template parameters; modified in-place.
 
18
 
 
19
  Returns:
 
20
    Whatever render_to_response(template, params) returns.
 
21
 
 
22
  Raises:
 
23
    Whatever render_to_response(template, params) raises.
 
24
 
 
25
  """
 
26
  if params is None:
 
27
    params = {}
 
28
 
 
29
  if request.user:
 
30
    params['user'] = request.user
 
31
    params['sign_out'] = users.CreateLogoutURL('/')
 
32
    params['is_admin'] = users.is_current_user_admin()
 
33
  else:
 
34
    params['sign_in'] = users.CreateLoginURL(request.path)
 
35
 
 
36
  if hasattr(request, 'profile') and request.profile is not None:
 
37
    profile = request.profile
 
38
    params['sidebar'] = models.Sidebar.render(profile)
 
39
    params['is_superuser'] = profile.is_superuser
 
40
  else:
 
41
    params['is_superuser'] = False
 
42
    params['sidebar'] = models.Sidebar.render(None)
 
43
    
 
44
  params['configuration'] = configuration
 
45
 
 
46
  if not template.endswith('.html'):
 
47
    template += '.html'
 
48
 
 
49
  return shortcuts.render_to_response(template, params)
 
50
 
 
51
 
 
52
def page_not_found(request, error_message=None):
 
53
  """Returns a 404 response based on a template.
 
54
 
 
55
  Args:
 
56
    request: the http request that was forbidden
 
57
    error_message: a message to display that will override the default message
 
58
 
 
59
  Returns:
 
60
    A http response with the status code of 404
 
61
  """
 
62
  response = respond(request, '404', {'error_message': error_message})
 
63
  response.status_code = 404
 
64
  return response