|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | 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.lib.navl.validators import not_empty 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 overrides 2 method hooks which the base class uses to create the validation schema for the creation and editing of a user; to require that a fullname is given. """ new_user_form = 'user/register.html' def _add_requires_full_name_to_schema(self, schema): """ Helper function that modifies the fullname validation on an existing schema """ schema['fullname'] = [not_empty, unicode] def _new_form_to_db_schema(self): """ Defines a custom schema that requires a full name to be supplied This method is a hook that the base class calls for the validation schema to use when creating a new user. """ schema = super(CustomUserController, self)._new_form_to_db_schema() self._add_requires_full_name_to_schema(schema) return schema def _edit_form_to_db_schema(self): """ Defines a custom schema that requires a full name cannot be removed when editing the user. This method is a hook that the base class calls for the validation schema to use when editing an exiting user. """ schema = super(CustomUserController, self)._edit_form_to_db_schema() self._add_requires_full_name_to_schema(schema) return schema |