Compare commits

...

15 Commits

Author SHA1 Message Date
Mojib Wali
a7abb0bc5e v0.6.1 2021-06-04 11:46:57 +02:00
mb-wali
7ca398efdd global: adds routes for tug
This: migrated from invenio-theme-tugraz
2021-06-04 11:46:08 +02:00
Mojib Wali
b33c7e09c3 v0.6.0 2021-05-31 13:12:06 +02:00
mb-wali
0c775851d8 refactor: removes search guide
due: added to core module. This closes #64
2021-05-31 13:09:30 +02:00
mb-wali
89f6aee814 migrate: invenioRDM v4
deb: bump in app-rdm
2021-05-31 13:09:30 +02:00
Mojib Wali
44e5857143 v0.5.9 2021-05-07 12:01:04 +02:00
mb-wali
460de9fc35 feature: adds searchguide german 2021-05-07 11:02:25 +02:00
Mojib Wali
b1d7a6558e v0.5.8 2021-04-30 13:32:46 +02:00
mb-wali
890fded625 dep: installing invenio-app-rdm 2021-04-30 13:32:23 +02:00
Mojib Wali
1304563a3e v0.5.7 2021-04-28 09:01:04 +02:00
mb-wali
a08201041a bugfix: search guide url 2021-04-28 08:54:48 +02:00
Mojib Wali
548896be11 v0.5.6 2021-04-27 15:53:59 +02:00
Mojib Wali
a10433aba3 email: welcome email template 2021-04-27 15:48:05 +02:00
Mojib Wali
f0fbabbaa8 v0.5.5 2021-04-22 09:46:08 +02:00
Mojib Wali
5e2a58c764 i18n: adds translation
* babel: adds a wildcard to extract txt files.
* refactor txt file
2021-04-22 09:45:42 +02:00
21 changed files with 224 additions and 96 deletions

View File

@@ -49,3 +49,6 @@ recursive-include invenio_config_tugraz *.html
# added by check-manifest # added by check-manifest
recursive-include invenio_config_tugraz *.csv recursive-include invenio_config_tugraz *.csv
# added by check-manifest
recursive-include invenio_config_tugraz *.pdf

View File

@@ -38,6 +38,8 @@ Override configs from diffrent invenio modules to meet TU Graz requirement:
* Invenio-Mail * Invenio-Mail
* Invenio-shibboleth * Invenio-shibboleth
* Invenio-accounts * Invenio-accounts
* Flask-security
* Defined routes for TUG
Further documentation is available on Further documentation is available on
https://invenio-config-tugraz.readthedocs.io/ https://invenio-config-tugraz.readthedocs.io/

View File

