diff --git a/ckanext/odsh/controller.py b/ckanext/odsh/controller.py index cfbea624a4a682c46f28bb522d6a575a6c5e56ba..62712202988208cc4298bcef7073227bffb06d6c 100644 --- a/ckanext/odsh/controller.py +++ b/ckanext/odsh/controller.py @@ -2,6 +2,7 @@ import ckan.lib.base as base from ckan.controllers.home import HomeController from ckan.controllers.user import UserController from ckan.controllers.api import ApiController +from ckanext.harvest.controllers.view import ViewController as HarvestController from ckan.controllers.feed import FeedController from ckan.controllers.package import PackageController from ckan.controllers.feed import FeedController, ITEMS_LIMIT, _package_search, _create_atom_id @@ -34,6 +35,10 @@ class OdshRouteController(HomeController): class OdshUserController(UserController): + def index(self): + if not authz.is_sysadmin(c.user): + abort(404) + return super(OdshUserController,self).index() def me(self, locale=None): if not c.user: h.redirect_to(locale=locale, controller='user', action='login', @@ -71,9 +76,17 @@ class OdshUserController(UserController): abort(404) return super(OdshUserController,self).activity(id, offset) + def register(self, data=None, errors=None, error_summary=None): + if not authz.is_sysadmin(c.user): + abort(404) + return super(OdshUserController,self).register(data, errors, error_summary) + class OdshPackageController(PackageController): - pass + def edit_view(self, id, resource_id, view_id=None): + if not authz.is_sysadmin(c.user): + abort(403) + return super(OdshPackageController,self).edit_view(id, resource_id, view_id) class OdshApiController(ApiController): @@ -183,3 +196,6 @@ class OdshAutocompleteController(ApiController): suggest = solr_response.raw_response.get('spellcheck') return base.response.body_file.write(str(suggest)) + +class OdshHarvestController(HarvestController): + pass diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py index bfa3e27f553f736e61687950601520be456ef604..6a2991173930385ec03c61e0513d249557a23600 100644 --- a/ckanext/odsh/plugin.py +++ b/ckanext/odsh/plugin.py @@ -173,8 +173,15 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm with SubMapper(map, controller='ckanext.odsh.controller:OdshFeedController') as m: m.connect('/feeds/custom.atom', action='custom') + # with SubMapper(map, controller='ckanext.odsh.controller:OdshHarvestController') as m: + # m.connect('/harvest', action='custom') + + with SubMapper(map, controller='ckanext.odsh.controller:OdshPackageController') as m: + m.connect('new_view', '/dataset/{id}/resource/{resource_id}/new_view', action='edit_view', ckan_icon='pencil-square-o') + # redirect all user routes to custom controller with SubMapper(map, controller='ckanext.odsh.controller:OdshUserController') as m: + m.connect('user_index', '/user', action='index') m.connect('/user/edit', action='edit') m.connect('user_edit', '/user/edit/{id:.*}', action='edit', ckan_icon='cog') m.connect('user_delete', '/user/delete/{id}', action='delete') diff --git a/ckanext/odsh/templates/error_document_template.html b/ckanext/odsh/templates/error_document_template.html index 724f3d3b2d82674c20d18ab1ec38538ae435b27e..80ede95067f4e122c0daf211f9beaabbee5b4490 100644 --- a/ckanext/odsh/templates/error_document_template.html +++ b/ckanext/odsh/templates/error_document_template.html @@ -7,8 +7,12 @@ <div class="module-content error-page"> <div class="error-title"> HTTP Status {{ c.code[0]}} - {%if c.code[0]=='404'%} - <div class="error-body"><h2>Seite nicht gefunden</h2> + {%if c.code[0]=='404' or c.code[0]=='403'%} + {%if c.code[0]=='404'%} + <div class="error-body"><h2>Seite nicht gefunden</h2> + {%elif c.code[0]=='403'%} + <div class="error-body"><h2>Zugriff nicht erlaubt</h2> + {% endif %} <h3>Wie finde ich die gesuchten Inhalte im Landesportal?</h3> <p><a class="" href="http://www.schleswig-holstein.de/odpstart" title="Zur Startseite">Zur Startseite des Open-Data-Portals</a></p>