From b0547b1bb553048439c037474a1e240c04b47518 Mon Sep 17 00:00:00 2001 From: Ingolf Kuss Date: Fri, 24 Feb 2023 17:28:41 +0100 Subject: [PATCH 1/7] Neuer View oai.marc .alma .asAlmaNz --- app/controllers/Resource.java | 10 ++++++++++ app/views/oai/marc.scala.html | 23 +++++++++++++++++++++++ conf/routes | 1 + 3 files changed, 34 insertions(+) create mode 100644 app/views/oai/marc.scala.html diff --git a/app/controllers/Resource.java b/app/controllers/Resource.java index 8b5f32fd2..4a9b5e336 100644 --- a/app/controllers/Resource.java +++ b/app/controllers/Resource.java @@ -85,6 +85,7 @@ import views.html.search; import views.html.status; import views.html.oai.mab; +import views.html.oai.marc; import views.html.oai.mets; import views.html.oai.oaidc; import views.html.oai.wgl; @@ -889,6 +890,15 @@ public static Promise asAleph(@PathParam("pid") String pid) { }); } + @ApiOperation(produces = "application/xml", nickname = "asAlmaNz", value = "asAlmaNz", notes = "Returns an Alma Network Zone xml display of the resource", response = Message.class, httpMethod = "GET") + public static Promise asAlmaNz(@PathParam("pid") String pid) { + return new ReadMetadataAction().call(pid, node -> { + MabRecord result = transform.aleph(pid); + response().setContentType("application/xml"); + return ok(marc.render(result)); + }); + } + @ApiOperation(produces = "application/xml", nickname = "asDatacite", value = "asDatacite", notes = "Returns a Datacite display of the resource", response = Message.class, httpMethod = "GET") public static Promise asDatacite(@PathParam("pid") String pid, @QueryParam("validate") boolean validate) { diff --git a/app/views/oai/marc.scala.html b/app/views/oai/marc.scala.html new file mode 100644 index 000000000..bcf6f38f5 --- /dev/null +++ b/app/views/oai/marc.scala.html @@ -0,0 +1,23 @@ +@(data:MabRecord) + + 01234ami 2200217uc 4500 + @data.id + @if(data.urn!=null){ + @data.urn + urn + } + @if(data.doi!=null){ + @data.doi + doi + } + + V:DE-605 + 443 + text/html + @data.httpAdresse + Resolving-System + @models.Globals.mab655x + Volltext + + + diff --git a/conf/routes b/conf/routes index b7c9da1d8..97eb9aa20 100644 --- a/conf/routes +++ b/conf/routes @@ -37,6 +37,7 @@ GET /resource/:pid.rdf controllers.Resource.asRdf(pid) GET /resource/:pid.epicur controllers.Resource.asEpicur(pid) GET /resource/:pid.pdfbox controllers.Resource.asPdfboxTxt(pid) GET /resource/:pid.aleph controllers.Resource.asAleph(pid) +GET /resource/:pid.alma controllers.Resource.asAlmaNz(pid) GET /resource/:pid.datacite controllers.Resource.asDatacite(pid, validate : Boolean ?= false) GET /resource/:pid.mets controllers.Resource.asMets(pid, validate : Boolean ?= false) GET /resource/:pid.csv controllers.Resource.asCsv(pid) From 4f151946ef5b5d438b57a894e3a7615f78239517 Mon Sep 17 00:00:00 2001 From: Ingolf Kuss Date: Fri, 24 Feb 2023 19:12:13 +0100 Subject: [PATCH 2/7] Update OaiDispatcher.java for alma oai set --- app/helper/oai/OaiDispatcher.java | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/app/helper/oai/OaiDispatcher.java b/app/helper/oai/OaiDispatcher.java index 7a75662e6..3806b4750 100644 --- a/app/helper/oai/OaiDispatcher.java +++ b/app/helper/oai/OaiDispatcher.java @@ -59,6 +59,7 @@ public static String makeOAISet(Node node) { createOpenAccessSet(node); createUrnSets(node); createAlephSet(node); + createAlmaSet(node); createContentTypeSet(node); play.Logger.debug("Start update Index"); new Modify().updateIndex(node.getPid()); @@ -74,6 +75,7 @@ public static void updateTransformer(List transformers, Node node) { addOaiDcTransformer(node); addEpicurTransformer(node); addAlephTransformer(node); + addAlmaTransformer(node); addMetsTransformer(node); addRdfTransformer(node); addWglTransformer(node); @@ -98,6 +100,8 @@ public static String initContentModels(String namespace) { internalAccessRoute + "pdfbox")); transformers.add(new Transformer(namespace + "aleph", "aleph", internalAccessRoute + "aleph")); + transformers.add(new Transformer(namespace + "alma", "alma", + internalAccessRoute + "alma")); transformers.add(new Transformer(namespace + "mets", "mets", internalAccessRoute + "mets")); transformers.add(new Transformer(namespace + "openaire", "openaire", @@ -111,8 +115,8 @@ public static String initContentModels(String namespace) { OaiDispatcher.contentModelsInit(transformers); String result = "Reinit contentModels " + namespace + "epicur, " + namespace + "oaidc, " + namespace + "pdfa, " + namespace + "pdfbox, " + namespace - + "aleph, " + namespace + "mets, " + namespace + "rdf, " + namespace - + "wgl," + namespace + "openaire" + namespace + "mods"; + + "aleph, " + namespace + "alma," + namespace + "mets, " + namespace + + "rdf, " + namespace + "wgl," + namespace + "openaire" + namespace + "mods"; play.Logger.info(result); return result; } @@ -189,6 +193,14 @@ private static void createAlephSet(Node node) { addSet(node, Globals.alephSetName); } } + + private static void createAlmaSet(Node node) { + if (node.hasLinkToCatalogId()) { + play.Logger.info(node.getPid() + " add alma set!"); + addSet(node, "alma"); + addSet(node, Globals.almaSetName); + } + } private static void addSet(Node node, String name) { play.Logger.info("Add OAI-Set " + name + " to " + node.getPid()); @@ -248,6 +260,8 @@ private static void addUnknownTransformer(List transformers, continue; // implicitly added - or not allowed to set if ("aleph".equals(t)) continue; // implicitly added - or not allowed to set + if ("alma".equals(t)) + continue; // implicitly added - or not allowed to set if ("mets".equals(t)) continue; // implicitly added - or not allowed to set if ("rdf".equals(t)) @@ -284,6 +298,17 @@ private static void addAlephTransformer(Node node) { } } } + + private static void addAlmaTransformer(Node node) { + String type = node.getContentType(); + if (node.hasPersistentIdentifier()) { + if ("monograph".equals(type) || "journal".equals(type) + || "webpage".equals(type)) + if (node.hasLinkToCatalogId()) { + node.addTransformer(new Transformer("alma")); + } + } + } private static void addEpicurTransformer(Node node) { if (node.hasUrnInMetadata() || node.hasUrn()) { From 9cac60ffb90e57878d685d81ffb9a50b89c385eb Mon Sep 17 00:00:00 2001 From: Ingolf Kuss Date: Fri, 24 Feb 2023 19:16:41 +0100 Subject: [PATCH 3/7] Update OaiDispatcher.java --- app/helper/oai/OaiDispatcher.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/helper/oai/OaiDispatcher.java b/app/helper/oai/OaiDispatcher.java index 3806b4750..5a43cdfd1 100644 --- a/app/helper/oai/OaiDispatcher.java +++ b/app/helper/oai/OaiDispatcher.java @@ -198,7 +198,7 @@ private static void createAlmaSet(Node node) { if (node.hasLinkToCatalogId()) { play.Logger.info(node.getPid() + " add alma set!"); addSet(node, "alma"); - addSet(node, Globals.almaSetName); + addSet(node, Globals.alephSetName); } } @@ -229,7 +229,7 @@ private static void linkObjectToOaiSet(Node node, String spec, String pid) { private static void createOAISet(String name, String spec, String pid) { String setSpecPred = "http://www.openarchives.org/OAI/2.0/setSpec"; - String setNamePred = "http://www.openarchives.org/OAI/2.0/setName"; + String Pred = "http://www.openarchives.org/OAI/2.0/setName"; Link setSpecLink = new Link(); setSpecLink.setPredicate(setSpecPred); Link setNameLink = new Link(); From 3c29437a2c9a0b142d43f625b6348634a5494006 Mon Sep 17 00:00:00 2001 From: Ingolf Kuss Date: Fri, 24 Feb 2023 19:23:36 +0100 Subject: [PATCH 4/7] Update OaiDispatcher.java --- app/helper/oai/OaiDispatcher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helper/oai/OaiDispatcher.java b/app/helper/oai/OaiDispatcher.java index 5a43cdfd1..6cda3de30 100644 --- a/app/helper/oai/OaiDispatcher.java +++ b/app/helper/oai/OaiDispatcher.java @@ -229,7 +229,7 @@ private static void linkObjectToOaiSet(Node node, String spec, String pid) { private static void createOAISet(String name, String spec, String pid) { String setSpecPred = "http://www.openarchives.org/OAI/2.0/setSpec"; - String Pred = "http://www.openarchives.org/OAI/2.0/setName"; + String setNamePred = "http://www.openarchives.org/OAI/2.0/setName"; Link setSpecLink = new Link(); setSpecLink.setPredicate(setSpecPred); Link setNameLink = new Link(); From 4f7ad034c3ab16e4c326022d5c0a84e6d93478e8 Mon Sep 17 00:00:00 2001 From: Ingolf Kuss Date: Thu, 9 Mar 2023 20:30:49 +0100 Subject: [PATCH 5/7] Bei unerlaubtem Zugriff: Ersetze Login-Page durch Nachricht auf Bildschirm --- app/controllers/MyController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/MyController.java b/app/controllers/MyController.java index 1a314ffd8..152f68c49 100644 --- a/app/controllers/MyController.java +++ b/app/controllers/MyController.java @@ -122,8 +122,9 @@ public static Result AccessDenied() { play.Logger.debug( "\nResponse: " + msg.toString() + "\nSession " + ctx().session()); if (request().accepts("text/html")) { - flash("message", "You must be logged in to perform this action!"); - return redirect(routes.Forms.getLoginForm()); + flash("message", "Zugriff verboten !"); + // return redirect(routes.Forms.getLoginForm()); + return JsonMessage(msg); } else { return JsonMessage(msg); } From 02f511933d277a049725d5c167e5ac19a5cf3768 Mon Sep 17 00:00:00 2001 From: Ingolf Kuss Date: Thu, 9 Mar 2023 20:40:22 +0100 Subject: [PATCH 6/7] Bei unerlaubtem Zugriff: Ersetze Login-Page durch Nachricht auf Bildschirm --- app/controllers/MyController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/MyController.java b/app/controllers/MyController.java index 1a314ffd8..152f68c49 100644 --- a/app/controllers/MyController.java +++ b/app/controllers/MyController.java @@ -122,8 +122,9 @@ public static Result AccessDenied() { play.Logger.debug( "\nResponse: " + msg.toString() + "\nSession " + ctx().session()); if (request().accepts("text/html")) { - flash("message", "You must be logged in to perform this action!"); - return redirect(routes.Forms.getLoginForm()); + flash("message", "Zugriff verboten !"); + // return redirect(routes.Forms.getLoginForm()); + return JsonMessage(msg); } else { return JsonMessage(msg); } From 152abdb14e9128ddfbfa1d62756f3a432dad189e Mon Sep 17 00:00:00 2001 From: Ingolf Kuss Date: Fri, 10 Mar 2023 11:41:18 +0100 Subject: [PATCH 7/7] =?UTF-8?q?Bei=20"Access=20Denied"=20kommt=20"forbidde?= =?UTF-8?q?n"-Page=20anstatt=20Redirect=20auf=20Login-Form.=20Geh=C3=B6rt?= =?UTF-8?q?=20zu=20EDOZWO-1110.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/MyController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/MyController.java b/app/controllers/MyController.java index 152f68c49..e4fedb30c 100644 --- a/app/controllers/MyController.java +++ b/app/controllers/MyController.java @@ -124,7 +124,7 @@ public static Result AccessDenied() { if (request().accepts("text/html")) { flash("message", "Zugriff verboten !"); // return redirect(routes.Forms.getLoginForm()); - return JsonMessage(msg); + return forbidden("Sie haben keine Zugriffsberechtigung für diese Seite."); } else { return JsonMessage(msg); }