From c327f4add69e04c254bc54a5292e46a7d635c602 Mon Sep 17 00:00:00 2001
From: Thorge Petersen <petersen@rz.uni-kiel.de>
Date: Mon, 10 Jul 2023 11:00:56 +0200
Subject: [PATCH] Updated url routes for dashboard

---
 ckanext/odsh/plugin.py          |  8 +++-----
 ckanext/odsh/views/dashboard.py | 32 ++++++++++++++------------------
 2 files changed, 17 insertions(+), 23 deletions(-)

diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py
index e5ac0b02..e02d1151 100644
--- a/ckanext/odsh/plugin.py
+++ b/ckanext/odsh/plugin.py
@@ -80,13 +80,11 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
         # Dashboard
         bp_dashboard = dashboard.blueprint
         bp_dashboard.add_url_rule(
-            u'/dashboard', view_func=dashboard.dashboard, strict_slashes=False, defaults={
-                u'offset': 0
-            })
+            u'/dashboard/datasets', view_func=dashboard.datasets)
         bp_dashboard.add_url_rule(
-            u'/dashboard/datasets', view_func=dashboard.dashboard_datasets)
+            u'/dashboard/organizations', view_func=dashboard.organizations)
         bp_dashboard.add_url_rule(
-            u'/dashboard/<int:offset>', view_func=dashboard.dashboard)
+            u'/dashboard/groups', view_func=dashboard.groups)
 
         # Harvest
         bp_harvest = harvest.blueprint
diff --git a/ckanext/odsh/views/dashboard.py b/ckanext/odsh/views/dashboard.py
index 3aa1736b..dceebe44 100644
--- a/ckanext/odsh/views/dashboard.py
+++ b/ckanext/odsh/views/dashboard.py
@@ -1,31 +1,27 @@
-import ckan.plugins.toolkit as toolkit
 import ckan.authz as authz
-import ckan.logic as logic
+import ckan.lib.helpers as h
 from ckan.common import g
 from flask import Blueprint
-from ckan.views.dashboard import index
+from ckan.views.dashboard import datasets, organizations, groups
 import logging
 
 log = logging.getLogger(__name__)
 
-blueprint = Blueprint('odsh_dashboard', __name__)
+blueprint = Blueprint(u'odsh_dashboard', __name__)
 
-
-def dashboard(offset=0):
-    log.debug("views.dashboard::dashboard")
+@blueprint.before_request
+def before_request() -> None:
     is_sysadmin = authz.is_sysadmin(g.user)
-
     if not is_sysadmin:
-        toolkit.abort(403)
-
-    return index(offset)
+        h.flash_error(_(u'Not authorized to see this page'))
+        return h.redirect_to(u'user.login')
+    return None
 
+def datasets():
+    return datasets()
 
-def dashboard_datasets():
-    log.debug("views.dashboard::dashboard_datasets")
-    is_sysadmin = authz.is_sysadmin(g.user)
-
-    if not is_sysadmin:
-        toolkit.abort(403)
+def organizations():
+    return organizations()
 
-    return index()
+def groups():
+    return groups()
-- 
GitLab