@@ -13,7 +13,7 @@ encoding = utf-8
# Extraction from Jinja2 templates # Extraction from Jinja2 templates
[jinja2: **/templates/**.html] [jinja2: **/templates/**.*]
encoding = utf-8 encoding = utf-8
extensions = jinja2.ext.autoescape, jinja2.ext.with_ extensions = jinja2.ext.autoescape, jinja2.ext.with_

View File

@@ -29,6 +29,13 @@ INVENIO_CONFIG_TUGRAZ_IP_RANGES =
[["127.0.0.2", "127.0.0.99"], ["127.0.1.3", "127.0.1.5"]] [["127.0.0.2", "127.0.0.99"], ["127.0.1.3", "127.0.1.5"]]
""" """
CONFIG_TUGRAZ_ROUTES = {
"guide": "/guide",
"terms": "/terms",
"gdpr": "/gdpr",
}
"""Defined routes for TUG."""
# Invenio-App # Invenio-App
# =========== # ===========
# See https://invenio-app.readthedocs.io/en/latest/configuration.html # See https://invenio-app.readthedocs.io/en/latest/configuration.html
@@ -54,8 +61,6 @@ APP_DEFAULT_SECURE_HEADERS = {
"'unsafe-eval'", "'unsafe-eval'",
"blob:", "blob:",
"ub-support.tugraz.at", # zammad contact form "ub-support.tugraz.at", # zammad contact form
"api.datacite.org/dois", # datacite
"api.test.datacite.org/dois", # datacite test
], ],
}, },
"content_security_policy_report_only": False, "content_security_policy_report_only": False,
@@ -113,19 +118,22 @@ Set this to False when sending actual emails.
# =========== # ===========
# See https://invenio-userprofiles.readthedocs.io/en/latest/configuration.html # See https://invenio-userprofiles.readthedocs.io/en/latest/configuration.html
USERPROFILES_EXTEND_SECURITY_FORMS = False USERPROFILES_EXTEND_SECURITY_FORMS = True
"""Set True in order to register user_profile. """Set True in order to register user_profile.
This also forces user to add username and fullname This also forces user to add username and fullname
when register. when register.
""" """
USERPROFILES_EMAIL_ENABLED = False USERPROFILES_EMAIL_ENABLED = True
"""Exclude the user email in the profile form.""" """Exclude the user email in the profile form."""
# Invenio-shibboleth USERPROFILES_READ_ONLY = True
"""Allow users to change profile info (name, email, etc...)."""
# Invenio-saml
# =========== # ===========
# See https://invenio-shibboleth.readthedocs.io/en/latest/configuration.html # See https://invenio-saml.readthedocs.io/en/latest/configuration.html
SSO_SAML_IDPS = {} SSO_SAML_IDPS = {}
"""Configuration of IDPS. Actual values can be find in to invenio.cfg file""" """Configuration of IDPS. Actual values can be find in to invenio.cfg file"""
@@ -153,13 +161,16 @@ SSO_SAML_DEFAULT_SLS_ROUTE = "/sls/<idp>"
# =========== # ===========
# See https://invenio-accounts.readthedocs.io/en/latest/configuration.html # See https://invenio-accounts.readthedocs.io/en/latest/configuration.html
ACCOUNTS_LOCAL_LOGIN_ENABLED = True
"""Allow local login."""
SECURITY_CHANGEABLE = False SECURITY_CHANGEABLE = False
"""Allow password change by users.""" """Allow password change by users."""
SECURITY_RECOVERABLE = False SECURITY_RECOVERABLE = False
"""Allow password recovery by users.""" """Allow password recovery by users."""
SECURITY_REGISTERABLE = False SECURITY_REGISTERABLE = True
""""Allow users to register. """"Allow users to register.
With this variable set to "False" users will not be With this variable set to "False" users will not be
@@ -228,16 +239,6 @@ password from ``users.yaml`` will be used. If that is also absent, a password
will be generated randomly. will be generated randomly.
""" """
# Custom Access Right
# RDM_RECORDS_CUSTOM_VOCABULARIES = {
# 'access_right': {
# 'path': join(
# dirname(abspath(__file__)),
# 'restrictions', 'access_right', 'access_right_limit.csv'
# )
# }
# }
# Invenio-app-rdm # Invenio-app-rdm
# ========================= # =========================
# See https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/config.py # See https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/config.py

View File

@@ -53,34 +53,34 @@ Using Custom Generator for a policy:
Permissions for Invenio (RDM) Records. Permissions for Invenio (RDM) Records.
""" """
from invenio_rdm_records.services import RDMRecordPermissionPolicy # from invenio_rdm_records.services import RDMRecordPermissionPolicy
from invenio_rdm_records.services.config import RDMRecordServiceConfig # from invenio_rdm_records.services.config import RDMRecordServiceConfig
from invenio_rdm_records.services.generators import IfDraft, IfRestricted, RecordOwners # from invenio_rdm_records.services.generators import IfDraft, IfRestricted, RecordOwners
from invenio_records_permissions.generators import ( # from invenio_records_permissions.generators import (
Admin, # Admin,
AnyUser, # AnyUser,
AuthenticatedUser, # AuthenticatedUser,
Disable, # Disable,
SuperUser, # SuperUser,
SystemProcess, # SystemProcess,
) # )
class TUGRAZPermissionPolicy(RDMRecordPermissionPolicy): # class TUGRAZPermissionPolicy(RDMRecordPermissionPolicy):
"""Access control configuration for rdm records. # """Access control configuration for rdm records.
This overrides the origin: # This overrides the origin:
https://github.com/inveniosoftware/invenio-rdm-records/blob/master/invenio_rdm_records/services/permissions.py. # https://github.com/inveniosoftware/invenio-rdm-records/blob/master/invenio_rdm_records/services/permissions.py.
Access control configuration for records. # Access control configuration for records.
Note that even if the array is empty, the invenio_access Permission class # Note that even if the array is empty, the invenio_access Permission class
always adds the ``superuser-access``, so admins will always be allowed. # always adds the ``superuser-access``, so admins will always be allowed.
- Create action given to everyone for now. # - Create action given to everyone for now.
- Read access given to everyone if public record and given to owners # - Read access given to everyone if public record and given to owners
always. (inherited) # always. (inherited)
- Update access given to record owners. (inherited) # - Update access given to record owners. (inherited)
- Delete access given to admins only. (inherited) # - Delete access given to admins only. (inherited)
""" # """
class TUGRAZRDMRecordServiceConfig(RDMRecordServiceConfig): # class TUGRAZRDMRecordServiceConfig(RDMRecordServiceConfig):
"""Overriding BibliographicRecordServiceConfig.""" # """Overriding BibliographicRecordServiceConfig."""

View File

@@ -1,26 +0,0 @@
<p>
{% trans salut=current_userprofile.full_name or user.email %}
Dear {{ salut }}!
{% endtrans %}
</p>
<p>
{{ _('To help you get started, here are some useful links:') }}
</p>
<p>
<a href="{{ config.SITE_HOSTNAME }}{{ url_for('invenio_theme_tugraz.index') }}"> {{ _('TU Graz Repository') }} </a> <br>
<a href="{{ config.SITE_HOSTNAME }}{{ url_for('invenio_theme_tugraz.guide')">{{ _('Reference Guide') }}</a><br>
<a href="{{ config.SITE_HOSTNAME }}{{ url_for('invenio_theme_tugraz.terms')"> {{ _('Terms and Conditions') }} </a> <br>
</p>
{% if security.confirmable %}
<p>{{ _('You can confirm your email through the link below:') }}</p>
<p><a href="{{ confirmation_link }}">{{ _('Confirm my account') }}</a></p>
{% endif %}
<p>
{{ _('Best regards') }} <br>
{{ _('TU Graz Repository Team') }}
</p>

View File

@@ -1,14 +1,18 @@
{{ _('Dear %(email)s!', email=user.email) }} {{ _('Dear user,') }}
{{ _('Welcome to the Repository of TU Graz!') }}
{{ _('To help you get started, here are some useful links:') }} {{ _('To help you get started, here are some useful links:') }}
{{ _('Repository')}}: https://{{ config.SITE_HOSTNAME }}{{ url_for('invenio_theme_tugraz.index') }} - {{ _('Guidelines:')}} {{ _('Repository Guide')}} ({{ _('how to upload files')}}) (https://{{ config.SITE_HOSTNAME }}{{ url_for('invenio_config_tugraz.guide') }})
{{ _('Repository Guide')}}: https://{{ config.SITE_HOSTNAME }}{{ url_for('invenio_theme_tugraz.guide') }} - {{ _('Search Guide')}} (https://{{ config.SITE_HOSTNAME }}{{url_for('invenio_app_rdm.help_search')}})
{{ _('Terms And Conditions')}}: https://{{ config.SITE_HOSTNAME }}{{ url_for('invenio_theme_tugraz.terms') }} - {{ _('Terms And Conditions') }} (https://{{ config.SITE_HOSTNAME }}{{ url_for('invenio_config_tugraz.terms') }})
- {{ _('Data Protection Rights')}} (https://{{ config.SITE_HOSTNAME }}{{ url_for('invenio_config_tugraz.gdpr') }})
{% if security.confirmable %} {% if security.confirmable %}
{{ _('You can confirm your email through the link below:') }} {{ _('You can confirm your email through the link below:') }}
{{ confirmation_link }}"> {{ confirmation_link }}">
{% endif %} {% endif %}
{{ _('If you require any assistance please do not hesitate to contact us at repository-support@tugraz.at.') }}
{{ _('Best regards') }} {{ _('Best regards,') }}
{{ _('TU Graz Repository Team') }} {{ _('TU Graz Repository Team') }}

View File

@@ -1,15 +1,15 @@
# German translations for invenio-config-tugraz. # German translations for invenio-config-tugraz.
# Copyright (C) 2020 Mojib Wali # Copyright (C) 2021 Graz University of Technology
# This file is distributed under the same license as the # This file is distributed under the same license as the
# invenio-config-tugraz project. # invenio-config-tugraz project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: invenio-config-tugraz 0.1.5\n" "Project-Id-Version: invenio-config-tugraz 0.5.5\n"
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n" "Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
"POT-Creation-Date: 2020-10-06 09:28+0200\n" "POT-Creation-Date: 2021-04-27 15:30+0200\n"
"PO-Revision-Date: 2020-10-06 09:28+0200\n" "PO-Revision-Date: 2021-04-22 11:57+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: de\n" "Language: de\n"
"Language-Team: de <LL@li.org>\n" "Language-Team: de <LL@li.org>\n"
@@ -17,9 +17,67 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.9.0\n"
#: invenio_config_tugraz/config.py:80 #: invenio_config_tugraz/config.py:87
msgid "Welcome to RDM!" msgid "Welcome to TU Graz Repository!"
msgstr "Willkommen im TU Graz Repository!"
#: invenio_config_tugraz/templates/security/email/welcome.txt:1
msgid "Dear user,"
msgstr "Lieber Nutzer,"
#: invenio_config_tugraz/templates/security/email/welcome.txt:3
msgid "Welcome to the Repository of TU Graz!"
msgstr "Willkommen im TU Graz Repository!"
#: invenio_config_tugraz/templates/security/email/welcome.txt:5
msgid "To help you get started, here are some useful links:"
msgstr "" msgstr ""
"Um Ihnen den Einstieg zu erleichtern, finden Sie hier einige nützliche "
"Links:"
#: invenio_config_tugraz/templates/security/email/welcome.txt:7
msgid "Guidelines:"
msgstr "Leitfaden:"
#: invenio_config_tugraz/templates/security/email/welcome.txt:7
msgid "Repository Guide"
msgstr "Handbuch"
#: invenio_config_tugraz/templates/security/email/welcome.txt:7
msgid "how to upload files"
msgstr "wie man Dateien hochlädt"
#: invenio_config_tugraz/templates/security/email/welcome.txt:8
msgid "Search Guide"
msgstr "Suchanleitung"
#: invenio_config_tugraz/templates/security/email/welcome.txt:9
msgid "Terms And Conditions"
msgstr "Nutzungsbedingungen"
#: invenio_config_tugraz/templates/security/email/welcome.txt:10
msgid "Data Protection Rights"
msgstr "Datenschutzerklärung"
#: invenio_config_tugraz/templates/security/email/welcome.txt:13
msgid "You can confirm your email through the link below:"
msgstr "Sie können Ihre E-Mail über den folgenden Link bestätigen:"
#: invenio_config_tugraz/templates/security/email/welcome.txt:16
msgid ""
"If you require any assistance please do not hesitate to contact us at "
"repository-support@tugraz.at."
msgstr ""
"Wenn Sie Hilfe benötigen, zögern Sie bitte nicht, uns unter repository-"
"support@tugraz.at zu kontaktieren."
#: invenio_config_tugraz/templates/security/email/welcome.txt:18
msgid "Best regards,"
msgstr "Mit freundlichen Grüßen,"
#: invenio_config_tugraz/templates/security/email/welcome.txt:19
msgid "TU Graz Repository Team"
msgstr "TU Graz Repository Team"

View File

@@ -1,24 +1,78 @@
# Translations template for invenio-config-tugraz. # Translations template for invenio-config-tugraz.
# Copyright (C) 2020 Mojib Wali # Copyright (C) 2021 Graz University of Technology
# This file is distributed under the same license as the # This file is distributed under the same license as the
# invenio-config-tugraz project. # invenio-config-tugraz project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: invenio-config-tugraz 0.1.5\n" "Project-Id-Version: invenio-config-tugraz 0.5.5\n"
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n" "Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
"POT-Creation-Date: 2020-10-06 09:28+0200\n" "POT-Creation-Date: 2021-04-27 15:30+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.9.0\n"
#: invenio_config_tugraz/config.py:80 #: invenio_config_tugraz/config.py:87
msgid "Welcome to RDM!" msgid "Welcome to TU Graz Repository!"
msgstr ""
#: invenio_config_tugraz/templates/security/email/welcome.txt:1
msgid "Dear user,"
msgstr ""
#: invenio_config_tugraz/templates/security/email/welcome.txt:3
msgid "Welcome to the Repository of TU Graz!"
msgstr ""
#: invenio_config_tugraz/templates/security/email/welcome.txt:5
msgid "To help you get started, here are some useful links:"
msgstr ""
#: invenio_config_tugraz/templates/security/email/welcome.txt:7
msgid "Guidelines:"
msgstr ""
#: invenio_config_tugraz/templates/security/email/welcome.txt:7
msgid "Repository Guide"
msgstr ""
#: invenio_config_tugraz/templates/security/email/welcome.txt:7
msgid "how to upload files"
msgstr ""
#: invenio_config_tugraz/templates/security/email/welcome.txt:8
msgid "Search Guide"
msgstr ""
#: invenio_config_tugraz/templates/security/email/welcome.txt:9
msgid "Terms And Conditions"
msgstr ""
#: invenio_config_tugraz/templates/security/email/welcome.txt:10
msgid "Data Protection Rights"
msgstr ""
#: invenio_config_tugraz/templates/security/email/welcome.txt:13
msgid "You can confirm your email through the link below:"
msgstr ""
#: invenio_config_tugraz/templates/security/email/welcome.txt:16
msgid ""
"If you require any assistance please do not hesitate to contact us at "
"repository-support@tugraz.at."
msgstr ""
#: invenio_config_tugraz/templates/security/email/welcome.txt:18
msgid "Best regards,"
msgstr ""
#: invenio_config_tugraz/templates/security/email/welcome.txt:19
msgid "TU Graz Repository Team"
msgstr "" msgstr ""

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 Mojib Wali. # Copyright (C) 2020-2021 Graz University of Technology.
# #
# invenio-config-tugraz is free software; you can redistribute it and/or # invenio-config-tugraz is free software; you can redistribute it and/or
# modify it under the terms of the MIT License; see LICENSE file for more # modify it under the terms of the MIT License; see LICENSE file for more
@@ -12,4 +12,4 @@ This file is imported by ``invenio_config_tugraz.__init__``,
and parsed by ``setup.py``. and parsed by ``setup.py``.
""" """
__version__ = "0.5.4" __version__ = "0.6.1"

View File

@@ -12,17 +12,25 @@ from os import environ
from typing import Dict from typing import Dict
from elasticsearch_dsl.utils import AttrDict from elasticsearch_dsl.utils import AttrDict
from flask import Blueprint, current_app from flask import Blueprint, current_app, redirect, url_for
from flask_babelex import get_locale
def ui_blueprint(app): def ui_blueprint(app):
"""Blueprint for the routes and resources provided by invenio-config-tugraz.""" """Blueprint for the routes and resources provided by invenio-config-tugraz."""
routes = app.config.get("CONFIG_TUGRAZ_ROUTES")
blueprint = Blueprint( blueprint = Blueprint(
"invenio_config_tugraz", "invenio_config_tugraz",
__name__, __name__,
template_folder="templates", template_folder="templates",
static_folder="static",
) )
blueprint.add_url_rule(routes["guide"], view_func=guide)
blueprint.add_url_rule(routes["terms"], view_func=terms)
blueprint.add_url_rule(routes["gdpr"], view_func=gdpr)
@blueprint.before_app_first_request @blueprint.before_app_first_request
def rank_higher(): def rank_higher():
"""Rank this modules blueprint higher than blueprint of security module.""" """Rank this modules blueprint higher than blueprint of security module."""
@@ -42,3 +50,27 @@ def ui_blueprint(app):
blueprints[our_index] = temp blueprints[our_index] = temp
return blueprint return blueprint
def guide():
"""TUGraz_Repository_Guide."""
locale = get_locale()
return redirect(url_for('static',
filename=f'documents/TUGraz_Repository_Guide_02_{locale}.pdf',
_external=True))
def terms():
"""Terms_And_Conditions."""
locale = get_locale()
return redirect(url_for('static',
filename=f'documents/TUGraz_Repository_Terms_And_Conditions_{locale}.pdf',
_external=True))
def gdpr():
"""General_Data_Protection_Rights."""
locale = get_locale()
return redirect(url_for('static',
filename=f'documents/TUGraz_Repository_General_Data_Protection_Rights_{locale}.pdf',
_external=True))

View File

@@ -24,7 +24,7 @@ add_ignore = D401
directory = invenio_config_tugraz/translations/ directory = invenio_config_tugraz/translations/
[extract_messages] [extract_messages]
copyright_holder = Mojib Wali copyright_holder = Graz University of Technology
msgid_bugs_address = mojib.wali@tugraz.at msgid_bugs_address = mojib.wali@tugraz.at
mapping-file = babel.ini mapping-file = babel.ini
output-file = invenio_config_tugraz/translations/messages.pot output-file = invenio_config_tugraz/translations/messages.pot

View File

@@ -54,7 +54,7 @@ setup_requires = [
install_requires = [ install_requires = [
"Flask-BabelEx>=0.9.4", "Flask-BabelEx>=0.9.4",
# keep this in sync with invenioRDM release # keep this in sync with invenioRDM release
"invenio_rdm_records>=0.28.0,<0.29.0", "invenio_app_rdm==4.0.0",
] ]
packages = find_packages() packages = find_packages()