[refactor][m]: rename extension from exampletheme to example as per new repository name.
[ckanext-datagovau.git] / ckanext / example / controller.py
blob:a/ckanext/example/controller.py -> blob:b/ckanext/example/controller.py
  import sys
  from ckan.lib.base import request
  from ckan.lib.base import c, g, h
  from ckan.lib.base import model
  from ckan.lib.base import render
  from ckan.lib.base import _
   
  from ckan.controllers.user import UserController
   
   
  class CustomUserController(UserController):
  """This controller is an example to show how you might extend or
  override core CKAN behaviour from an extension package.
   
  It duplicates functionality in the core CKAN UserController's
  register function, but extends it to make an email address
  mandatory.
  """
  def custom_register(self):
  if request.method == 'POST':
  # custom validation that requires an email address
  error = False
  c.email = request.params.getone('email')
  c.login = request.params.getone('login')
  if not model.User.check_name_available(c.login):
  error = True
  h.flash_error(_("That username is not available."))
  if not c.email:
  error = True
  h.flash_error(_("You must supply an email address."))
  try:
  self._get_form_password()
  except ValueError, ve:
  h.flash_error(ve)
  error = True
  if error:
  return render('user/register.html')
  # now delegate to core CKAN register method
  return self.register()