mirror of
https://github.com/Cian-H/invenio-config-iform.git
synced 2025-12-23 13:31:58 +00:00
Compare commits
58 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
087cafa3ae | ||
|
|
14e9e0557a | ||
|
|
8669f5dcda | ||
|
|
62256b346f | ||
|
|
4a8b02ec4a | ||
|
|
8a592e3fdf | ||
|
|
42d5e2db05 | ||
|
|
3db870784b | ||
|
|
73bc8b4575 | ||
|
|
7fd5a7df3f | ||
|
|
79fe24511a | ||
|
|
5b7a1718fc | ||
|
|
9192107e99 | ||
|
|
c43c36ece3 | ||
|
|
3acbaf65ef | ||
|
|
408bdc47b1 | ||
|
|
6c6138b682 | ||
|
|
cc2c462057 | ||
|
|
3f2cf9f800 | ||
|
|
db0c7a4e21 | ||
|
|
91464bbd7c | ||
|
|
d7fe2926c7 | ||
|
|
d5fcf60cf7 | ||
|
|
772b21c93a | ||
|
|
c39221378f | ||
|
|
a42f86fcdf | ||
|
|
0dd0db04e2 | ||
|
|
b02ce8a755 | ||
|
|
41dcb8f437 | ||
|
|
35854691bd | ||
|
|
f2e18b95c3 | ||
|
|
16c10593d6 | ||
|
|
dbd870d106 | ||
|
|
f02e992acd | ||
|
|
a7abb0bc5e | ||
|
|
7ca398efdd | ||
|
|
b33c7e09c3 | ||
|
|
0c775851d8 | ||
|
|
89f6aee814 | ||
|
|
44e5857143 | ||
|
|
460de9fc35 | ||
|
|
b1d7a6558e | ||
|
|
890fded625 | ||
|
|
1304563a3e | ||
|
|
a08201041a | ||
|
|
548896be11 | ||
|
|
a10433aba3 | ||
|
|
f0fbabbaa8 | ||
|
|
5e2a58c764 | ||
|
|
9af1beff88 | ||
|
|
80575cbced | ||
|
|
60b85e6ad5 | ||
|
|
10f68379b5 | ||
|
|
49766790d7 | ||
|
|
977d5588f4 | ||
|
|
ded93fabeb | ||
|
|
c2ee5fa4b7 | ||
|
|
cf3ffa1543 |
@@ -15,15 +15,6 @@ insert_final_newline = true
|
|||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
|
|
||||||
# Python files
|
|
||||||
[*.py]
|
|
||||||
indent_size = 4
|
|
||||||
# isort plugin configuration
|
|
||||||
known_first_party = invenio_config_tugraz
|
|
||||||
multi_line_output = 2
|
|
||||||
default_section = THIRDPARTY
|
|
||||||
skip = .eggs
|
|
||||||
|
|
||||||
# RST files (used by sphinx)
|
# RST files (used by sphinx)
|
||||||
[*.rst]
|
[*.rst]
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
|
|||||||
1
.git-blame-ignore-revs
Normal file
1
.git-blame-ignore-revs
Normal file
@@ -0,0 +1 @@
|
|||||||
|
766b2cafae4dc74393b103389e6978eca5a9cfd2
|
||||||
2
.github/workflows/pypi-publish.yml
vendored
2
.github/workflows/pypi-publish.yml
vendored
@@ -15,7 +15,7 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
pip install setuptools wheel
|
pip install setuptools wheel "babel<=2.9.1"
|
||||||
- name: Build package
|
- name: Build package
|
||||||
run: |
|
run: |
|
||||||
python setup.py compile_catalog sdist bdist_wheel
|
python setup.py compile_catalog sdist bdist_wheel
|
||||||
|
|||||||
28
.github/workflows/tests.yml
vendored
28
.github/workflows/tests.yml
vendored
@@ -20,9 +20,21 @@ jobs:
|
|||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
python-version: [3.6, 3.7, 3.8]
|
python-version: [3.8, 3.9]
|
||||||
requirements-level: [min, pypi]
|
requirements-level: [pypi]
|
||||||
|
db-service: [postgresql13]
|
||||||
|
search-service: [opensearch2]
|
||||||
|
include:
|
||||||
|
- db-service: postgresql13
|
||||||
|
DB_EXTRAS: "postgresql"
|
||||||
|
|
||||||
|
- search-service: opensearch2
|
||||||
|
SEARCH_EXTRAS: "opensearch2"
|
||||||
|
|
||||||
|
env:
|
||||||
|
DB: ${{ matrix.db-service }}
|
||||||
|
SEARCH: ${{ matrix.search-service }}
|
||||||
|
EXTRAS: tests,${{ matrix.SEARCH_EXTRAS }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
@@ -34,9 +46,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Generate dependencies
|
- name: Generate dependencies
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip setuptools py wheel requirements-builder
|
pip install wheel requirements-builder
|
||||||
requirements-builder -e all --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
|
requirements-builder -e "$EXTRAS" --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
|
||||||
|
|
||||||
- name: Cache pip
|
- name: Cache pip
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
@@ -45,10 +56,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
pip install -r .${{matrix.requirements-level}}-${{ matrix.python-version }}-requirements.txt
|
pip install -r .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
|
||||||
pip install .[all]
|
pip install ".[$EXTRAS]"
|
||||||
pip freeze
|
pip freeze
|
||||||
|
docker --version
|
||||||
|
docker-compose --version
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: |
|
run: |
|
||||||
./run-tests.sh
|
./run-tests.sh
|
||||||
52
CHANGES.rst
52
CHANGES.rst
@@ -1,5 +1,5 @@
|
|||||||
..
|
..
|
||||||
Copyright (C) 2020 Mojib Wali.
|
Copyright (C) 2020 - 2022 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
|
||||||
@@ -8,6 +8,56 @@
|
|||||||
Changes
|
Changes
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
Version v0.10.1 (release 2022-11-17)
|
||||||
|
|
||||||
|
- global: add function
|
||||||
|
|
||||||
|
Version 0.10.0 (released 2022-10-13)
|
||||||
|
|
||||||
|
- global: migrate to v10 (#101)
|
||||||
|
|
||||||
|
Version 0.9.1 (released 2022-05-30)
|
||||||
|
|
||||||
|
- ci(publish): ping babel version (#99)
|
||||||
|
|
||||||
|
Version 0.9.0 (released 2022-05-30)
|
||||||
|
|
||||||
|
- config: adds new introduced configs v9
|
||||||
|
- dep: compatible to v9 rdm
|
||||||
|
- config: add deposit form quota variable (#91)
|
||||||
|
- migrate setup py to cfg (#94)
|
||||||
|
- fix: update email welcome template with SITE_UI_URL (#93)
|
||||||
|
|
||||||
|
Version 0.8.4 (released 2022-03-11)
|
||||||
|
|
||||||
|
- config: use gettext
|
||||||
|
|
||||||
|
Version 0.8.3 (released 2022-03-10)
|
||||||
|
|
||||||
|
- config: fix comment & import
|
||||||
|
|
||||||
|
Version 0.8.2 (released 2022-03-03)
|
||||||
|
|
||||||
|
- config: new introduced to v8 of invenioRDM
|
||||||
|
|
||||||
|
Version 0.8.1 (released 2022-02-28)
|
||||||
|
|
||||||
|
- config: set samesite cookie to strict
|
||||||
|
- dep: bump in base dependencies
|
||||||
|
|
||||||
|
Version 0.8.0 (released 2022-02-09)
|
||||||
|
|
||||||
|
- dep: bump rdm-records version
|
||||||
|
|
||||||
|
Version 0.7.1 (released 2021-12-07)
|
||||||
|
|
||||||
|
- configs: adds new & changed configs for v7 #76
|
||||||
|
|
||||||
|
Version 0.7.0 (released 2021-12-06)
|
||||||
|
|
||||||
|
- fix: update blueprint reorder #74
|
||||||
|
- dep: upgrade rdm-records version & OAI #72
|
||||||
|
|
||||||
Version 0.1.0 (released TBD)
|
Version 0.1.0 (released TBD)
|
||||||
|
|
||||||
- Initial public release.
|
- Initial public release.
|
||||||
|
|||||||
@@ -34,15 +34,22 @@ recursive-include docs *.py
|
|||||||
recursive-include docs *.rst
|
recursive-include docs *.rst
|
||||||
recursive-include docs *.txt
|
recursive-include docs *.txt
|
||||||
recursive-include docs Makefile
|
recursive-include docs Makefile
|
||||||
recursive-include invenio_config_tugraz *.html
|
|
||||||
recursive-include tests *.py
|
recursive-include tests *.py
|
||||||
|
|
||||||
|
|
||||||
# added by check_manifest.py
|
# added by check_manifest.py
|
||||||
recursive-include invenio_config_tugraz *.crt
|
recursive-include invenio_config_tugraz *.crt
|
||||||
recursive-include invenio_config_tugraz *.json
|
recursive-include invenio_config_tugraz *.json
|
||||||
recursive-include invenio_config_tugraz *.key
|
recursive-include invenio_config_tugraz *.key
|
||||||
recursive-include invenio_config_tugraz *.xml
|
recursive-include invenio_config_tugraz *.xml
|
||||||
recursive-include invenio_config_tugraz *.gitkeep
|
recursive-include invenio_config_tugraz *.gitkeep
|
||||||
|
recursive-include invenio_config_tugraz *.txt
|
||||||
|
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
|
||||||
|
include .git-blame-ignore-revs
|
||||||
|
|||||||
12
README.rst
12
README.rst
@@ -1,5 +1,5 @@
|
|||||||
..
|
..
|
||||||
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
|
||||||
@@ -15,11 +15,11 @@
|
|||||||
.. image:: https://img.shields.io/pypi/dm/invenio-config-tugraz.svg
|
.. image:: https://img.shields.io/pypi/dm/invenio-config-tugraz.svg
|
||||||
:target: https://pypi.python.org/pypi/invenio-config-tugraz
|
:target: https://pypi.python.org/pypi/invenio-config-tugraz
|
||||||
|
|
||||||
.. image:: https://img.shields.io/github/tag/mb-wali/invenio-config-tugraz.svg
|
.. image:: https://img.shields.io/github/tag/tu-graz-library/invenio-config-tugraz.svg
|
||||||
:target: https://github.com/mb-wali/invenio-config-tugraz/releases
|
:target: https://github.com/tu-graz-library/invenio-config-tugraz/releases
|
||||||
|
|
||||||
.. image:: https://img.shields.io/github/license/mb-wali/invenio-config-tugraz.svg
|
.. image:: https://img.shields.io/github/license/tu-graz-library/invenio-config-tugraz.svg
|
||||||
:target: https://github.com/mb-wali/invenio-config-tugraz/blob/master/LICENSE
|
:target: https://github.com/tu-graz-library/invenio-config-tugraz/blob/master/LICENSE
|
||||||
|
|
||||||
.. image:: https://readthedocs.org/projects/invenio-config-tugraz/badge/?version=latest
|
.. image:: https://readthedocs.org/projects/invenio-config-tugraz/badge/?version=latest
|
||||||
:target: https://invenio-config-tugraz.readthedocs.io/en/latest/?badge=latest
|
:target: https://invenio-config-tugraz.readthedocs.io/en/latest/?badge=latest
|
||||||
@@ -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/
|
||||||
|
|||||||
@@ -13,9 +13,8 @@ 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_
|
|
||||||
|
|
||||||
# Extraction from JavaScript files
|
# Extraction from JavaScript files
|
||||||
|
|
||||||
|
|||||||
33
docs/conf.py
33
docs/conf.py
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
"""Sphinx configuration."""
|
"""Sphinx configuration."""
|
||||||
|
|
||||||
import os
|
from invenio_config_tugraz import __version__
|
||||||
|
|
||||||
# import sphinx.environment
|
# import sphinx.environment
|
||||||
|
|
||||||
@@ -46,9 +46,9 @@ source_suffix = ".rst"
|
|||||||
master_doc = "index"
|
master_doc = "index"
|
||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = u"invenio-config-tugraz"
|
project = "invenio-config-tugraz"
|
||||||
copyright = u"2020, Mojib Wali"
|
copyright = "2022, TU Graz"
|
||||||
author = u"Mojib Wali"
|
author = "TU Graz"
|
||||||
|
|
||||||
# The version info for the project you're documenting, acts as replacement for
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
# |version| and |release|, also used in various other places throughout the
|
# |version| and |release|, also used in various other places throughout the
|
||||||
@@ -56,26 +56,15 @@ author = u"Mojib Wali"
|
|||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
|
|
||||||
# Get the version string. Cannot be done with import!
|
|
||||||
g = {}
|
|
||||||
with open(
|
|
||||||
os.path.join(
|
|
||||||
os.path.dirname(__file__), "..", "invenio_config_tugraz", "version.py"
|
|
||||||
),
|
|
||||||
"rt",
|
|
||||||
) as fp:
|
|
||||||
exec(fp.read(), g)
|
|
||||||
version = g["__version__"]
|
|
||||||
|
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = version
|
release = __version__
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
#
|
#
|
||||||
# This is also used if you do content translation via gettext catalogs.
|
# This is also used if you do content translation via gettext catalogs.
|
||||||
# Usually you set "language" from the command line for these cases.
|
# Usually you set "language" from the command line for these cases.
|
||||||
language = None
|
language = "en"
|
||||||
|
|
||||||
# There are two options for replacing |today|: either, you set today to some
|
# There are two options for replacing |today|: either, you set today to some
|
||||||
# non-false value, then it is used:
|
# non-false value, then it is used:
|
||||||
@@ -254,8 +243,8 @@ latex_documents = [
|
|||||||
(
|
(
|
||||||
master_doc,
|
master_doc,
|
||||||
"invenio-config-tugraz.tex",
|
"invenio-config-tugraz.tex",
|
||||||
u"invenio-config-tugraz Documentation",
|
"invenio-config-tugraz Documentation",
|
||||||
u"Mojib Wali",
|
"Mojib Wali",
|
||||||
"manual",
|
"manual",
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
@@ -289,7 +278,7 @@ man_pages = [
|
|||||||
(
|
(
|
||||||
master_doc,
|
master_doc,
|
||||||
"invenio-config-tugraz",
|
"invenio-config-tugraz",
|
||||||
u"invenio-config-tugraz Documentation",
|
"invenio-config-tugraz Documentation",
|
||||||
[author],
|
[author],
|
||||||
1,
|
1,
|
||||||
)
|
)
|
||||||
@@ -308,7 +297,7 @@ texinfo_documents = [
|
|||||||
(
|
(
|
||||||
master_doc,
|
master_doc,
|
||||||
"invenio-config-tugraz",
|
"invenio-config-tugraz",
|
||||||
u"invenio-config-tugraz Documentation",
|
"invenio-config-tugraz Documentation",
|
||||||
author,
|
author,
|
||||||
"invenio-config-tugraz",
|
"invenio-config-tugraz",
|
||||||
"invenio module that adds tugraz configs.",
|
"invenio module that adds tugraz configs.",
|
||||||
@@ -332,6 +321,8 @@ texinfo_documents = [
|
|||||||
# Example configuration for intersphinx: refer to the Python standard library.
|
# Example configuration for intersphinx: refer to the Python standard library.
|
||||||
intersphinx_mapping = {
|
intersphinx_mapping = {
|
||||||
"python": ("https://docs.python.org/", None),
|
"python": ("https://docs.python.org/", None),
|
||||||
|
"flask": ("https://flask.palletsprojects.com/", None),
|
||||||
|
"werkzeug": ("https://werkzeug.palletsprojects.com/", None),
|
||||||
# TODO: Configure external documentation references, eg:
|
# TODO: Configure external documentation references, eg:
|
||||||
# 'Flask-Admin': ('https://flask-admin.readthedocs.io/en/latest/', None),
|
# 'Flask-Admin': ('https://flask-admin.readthedocs.io/en/latest/', None),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
# Copyright (C) 2020-2022 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
|
||||||
@@ -10,6 +10,13 @@
|
|||||||
|
|
||||||
from .ext import InvenioConfigTugraz
|
from .ext import InvenioConfigTugraz
|
||||||
from .generators import RecordIp
|
from .generators import RecordIp
|
||||||
from .version import __version__
|
from .utils import get_identity_from_user_by_email
|
||||||
|
|
||||||
__all__ = ("__version__", "InvenioConfigTugraz", "RecordIp")
|
__version__ = "0.10.1"
|
||||||
|
|
||||||
|
__all__ = (
|
||||||
|
"__version__",
|
||||||
|
"InvenioConfigTugraz",
|
||||||
|
"RecordIp",
|
||||||
|
"get_identity_from_user_by_email",
|
||||||
|
)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Graz University of Technology.
|
# 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
|
||||||
@@ -49,40 +49,40 @@ Using Custom Generator for a policy:
|
|||||||
Permissions for Invenio records.
|
Permissions for Invenio records.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from invenio_records_permissions.generators import (
|
# from invenio_records_permissions.generators import (
|
||||||
Admin,
|
# Admin,
|
||||||
AnyUser,
|
# AnyUser,
|
||||||
AnyUserIfPublic,
|
# AnyUserIfPublic,
|
||||||
RecordOwners,
|
# RecordOwners,
|
||||||
)
|
# )
|
||||||
from invenio_records_permissions.policies.base import BasePermissionPolicy
|
# from invenio_records_permissions.policies.base import BasePermissionPolicy
|
||||||
|
|
||||||
from .generators import RecordIp
|
# from .generators import RecordIp
|
||||||
|
|
||||||
|
|
||||||
class TUGRAZPermissionPolicy(BasePermissionPolicy):
|
# class TUGRAZPermissionPolicy(BasePermissionPolicy):
|
||||||
"""Access control configuration for records.
|
# """Access control configuration for records.
|
||||||
|
|
||||||
This overrides the /api/records endpoint.
|
# This overrides the /api/records endpoint.
|
||||||
|
|
||||||
"""
|
# """
|
||||||
|
|
||||||
# Read access to API given to everyone.
|
# # Read access to API given to everyone.
|
||||||
can_search = [AnyUser(), RecordIp()]
|
# can_search = [AnyUser(), RecordIp()]
|
||||||
|
|
||||||
# Read access given to everyone if public record/files and owners always.
|
# # Read access given to everyone if public record/files and owners always.
|
||||||
can_read = [AnyUserIfPublic(), RecordOwners(), RecordIp()]
|
# can_read = [AnyUserIfPublic(), RecordOwners(), RecordIp()]
|
||||||
|
|
||||||
# Create action given to no one (Not even superusers) bc Deposits should
|
# # Create action given to no one (Not even superusers) bc Deposits should
|
||||||
# be used.
|
# # be used.
|
||||||
can_create = [AnyUser()]
|
# can_create = [AnyUser()]
|
||||||
|
|
||||||
# Update access given to record owners.
|
# # Update access given to record owners.
|
||||||
can_update = [RecordOwners()]
|
# can_update = [RecordOwners()]
|
||||||
|
|
||||||
# Delete access given to admins only.
|
# # Delete access given to admins only.
|
||||||
can_delete = [Admin()]
|
# can_delete = [Admin()]
|
||||||
|
|
||||||
# Associated files permissions (which are really bucket permissions)
|
# # Associated files permissions (which are really bucket permissions)
|
||||||
can_read_files = [AnyUserIfPublic(), RecordOwners()]
|
# can_read_files = [AnyUserIfPublic(), RecordOwners()]
|
||||||
can_update_files = [RecordOwners()]
|
# can_update_files = [RecordOwners()]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Graz University of Technology.
|
# Copyright (C) 2020-2022 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
|
||||||
@@ -8,8 +8,6 @@
|
|||||||
|
|
||||||
"""invenio module that adds tugraz configs."""
|
"""invenio module that adds tugraz configs."""
|
||||||
|
|
||||||
from os.path import abspath, dirname, join
|
|
||||||
|
|
||||||
from flask_babelex import gettext as _
|
from flask_babelex import gettext as _
|
||||||
|
|
||||||
INVENIO_CONFIG_TUGRAZ_SHIBBOLETH = False
|
INVENIO_CONFIG_TUGRAZ_SHIBBOLETH = False
|
||||||
@@ -29,33 +27,26 @@ 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
|
||||||
|
|
||||||
APP_ALLOWED_HOSTS = [
|
|
||||||
"0.0.0.0",
|
|
||||||
"localhost",
|
|
||||||
"127.0.0.1",
|
|
||||||
"invenio-dev01.tugraz.at",
|
|
||||||
"invenio-test.tugraz.at",
|
|
||||||
"repository.tugraz.at",
|
|
||||||
]
|
|
||||||
"""Allowed Hosts"""
|
|
||||||
|
|
||||||
APP_DEFAULT_SECURE_HEADERS = {
|
APP_DEFAULT_SECURE_HEADERS = {
|
||||||
"content_security_policy": {
|
"content_security_policy": {
|
||||||
"default-src": [
|
"default-src": [
|
||||||
"'self'",
|
"'self'",
|
||||||
"fonts.googleapis.com",
|
|
||||||
"*.gstatic.com",
|
|
||||||
"data:",
|
"data:",
|
||||||
"'unsafe-inline'",
|
"'unsafe-inline'",
|
||||||
"'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,
|
||||||
@@ -73,6 +64,15 @@ APP_DEFAULT_SECURE_HEADERS = {
|
|||||||
"strict_transport_security_preload": False,
|
"strict_transport_security_preload": False,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Invenio-I18N
|
||||||
|
# ============
|
||||||
|
# See https://invenio-i18n.readthedocs.io/en/latest/configuration.html
|
||||||
|
BABEL_DEFAULT_LOCALE = "en"
|
||||||
|
# Default time zone
|
||||||
|
BABEL_DEFAULT_TIMEZONE = "Europe/Vienna"
|
||||||
|
# Other supported languages (do not include BABEL_DEFAULT_LOCALE in list).
|
||||||
|
I18N_LANGUAGES = [("de", _("German"))]
|
||||||
|
|
||||||
# Invenio-Mail
|
# Invenio-Mail
|
||||||
# ===========
|
# ===========
|
||||||
# See https://invenio-mail.readthedocs.io/en/latest/configuration.html
|
# See https://invenio-mail.readthedocs.io/en/latest/configuration.html
|
||||||
@@ -84,7 +84,7 @@ SECURITY_EMAIL_SENDER = "info@invenio-test.tugraz.at"
|
|||||||
"""Email address used as sender of account registration emails."""
|
"""Email address used as sender of account registration emails."""
|
||||||
"""Domain name should match the domain used in web server."""
|
"""Domain name should match the domain used in web server."""
|
||||||
|
|
||||||
SECURITY_EMAIL_SUBJECT_REGISTER = _("Welcome to RDM!")
|
SECURITY_EMAIL_SUBJECT_REGISTER = _("Welcome to TU Graz Repository!")
|
||||||
"""Email subject for account registration emails."""
|
"""Email subject for account registration emails."""
|
||||||
|
|
||||||
MAIL_SUPPRESS_SEND = True
|
MAIL_SUPPRESS_SEND = True
|
||||||
@@ -113,19 +113,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 +156,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
|
||||||
@@ -172,6 +178,18 @@ SECURITY_CONFIRMABLE = False
|
|||||||
Instead user will get a welcome email.
|
Instead user will get a welcome email.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
SECURITY_LOGIN_WITHOUT_CONFIRMATION = False
|
||||||
|
"""Require users to confirm email before being able to login."""
|
||||||
|
|
||||||
|
# Flask-Security
|
||||||
|
# =============
|
||||||
|
# See https://pythonhosted.org/Flask-Security/configuration.html
|
||||||
|
SECURITY_EMAIL_PLAINTEXT = True
|
||||||
|
"""Render email content as plaintext."""
|
||||||
|
|
||||||
|
SECURITY_EMAIL_HTML = False
|
||||||
|
"""Render email content as HTML."""
|
||||||
|
|
||||||
|
|
||||||
ACCOUNTS = True
|
ACCOUNTS = True
|
||||||
"""Tells if the templates should use the accounts module.
|
"""Tells if the templates should use the accounts module.
|
||||||
@@ -198,16 +216,9 @@ RECAPTCHA_PRIVATE_KEY = None
|
|||||||
# =======
|
# =======
|
||||||
# See:
|
# See:
|
||||||
# https://invenio-records-permissions.readthedocs.io/en/latest/configuration.html
|
# https://invenio-records-permissions.readthedocs.io/en/latest/configuration.html
|
||||||
#
|
|
||||||
# Uncomment these to enable overriding Base permissions - (NOT RECOMMANDED)
|
|
||||||
# RECORDS_PERMISSIONS_RECORD_POLICY = (
|
|
||||||
# 'invenio_config_tugraz.base_permissions.TUGRAZPermissionPolicy'
|
|
||||||
# )
|
|
||||||
#
|
|
||||||
# Uncomment these to enable overriding RDM permissions
|
# Uncomment these to enable overriding RDM permissions
|
||||||
# RDM_RECORDS_BIBLIOGRAPHIC_SERVICE_CONFIG = (
|
# from .rdm_permissions import TUGRAZRDMRecordServiceConfig
|
||||||
# 'invenio_config_tugraz.rdm_permissions.TUGRAZBibliographicRecordServiceConfig'
|
# RDM_RECORDS_BIBLIOGRAPHIC_SERVICE_CONFIG = TUGRAZRDMRecordServiceConfig
|
||||||
# )
|
|
||||||
"""Access control configuration for records."""
|
"""Access control configuration for records."""
|
||||||
|
|
||||||
# invenio-rdm-records
|
# invenio-rdm-records
|
||||||
@@ -215,12 +226,149 @@ RECAPTCHA_PRIVATE_KEY = None
|
|||||||
# See:
|
# See:
|
||||||
# https://invenio-rdm-records.readthedocs.io/en/latest/configuration.html
|
# https://invenio-rdm-records.readthedocs.io/en/latest/configuration.html
|
||||||
#
|
#
|
||||||
# Custom Access Right
|
RDM_RECORDS_USER_FIXTURE_PASSWORDS = {"info@tugraz.at": None}
|
||||||
# RDM_RECORDS_CUSTOM_VOCABULARIES = {
|
"""Overrides for the user fixtures' passwords.
|
||||||
# 'access_right': {
|
The password set for a user fixture in this dictionary overrides the
|
||||||
# 'path': join(
|
password set in the ``users.yaml`` file. This can be used to set custom
|
||||||
# dirname(abspath(__file__)),
|
passwords for the fixture users (of course, this has to be configured
|
||||||
# 'restrictions', 'access_right', 'access_right_limit.csv'
|
before the fixtures are installed, e.g. by setting up the services).
|
||||||
# )
|
If ``None`` or an empty string is configured in this dictionary, then the
|
||||||
# }
|
password from ``users.yaml`` will be used. If that is also absent, a password
|
||||||
# }
|
will be generated randomly.
|
||||||
|
"""
|
||||||
|
|
||||||
|
DATACITE_FORMAT = "{prefix}/{id}"
|
||||||
|
"""Customize the generated DOI string."""
|
||||||
|
|
||||||
|
DATACITE_DATACENTER_SYMBOL = ""
|
||||||
|
""""The OAI-PMH server's metadata format oai_datacite
|
||||||
|
that allows you to harvest record from InvenioRDM in DataCite XML needs
|
||||||
|
to be configured with your DataCite data center symbol.
|
||||||
|
This is only required if you want your records to be harvestable in DataCite XML format.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Invenio-app-rdm
|
||||||
|
# =========================
|
||||||
|
# See https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/config.py
|
||||||
|
APP_RDM_DEPOSIT_FORM_DEFAULTS = {
|
||||||
|
"publisher": "Graz University of Technology",
|
||||||
|
}
|
||||||
|
"""Default values for new records in the deposit UI.
|
||||||
|
|
||||||
|
The keys denote the dot-separated path, where in the record's metadata
|
||||||
|
the values should be set (see invenio-records.dictutils).
|
||||||
|
If the value is callable, its return value will be used for the field
|
||||||
|
(e.g. lambda/function for dynamic calculation of values).
|
||||||
|
"""
|
||||||
|
|
||||||
|
APP_RDM_DEPOSIT_FORM_AUTOCOMPLETE_NAMES = "off"
|
||||||
|
"""Behavior for autocomplete names search field for creators/contributors.
|
||||||
|
|
||||||
|
Available options:
|
||||||
|
|
||||||
|
- ``search`` (default): Show search field and form always.
|
||||||
|
- ``search_only``: Only show search field. Form displayed after selection or
|
||||||
|
explicit "manual" entry.
|
||||||
|
- ``off``: Only show person form (no search field).
|
||||||
|
"""
|
||||||
|
|
||||||
|
APP_RDM_DEPOSIT_FORM_QUOTA = {
|
||||||
|
"maxFiles": 100,
|
||||||
|
# Easiest way to set this to a certain amount is to start from 1 Gb
|
||||||
|
# and go from there:
|
||||||
|
# 1 Gb: 10 ** 9
|
||||||
|
# 50 Gb: 10 ** 9 * 50
|
||||||
|
# 100 Mb: 10 ** 9 * 0.1
|
||||||
|
"maxStorage": 10**9 * 10,
|
||||||
|
}
|
||||||
|
"""Deposit file upload quota """
|
||||||
|
|
||||||
|
SQLALCHEMY_ECHO = False
|
||||||
|
"""Enable to see all SQL queries."""
|
||||||
|
|
||||||
|
SQLALCHEMY_ENGINE_OPTIONS = {
|
||||||
|
"pool_pre_ping": False,
|
||||||
|
"pool_recycle": 3600,
|
||||||
|
# set a more agressive timeout to ensure http requests don't wait for long
|
||||||
|
"pool_timeout": 10,
|
||||||
|
}
|
||||||
|
"""SQLAlchemy engine options.
|
||||||
|
|
||||||
|
This is used to configure for instance the database connection pool.
|
||||||
|
Specifically for connection pooling the following options below are relevant.
|
||||||
|
Note, that the connection pool settings have to be aligned with:
|
||||||
|
|
||||||
|
1. your database server's max allowed connections settings, and
|
||||||
|
2. your application deployment (number of processes/threads)
|
||||||
|
|
||||||
|
**Disconnect handling**
|
||||||
|
|
||||||
|
Note, it's possible that a connection you get from the connection pool is no
|
||||||
|
longer open. This happens if e.g. the database server was restarted or the
|
||||||
|
server has a timeout that closes the connection. In these case you'll see an
|
||||||
|
error similar to::
|
||||||
|
|
||||||
|
psycopg2.OperationalError: server closed the connection unexpectedly
|
||||||
|
This probably means the server terminated abnormally
|
||||||
|
before or while processing the request.
|
||||||
|
|
||||||
|
The errors can be avoided by using the ``pool_pre_ping`` option, which will
|
||||||
|
ensure the connection is open first by issuing a ``SELECT 1``. The pre-ping
|
||||||
|
feature however, comes with a performance penalty, and thus it may be better
|
||||||
|
to first try adjusting the ``pool_recyle`` to ensure connections are closed and
|
||||||
|
reopened regularly.
|
||||||
|
|
||||||
|
... code-block:: python
|
||||||
|
|
||||||
|
SQLALCHEMY_ENGINE_OPTIONS = dict(
|
||||||
|
# enable the connection pool “pre-ping” feature that tests connections
|
||||||
|
# for liveness upon each checkout.
|
||||||
|
pool_pre_ping=True,
|
||||||
|
|
||||||
|
# the number of connections to allow in connection pool “overflow”,
|
||||||
|
# that is connections that can be opened above and beyond the
|
||||||
|
# pool_size setting
|
||||||
|
max_overflow=10,
|
||||||
|
|
||||||
|
# the number of connections to keep open inside the connection
|
||||||
|
pool_size=5,
|
||||||
|
|
||||||
|
# recycle connections after the given number of seconds has passed.
|
||||||
|
pool_recycle=3600,
|
||||||
|
|
||||||
|
# number of seconds to wait before giving up on getting a connection
|
||||||
|
# from the pool
|
||||||
|
pool_timeout=30,
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
See https://docs.sqlalchemy.org/en/latest/core/engines.html.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Redis (cache)
|
||||||
|
# ========
|
||||||
|
# Cache or Redis configurations
|
||||||
|
RATELIMIT_AUTHENTICATED_USER = "25000 per hour;1000 per minute"
|
||||||
|
"""Increase defaults for authenticated users."""
|
||||||
|
|
||||||
|
RATELIMIT_GUEST_USER = "5000 per hour;500 per minute"
|
||||||
|
"""Increase defaults for guest users."""
|
||||||
|
|
||||||
|
SESSION_COOKIE_SAMESITE = "Strict"
|
||||||
|
"""Sets cookie with the samesite flag to 'Strict' by default."""
|
||||||
|
|
||||||
|
|
||||||
|
# OAI-PMH
|
||||||
|
# =======
|
||||||
|
# See https://github.com/inveniosoftware/invenio-oaiserver/blob/master/invenio_oaiserver/config.py
|
||||||
|
|
||||||
|
OAISERVER_ID_PREFIX = "repository.tugraz.at"
|
||||||
|
"""The prefix that will be applied to the generated OAI-PMH ids."""
|
||||||
|
|
||||||
|
OAISERVER_ADMIN_EMAILS = [
|
||||||
|
"oai@repository.tugraz.at",
|
||||||
|
]
|
||||||
|
"""The e-mail addresses of administrators of the repository.
|
||||||
|
|
||||||
|
It **must** include one or more instances.
|
||||||
|
"""
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
# Copyright (C) 2020-2022 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
|
||||||
# details.
|
# details.
|
||||||
|
|
||||||
"""invenio module that adds tugraz configs."""
|
"""invenio module that adds tugraz configs."""
|
||||||
|
|
||||||
from . import config
|
from . import config
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
# Copyright (C) 2020-2022 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
|
||||||
@@ -151,10 +151,10 @@ The succinct encoding of the permissions for your instance gives you
|
|||||||
- great flexibility by defining your own actions, generators and policies
|
- great flexibility by defining your own actions, generators and policies
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from elasticsearch_dsl.query import Q
|
|
||||||
from flask import current_app, request
|
from flask import current_app, request
|
||||||
from invenio_access.permissions import any_user, authenticated_user, superuser_access
|
from invenio_access.permissions import any_user
|
||||||
from invenio_records_permissions.generators import Generator
|
from invenio_records_permissions.generators import Generator
|
||||||
|
from invenio_search.engine import dsl
|
||||||
|
|
||||||
|
|
||||||
class RecordIp(Generator):
|
class RecordIp(Generator):
|
||||||
@@ -208,10 +208,10 @@ class RecordIp(Generator):
|
|||||||
|
|
||||||
if not visible:
|
if not visible:
|
||||||
# If user ip is not on the list, and If the record contains 'singleip' will not be seen
|
# If user ip is not on the list, and If the record contains 'singleip' will not be seen
|
||||||
return ~Q("match", **{"access.access_right": "singleip"})
|
return ~dsl.Q("match", **{"access.access_right": "singleip"})
|
||||||
|
|
||||||
# Lists all records
|
# Lists all records
|
||||||
return Q("match_all")
|
return dsl.Q("match_all")
|
||||||
|
|
||||||
def check_permission(self):
|
def check_permission(self):
|
||||||
"""Check for User IP address in config variable."""
|
"""Check for User IP address in config variable."""
|
||||||
@@ -221,20 +221,3 @@ class RecordIp(Generator):
|
|||||||
if user_ip in current_app.config["INVENIO_CONFIG_TUGRAZ_SINGLE_IP"]:
|
if user_ip in current_app.config["INVENIO_CONFIG_TUGRAZ_SINGLE_IP"]:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
class AuthenticatedUser(Generator):
|
|
||||||
"""Allows authenticated users."""
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
"""Constructor."""
|
|
||||||
super(AuthenticatedUser, self).__init__()
|
|
||||||
|
|
||||||
def needs(self, **kwargs):
|
|
||||||
"""Enabling Needs."""
|
|
||||||
return [authenticated_user]
|
|
||||||
|
|
||||||
def query_filter(self, **kwargs):
|
|
||||||
"""Filters for current identity as super user."""
|
|
||||||
# TODO: Implement with new permissions metadata
|
|
||||||
return []
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Graz University of Technology.
|
# 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
|
||||||
@@ -53,59 +53,34 @@ Using Custom Generator for a policy:
|
|||||||
Permissions for Invenio (RDM) Records.
|
Permissions for Invenio (RDM) Records.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from invenio_rdm_records.services import (
|
# from invenio_rdm_records.services import RDMRecordPermissionPolicy
|
||||||
BibliographicRecordServiceConfig,
|
# from invenio_rdm_records.services.config import RDMRecordServiceConfig
|
||||||
RDMRecordPermissionPolicy,
|
# 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,
|
||||||
RecordOwners,
|
# Disable,
|
||||||
SuperUser,
|
# SuperUser,
|
||||||
)
|
# SystemProcess,
|
||||||
|
# )
|
||||||
from .generators import AuthenticatedUser, RecordIp
|
|
||||||
|
|
||||||
|
|
||||||
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.
|
||||||
"""
|
# Note that even if the array is empty, the invenio_access Permission class
|
||||||
|
# always adds the ``superuser-access``, so admins will always be allowed.
|
||||||
# Read access given to:
|
# - Create action given to everyone for now.
|
||||||
# TODO:
|
# - Read access given to everyone if public record and given to owners
|
||||||
# AnyUserIfPublic : grant access if record is public
|
# always. (inherited)
|
||||||
# RecordIp: grant access for single_ip
|
# - Update access given to record owners. (inherited)
|
||||||
# RecordOwners: owner of records, enable once the deposit is allowed only for loged-in users.
|
# - Delete access given to admins only. (inherited)
|
||||||
# CURRENT:
|
# """
|
||||||
# RecordIp: grant access for single_ip
|
|
||||||
can_read = [RecordIp()] # RecordOwners()
|
|
||||||
|
|
||||||
# Search access given to:
|
|
||||||
# AnyUser : grant access anyUser
|
|
||||||
# RecordIp: grant access for single_ip
|
|
||||||
can_search = [AnyUser(), RecordIp()]
|
|
||||||
|
|
||||||
# Update access given to record owners.
|
|
||||||
can_update = [RecordOwners()]
|
|
||||||
|
|
||||||
# Delete access given to admins only.
|
|
||||||
can_delete = [Admin()]
|
|
||||||
|
|
||||||
# Create action given to AuthenticatedUser
|
|
||||||
# UI - if user is loged in
|
|
||||||
# API - if user has Access token (Bearer API-TOKEN)
|
|
||||||
can_create = [AuthenticatedUser()]
|
|
||||||
|
|
||||||
# Associated files permissions (which are really bucket permissions)
|
|
||||||
# can_read_files = [AnyUserIfPublic(), RecordOwners()]
|
|
||||||
# can_update_files = [RecordOwners()]
|
|
||||||
|
|
||||||
|
|
||||||
class TUGRAZBibliographicRecordServiceConfig(BibliographicRecordServiceConfig):
|
# class TUGRAZRDMRecordServiceConfig(RDMRecordServiceConfig):
|
||||||
"""Overriding BibliographicRecordServiceConfig."""
|
# """Overriding BibliographicRecordServiceConfig."""
|
||||||
|
|
||||||
permission_policy_cls = TUGRAZPermissionPolicy
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
MIICjjCCAfegAwIBAgIBADANBgkqhkiG9w0BAQ0FADBkMQswCQYDVQQGEwJhdDENMAsGA1UECAwER3JhejEPMA0GA1UECgwGVFVHUkFaMRAwDgYDVQQDDAdpbnZlbmlvMSMwIQYJKoZIhvcNAQkBFhRtb2ppYi53YWxpQHR1Z3Jhei5hdDAeFw0yMDAxMTAyMDIwMTlaFw0yMTAxMDkyMDIwMTlaMGQxCzAJBgNVBAYTAmF0MQ0wCwYDVQQIDARHcmF6MQ8wDQYDVQQKDAZUVUdSQVoxEDAOBgNVBAMMB2ludmVuaW8xIzAhBgkqhkiG9w0BCQEWFG1vamliLndhbGlAdHVncmF6LmF0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5ZrPhRhyDyLTe93rpgqN9MMfnCsg+2QBW4EOuQnMXJzF1dqrFEsexot1FRW83IjqbY+680PmGABQtxUpS4Kinr/pLYbPhQ2WPQRad7mtOn/dD40VVwfG0GfcLrnKe5F4QLfNjervjl8jH/AKPCYwwfSeuw1LNoRjy1uDwkp9cRQIDAQABo1AwTjAdBgNVHQ4EFgQUPv2+wS1RuagCOed7w1FzouBmpP4wHwYDVR0jBBgwFoAUPv2+wS1RuagCOed7w1FzouBmpP4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQ0FAAOBgQA4qvU7gbgE/MoljUW68qMPs8z8Q2Ngttp6F1KOMNO9rgrYWAJh4u6BMt11mlBgBlLLJzG67wXpBr0l78IcOXun4w955te0VRp7aZ0b1uOPt0aUoDOXuBAhZURLZfbsogpWiE6bdB8N0nHTwk2WG2PPIC5Z99UdDivcP5ZeSPAkUw==
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIHxNp8P2PsV8CAggAMBQGCCqGSIb3DQMHBAjOyik6fsEC3gSCAoC4tFsYAl4GexyXESiRKpOQzHQNFtQtwDEevT1IKgsafSNjOMJZLKrnoejNoxEQUPPPXgGEd83Fmp2cSHm+YVksH06zcsA+RKf5ab6t0bsgcyljGzkHEDQtMRPcaXNlVMbU9VEDOX26MgmlU/pd+GGfE99IbEFc6qN1e7qOnmKSw93Q3o05ubO3wEI76JhOioGGXB3pEn8f4XLDwck0thzYD6H2vdF+kyIdM8w1BgyLdeP0aDkfG1V3rLGhE8246rwVUzRSZv6BCNBZFk7YO1d7j0+BDxnbHFS631zdCgMcd/XS8u6acc3IYr/bQLH4a1y0X3Z+8ks8arEgUtXqYx9wMlp5lajlsr9JDIU5OnuZ2XY+4sqDQsTZPjBpxK8oMjvJNNatnTf+18htkTdovpInlP7xpEjp1L7H74iKY25UsAZ9e+gqHZwILnk418mQ1E4JYU6JRUZspJSFfqwn9FL6DnvhzPIhtzwhr3eL4f4RXWxxe2xCzvWg+GaWuMfZdj77SV4pMOi7vb3HlYY6luShVlYKdSaw+jf6XVy4ZMTWT5wcE1mc3tAJqF18Mi8amOetpZhz16ISOKnO0rKrfmxteNPQn2AB8QquGGn050PTW4m8zFXDBiyg2xvcRLAW/8ych3k+pkEZi4tVCkLcHM56J/XUEKMCxiSok+vbzxfVf1D2vYFFS7Lw1nP5RnLKFdn8XdHQ+lu2diod18wYBQP4eoU+XjjP2zjlpULiWHt7PpCERqGg7H2Z2amIL5rTeqQuyXczw1/xG/VBNn9qe3DXFodvoV6OZb3efNT/eJgOyaPLi2FmB7Kpdp4JIdJgLnaBCwNBXkpGSwb732O/cug8
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"strict": true,
|
|
||||||
"debug": true,
|
|
||||||
"idp": {
|
|
||||||
"entityId": "https://sso.tugraz.at/idp/shibboleth",
|
|
||||||
"singleLogoutService": {
|
|
||||||
"binding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect",
|
|
||||||
"url": "https://sso.tugraz.at/slo/Logout"
|
|
||||||
},
|
|
||||||
|
|
||||||
"singleSignOnService": {
|
|
||||||
"binding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect",
|
|
||||||
"url": "https://sso.tugraz.at/idp/profile/SAML2/Redirect/SSO"
|
|
||||||
},
|
|
||||||
|
|
||||||
"x509cert": "MIIDHzCCAgegAwIBAgIUG6ra0BvXswfyErcCDmzw3AV+uI0wDQYJKoZIhvcNAQEFBQAwGDEWMBQGA1UEAxMNc3NvLnR1Z3Jhei5hdDAeFw0xMDAzMjkxNzEzMTZaFw0zMDAzMjkxODEzMTZaMBgxFjAUBgNVBAMTDXNzby50dWdyYXouYXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCEyQxHIM1zxbBnXn60Ksg7B7HcPLPcN7bXLrLPOFXtkZxm0YkHY5Rxignm7wHD7C81U09DFS2eT8qRCcVtVz+kuwdgS54fC/alg9oLxXk4CgKjhtZZ2ECLdTHfUXOA5uOLlpoN1LY6VpIjSYe3UEX3HxfhXx/fPeE8VInGCKnml8Too22G30htB/EU44A2yqrR3LUngJIaq //N0QbeMYitNh02o6xB5+bp6k6noM7DH6S9phe0kCEibaiLaCf7k9LpNnAz9bPtQVth0gdJqoUry/iK1QBTFTEXvvJynFEp0+5Wz/XFmEcFhsaK8OcHd0R9FfpX5Z2fewA2Q0SLKz+bAgMBAAGjYTBfMD4GA1UdEQQ3MDWCDXNzby50dWdyYXouYXSGJGh0dHBzOi8vc3NvLnR1Z3Jhei5hdC9pZHAvc2hpYmJvbGV0aDAdBgNVHQ4EFgQUXd76PcSiXR6wFna5qQi+S0W/9Y0wDQYJKoZIhvcNAQEFBQADggEBACgkQqxBtYY1OcuoAUP/P+ukJW7XyofK89qs2dkGClx7s0hR/1zImWgljgfguLJOSfC/CWE1wfNK9bTi4Fu9809PmOoaCxkNmniFRAyaOiBoUz5XIpJniW7wBo+YBpBlXZXi5PmU2DOsfZxo7fs4se32dHO1WqgJodqkK2Wa4HDiigh42trZ9i3uS73uHSSCeIJYQNj84BMJ+ifgj3Zi/TgLS+IX7Ayy2bkDzIzIRnj7ULQ/MgfacGXQXJPHyp+w+YvydQalPAWc43+5DkNacN34K8cE3XjHq1kx/BgYOtQ7M2Xa1oApLzPoHO4D2kaf6FCgGR8Mx7GVAz0aQVxfB8I="
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://sso.tugraz.at/idp/shibboleth">
|
|
||||||
<md:IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
|
|
||||||
<md:KeyDescriptor use="signing">
|
|
||||||
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
|
|
||||||
<ds:X509Data>
|
|
||||||
<ds:X509Certificate>MIIDHzCCAgegAwIBAgIUG6ra0BvXswfyErcCDmzw3AV+uI0wDQYJKoZIhvcNAQEFBQAwGDEWMBQGA1UEAxMNc3NvLnR1Z3Jhei5hdDAeFw0xMDAzMjkxNzEzMTZaFw0zMDAzMjkxODEzMTZaMBgxFjAUBgNVBAMTDXNzby50dWdyYXouYXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCEyQxHIM1zxbBnXn60Ksg7B7HcPLPcN7bXLrLPOFXtkZxm0YkHY5Rxignm7wHD7C81U09DFS2eT8qRCcVtVz+kuwdgS54fC/alg9oLxXk4CgKjhtZZ2ECLdTHfUXOA5uOLlpoN1LY6VpIjSYe3UEX3HxfhXx/fPeE8VInGCKnml8Too22G30htB/EU44A2yqrR3LUngJIaq//N0QbeMYitNh02o6xB5+bp6k6noM7DH6S9phe0kCEibaiLaCf7k9LpNnAz9bPtQVth0gdJqoUry/iK1QBTFTEXvvJynFEp0+5Wz/XFmEcFhsaK8OcHd0R9FfpX5Z2fewA2Q0SLKz+bAgMBAAGjYTBfMD4GA1UdEQQ3MDWCDXNzby50dWdyYXouYXSGJGh0dHBzOi8vc3NvLnR1Z3Jhei5hdC9pZHAvc2hpYmJvbGV0aDAdBgNVHQ4EFgQUXd76PcSiXR6wFna5qQi+S0W/9Y0wDQYJKoZIhvcNAQEFBQADggEBACgkQqxBtYY1OcuoAUP/P+ukJW7XyofK89qs2dkGClx7s0hR/1zImWgljgfguLJOSfC/CWE1wfNK9bTi4Fu9809PmOoaCxkNmniFRAyaOiBoUz5XIpJniW7wBo+YBpBlXZXi5PmU2DOsfZxo7fs4se32dHO1WqgJodqkK2Wa4HDiigh42trZ9i3uS73uHSSCeIJYQNj84BMJ+ifgj3Zi/TgLS+IX7Ayy2bkDzIzIRnj7ULQ/MgfacGXQXJPHyp+w+YvydQalPAWc43+5DkNacN34K8cE3XjHq1kx/BgYOtQ7M2Xa1oApLzPoHO4D2kaf6FCgGR8Mx7GVAz0aQVxfB8I=</ds:X509Certificate>
|
|
||||||
</ds:X509Data>
|
|
||||||
</ds:KeyInfo>
|
|
||||||
</md:KeyDescriptor>
|
|
||||||
<md:KeyDescriptor use="encryption">
|
|
||||||
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
|
|
||||||
<ds:X509Data>
|
|
||||||
<ds:X509Certificate>MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIHxNp8P2PsV8CAggAMBQGCCqGSIb3DQMHBAjOyik6fsEC3gSCAoC4tFsYAl4GexyXESiRKpOQzHQNFtQtwDEevT1IKgsafSNjOMJZLKrnoejNoxEQUPPPXgGEd83Fmp2cSHm+YVksH06zcsA+RKf5ab6t0bsgcyljGzkHEDQtMRPcaXNlVMbU9VEDOX26MgmlU/pd+GGfE99IbEFc6qN1e7qOnmKSw93Q3o05ubO3wEI76JhOioGGXB3pEn8f4XLDwck0thzYD6H2vdF+kyIdM8w1BgyLdeP0aDkfG1V3rLGhE8246rwVUzRSZv6BCNBZFk7YO1d7j0+BDxnbHFS631zdCgMcd/XS8u6acc3IYr/bQLH4a1y0X3Z+8ks8arEgUtXqYx9wMlp5lajlsr9JDIU5OnuZ2XY+4sqDQsTZPjBpxK8oMjvJNNatnTf+18htkTdovpInlP7xpEjp1L7H74iKY25UsAZ9e+gqHZwILnk418mQ1E4JYU6JRUZspJSFfqwn9FL6DnvhzPIhtzwhr3eL4f4RXWxxe2xCzvWg+GaWuMfZdj77SV4pMOi7vb3HlYY6luShVlYKdSaw+jf6XVy4ZMTWT5wcE1mc3tAJqF18Mi8amOetpZhz16ISOKnO0rKrfmxteNPQn2AB8QquGGn050PTW4m8zFXDBiyg2xvcRLAW/8ych3k+pkEZi4tVCkLcHM56J/XUEKMCxiSok+vbzxfVf1D2vYFFS7Lw1nP5RnLKFdn8XdHQ+lu2diod18wYBQP4eoU+XjjP2zjlpULiWHt7PpCERqGg7H2Z2amIL5rTeqQuyXczw1/xG/VBNn9qe3DXFodvoV6OZb3efNT/eJgOyaPLi2FmB7Kpdp4JIdJgLnaBCwNBXkpGSwb732O/cug8</ds:X509Certificate>
|
|
||||||
</ds:X509Data>
|
|
||||||
</ds:KeyInfo>
|
|
||||||
</md:KeyDescriptor>
|
|
||||||
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://sso.tugraz.at/slo/Logout"/>
|
|
||||||
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
|
|
||||||
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://sso.tugraz.at/idp/profile/SAML2/Redirect/SSO"/>
|
|
||||||
</md:IDPSSODescriptor>
|
|
||||||
<md:ContactPerson contactType="technical">
|
|
||||||
<md:GivenName>Administrator</md:GivenName>
|
|
||||||
<md:EmailAddress>admin@example.org</md:EmailAddress>
|
|
||||||
</md:ContactPerson>
|
|
||||||
</md:EntityDescriptor>
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
MIICjjCCAfegAwIBAgIBADANBgkqhkiG9w0BAQ0FADBkMQswCQYDVQQGEwJhdDENMAsGA1UECAwER3JhejEPMA0GA1UECgwGVFVHUkFaMRAwDgYDVQQDDAdpbnZlbmlvMSMwIQYJKoZIhvcNAQkBFhRtb2ppYi53YWxpQHR1Z3Jhei5hdDAeFw0yMDAxMTAyMDIwMTlaFw0yMTAxMDkyMDIwMTlaMGQxCzAJBgNVBAYTAmF0MQ0wCwYDVQQIDARHcmF6MQ8wDQYDVQQKDAZUVUdSQVoxEDAOBgNVBAMMB2ludmVuaW8xIzAhBgkqhkiG9w0BCQEWFG1vamliLndhbGlAdHVncmF6LmF0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5ZrPhRhyDyLTe93rpgqN9MMfnCsg+2QBW4EOuQnMXJzF1dqrFEsexot1FRW83IjqbY+680PmGABQtxUpS4Kinr/pLYbPhQ2WPQRad7mtOn/dD40VVwfG0GfcLrnKe5F4QLfNjervjl8jH/AKPCYwwfSeuw1LNoRjy1uDwkp9cRQIDAQABo1AwTjAdBgNVHQ4EFgQUPv2+wS1RuagCOed7w1FzouBmpP4wHwYDVR0jBBgwFoAUPv2+wS1RuagCOed7w1FzouBmpP4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQ0FAAOBgQA4qvU7gbgE/MoljUW68qMPs8z8Q2Ngttp6F1KOMNO9rgrYWAJh4u6BMt11mlBgBlLLJzG67wXpBr0l78IcOXun4w955te0VRp7aZ0b1uOPt0aUoDOXuBAhZURLZfbsogpWiE6bdB8N0nHTwk2WG2PPIC5Z99UdDivcP5ZeSPAkUw==
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
-----BEGIN RSA PRIVATE KEY-----
|
|
||||||
MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIHxNp8P2PsV8CAggA
|
|
||||||
MBQGCCqGSIb3DQMHBAjOyik6fsEC3gSCAoC4tFsYAl4GexyXESiRKpOQzHQNFtQt
|
|
||||||
wDEevT1IKgsafSNjOMJZLKrnoejNoxEQUPPPXgGEd83Fmp2cSHm+YVksH06zcsA+
|
|
||||||
RKf5ab6t0bsgcyljGzkHEDQtMRPcaXNlVMbU9VEDOX26MgmlU/pd+GGfE99IbEFc
|
|
||||||
6qN1e7qOnmKSw93Q3o05ubO3wEI76JhOioGGXB3pEn8f4XLDwck0thzYD6H2vdF+
|
|
||||||
kyIdM8w1BgyLdeP0aDkfG1V3rLGhE8246rwVUzRSZv6BCNBZFk7YO1d7j0+BDxnb
|
|
||||||
HFS631zdCgMcd/XS8u6acc3IYr/bQLH4a1y0X3Z+8ks8arEgUtXqYx9wMlp5lajl
|
|
||||||
sr9JDIU5OnuZ2XY+4sqDQsTZPjBpxK8oMjvJNNatnTf+18htkTdovpInlP7xpEjp
|
|
||||||
1L7H74iKY25UsAZ9e+gqHZwILnk418mQ1E4JYU6JRUZspJSFfqwn9FL6DnvhzPIh
|
|
||||||
tzwhr3eL4f4RXWxxe2xCzvWg+GaWuMfZdj77SV4pMOi7vb3HlYY6luShVlYKdSaw
|
|
||||||
+jf6XVy4ZMTWT5wcE1mc3tAJqF18Mi8amOetpZhz16ISOKnO0rKrfmxteNPQn2AB
|
|
||||||
8QquGGn050PTW4m8zFXDBiyg2xvcRLAW/8ych3k+pkEZi4tVCkLcHM56J/XUEKMC
|
|
||||||
xiSok+vbzxfVf1D2vYFFS7Lw1nP5RnLKFdn8XdHQ+lu2diod18wYBQP4eoU+XjjP
|
|
||||||
2zjlpULiWHt7PpCERqGg7H2Z2amIL5rTeqQuyXczw1/xG/VBNn9qe3DXFodvoV6O
|
|
||||||
Zb3efNT/eJgOyaPLi2FmB7Kpdp4JIdJgLnaBCwNBXkpGSwb732O/cug8
|
|
||||||
-----END RSA PRIVATE KEY-----
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
|
|
||||||
"strict": true,
|
|
||||||
"debug": true,
|
|
||||||
"idp": {
|
|
||||||
"entityId": "https://app.onelogin.com/saml/metadata/01661574-91ed-4735-a3b9-f4ddebb2cbb8",
|
|
||||||
"singleLogoutService": {
|
|
||||||
"binding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect",
|
|
||||||
"url": "https://tugraz-dev.onelogin.com/trust/saml2/http-redirect/slo/1070112"
|
|
||||||
},
|
|
||||||
|
|
||||||
"singleSignOnService": {
|
|
||||||
"binding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect",
|
|
||||||
"url": "https://tugraz-dev.onelogin.com/trust/saml2/http-post/sso/01661574-91ed-4735-a3b9-f4ddebb2cbb8"
|
|
||||||
},
|
|
||||||
|
|
||||||
"x509cert": "MIID2DCCAsCgAwIBAgIUWRGl84DFd+GbLYt0BmwyI+FCKVIwDQYJKoZIhvcNAQEFBQAwRDEPMA0GA1UECgwGVFVHUkFaMRUwEwYDVQQLDAxPbmVMb2dpbiBJZFAxGjAYBgNVBAMMEU9uZUxvZ2luIEFjY291bnQgMB4XDTIwMDEyODEwNDI1M1oXDTI1MDEyODEwNDI1M1owRDEPMA0GA1UECgwGVFVHUkFaMRUwEwYDVQQLDAxPbmVMb2dpbiBJZFAxGjAYBgNVBAMMEU9uZUxvZ2luIEFjY291bnQgMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAve5a++I/VHC22fMk5v8GwCvdIyiziOwGjq0XXyjTg9TyhHJZbfDXa7S0NjK7dK4+d3iaB3MvCpnr+7H2J2Cohracgy2BQz9Z4BqsjDat016zkAPoID9R6osliqocw1jESnyL59OJWftAiA4rFmQs6v/b56vgre8EP6qKbykq6mWvepGyBbfjRsYbFoIDmnW8kJoZtLMDQfTBvEF2veHDt9EbsWP+hyedMYTWCfsbTHhFKNrhRKr3m3k+w6Zsca2zp3A8xiFv0fcl6PglEwEZz2Iwb0ySifaf4ZLDVjSekpCLf29doBJYUeE5TUP8oHfATOcWW+m5D3MXVcMUax+AFwIDAQABo4HBMIG+MAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFK4GHoSfnMQKb8RjP2HrGzJ4ICiDMH8GA1UdIwR4MHaAFK4GHoSfnMQKb8RjP2HrGzJ4ICiDoUikRjBEMQ8wDQYDVQQKDAZUVUdSQVoxFTATBgNVBAsMDE9uZUxvZ2luIElkUDEaMBgGA1UEAwwRT25lTG9naW4gQWNjb3VudCCCFFkRpfOAxXfhmy2LdAZsMiPhQilSMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQUFAAOCAQEAUg7UHFju0QA7ubcSLBuvEMUQL9jxtzDi0ndSi8qqtLJSjBalcfll0X/gI+sAMGMd0MW7P3abOVVfGBSlZN01KCPC2WHKRwzyO3sOCatkPrn2SYthQWHD/W7psyFgoDt5lQNijLyZdpvZbRIotxcWpoaTcBzaArd/0MNe1VaGlLK5GeqtbwL+dQD+O3mtSUfF918qeiOHEwI7nfPo7vjUyRT8Ov1loqP5+A0/R1CyL0Dh/tVdIkOHx6EjrIXsb/K6xXPknYZqPApPkZq514ZCEPhAILFU+5R/cQMZMZEacCdKuQ9XMkR8bqnh8xu620SCYiSVPXtVW4bpXKs0nJazBQ=="
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://app.onelogin.com/saml/metadata/01661574-91ed-4735-a3b9-f4ddebb2cbb8">
|
|
||||||
<md:IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
|
|
||||||
<md:KeyDescriptor use="signing">
|
|
||||||
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
|
|
||||||
<ds:X509Data>
|
|
||||||
<ds:X509Certificate>MIID2DCCAsCgAwIBAgIUWRGl84DFd+GbLYt0BmwyI+FCKVIwDQYJKoZIhvcNAQEFBQAwRDEPMA0GA1UECgwGVFVHUkFaMRUwEwYDVQQLDAxPbmVMb2dpbiBJZFAxGjAYBgNVBAMMEU9uZUxvZ2luIEFjY291bnQgMB4XDTIwMDEyODEwNDI1M1oXDTI1MDEyODEwNDI1M1owRDEPMA0GA1UECgwGVFVHUkFaMRUwEwYDVQQLDAxPbmVMb2dpbiBJZFAxGjAYBgNVBAMMEU9uZUxvZ2luIEFjY291bnQgMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAve5a++I/VHC22fMk5v8GwCvdIyiziOwGjq0XXyjTg9TyhHJZbfDXa7S0NjK7dK4+d3iaB3MvCpnr+7H2J2Cohracgy2BQz9Z4BqsjDat016zkAPoID9R6osliqocw1jESnyL59OJWftAiA4rFmQs6v/b56vgre8EP6qKbykq6mWvepGyBbfjRsYbFoIDmnW8kJoZtLMDQfTBvEF2veHDt9EbsWP+hyedMYTWCfsbTHhFKNrhRKr3m3k+w6Zsca2zp3A8xiFv0fcl6PglEwEZz2Iwb0ySifaf4ZLDVjSekpCLf29doBJYUeE5TUP8oHfATOcWW+m5D3MXVcMUax+AFwIDAQABo4HBMIG+MAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFK4GHoSfnMQKb8RjP2HrGzJ4ICiDMH8GA1UdIwR4MHaAFK4GHoSfnMQKb8RjP2HrGzJ4ICiDoUikRjBEMQ8wDQYDVQQKDAZUVUdSQVoxFTATBgNVBAsMDE9uZUxvZ2luIElkUDEaMBgGA1UEAwwRT25lTG9naW4gQWNjb3VudCCCFFkRpfOAxXfhmy2LdAZsMiPhQilSMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQUFAAOCAQEAUg7UHFju0QA7ubcSLBuvEMUQL9jxtzDi0ndSi8qqtLJSjBalcfll0X/gI+sAMGMd0MW7P3abOVVfGBSlZN01KCPC2WHKRwzyO3sOCatkPrn2SYthQWHD/W7psyFgoDt5lQNijLyZdpvZbRIotxcWpoaTcBzaArd/0MNe1VaGlLK5GeqtbwL+dQD+O3mtSUfF918qeiOHEwI7nfPo7vjUyRT8Ov1loqP5+A0/R1CyL0Dh/tVdIkOHx6EjrIXsb/K6xXPknYZqPApPkZq514ZCEPhAILFU+5R/cQMZMZEacCdKuQ9XMkR8bqnh8xu620SCYiSVPXtVW4bpXKs0nJazBQ==</ds:X509Certificate>
|
|
||||||
</ds:X509Data>
|
|
||||||
</ds:KeyInfo>
|
|
||||||
</md:KeyDescriptor>
|
|
||||||
<md:KeyDescriptor use="encryption">
|
|
||||||
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
|
|
||||||
<ds:X509Data>
|
|
||||||
<ds:X509Certificate>MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIHxNp8P2PsV8CAggAMBQGCCqGSIb3DQMHBAjOyik6fsEC3gSCAoC4tFsYAl4GexyXESiRKpOQzHQNFtQtwDEevT1IKgsafSNjOMJZLKrnoejNoxEQUPPPXgGEd83Fmp2cSHm+YVksH06zcsA+RKf5ab6t0bsgcyljGzkHEDQtMRPcaXNlVMbU9VEDOX26MgmlU/pd+GGfE99IbEFc6qN1e7qOnmKSw93Q3o05ubO3wEI76JhOioGGXB3pEn8f4XLDwck0thzYD6H2vdF+kyIdM8w1BgyLdeP0aDkfG1V3rLGhE8246rwVUzRSZv6BCNBZFk7YO1d7j0+BDxnbHFS631zdCgMcd/XS8u6acc3IYr/bQLH4a1y0X3Z+8ks8arEgUtXqYx9wMlp5lajlsr9JDIU5OnuZ2XY+4sqDQsTZPjBpxK8oMjvJNNatnTf+18htkTdovpInlP7xpEjp1L7H74iKY25UsAZ9e+gqHZwILnk418mQ1E4JYU6JRUZspJSFfqwn9FL6DnvhzPIhtzwhr3eL4f4RXWxxe2xCzvWg+GaWuMfZdj77SV4pMOi7vb3HlYY6luShVlYKdSaw+jf6XVy4ZMTWT5wcE1mc3tAJqF18Mi8amOetpZhz16ISOKnO0rKrfmxteNPQn2AB8QquGGn050PTW4m8zFXDBiyg2xvcRLAW/8ych3k+pkEZi4tVCkLcHM56J/XUEKMCxiSok+vbzxfVf1D2vYFFS7Lw1nP5RnLKFdn8XdHQ+lu2diod18wYBQP4eoU+XjjP2zjlpULiWHt7PpCERqGg7H2Z2amIL5rTeqQuyXczw1/xG/VBNn9qe3DXFodvoV6OZb3efNT/eJgOyaPLi2FmB7Kpdp4JIdJgLnaBCwNBXkpGSwb732O/cug8</ds:X509Certificate>
|
|
||||||
</ds:X509Data>
|
|
||||||
</ds:KeyInfo>
|
|
||||||
</md:KeyDescriptor>
|
|
||||||
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://tugraz-dev.onelogin.com/trust/saml2/http-redirect/slo/1070112"/>
|
|
||||||
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
|
|
||||||
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://tugraz-dev.onelogin.com/trust/saml2/http-post/sso/01661574-91ed-4735-a3b9-f4ddebb2cbb8"/>
|
|
||||||
</md:IDPSSODescriptor>
|
|
||||||
<md:ContactPerson contactType="technical">
|
|
||||||
<md:GivenName>Administrator</md:GivenName>
|
|
||||||
<md:EmailAddress>admin@example.org</md:EmailAddress>
|
|
||||||
</md:ContactPerson>
|
|
||||||
</md:EntityDescriptor>
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
18
invenio_config_tugraz/templates/security/email/welcome.txt
Normal file
18
invenio_config_tugraz/templates/security/email/welcome.txt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{{ _('Dear user,') }}
|
||||||
|
|
||||||
|
{{ _('Welcome to the Repository of TU Graz!') }}
|
||||||
|
|
||||||
|
{{ _('To help you get started, here are some useful links:') }}
|
||||||
|
|
||||||
|
- {{ _('Guidelines:')}} {{ _('Repository Guide')}} ({{ _('how to upload files')}}) ({{ config.SITE_UI_URL }}{{ url_for('invenio_config_tugraz.guide') }})
|
||||||
|
- {{ _('Search Guide')}} ({{ config.SITE_UI_URL }}{{url_for('invenio_app_rdm.help_search')}})
|
||||||
|
- {{ _('Terms And Conditions') }} ({{ config.SITE_UI_URL }}{{ url_for('invenio_config_tugraz.terms') }})
|
||||||
|
- {{ _('Data Protection Rights')}} ({{ config.SITE_UI_URL }}{{ url_for('invenio_config_tugraz.gdpr') }})
|
||||||
|
{% if security.confirmable %}
|
||||||
|
{{ _('You can confirm your email through the link below:') }}
|
||||||
|
{{ confirmation_link }}">
|
||||||
|
{% endif %}
|
||||||
|
{{ _('If you require any assistance please do not hesitate to contact us at repository-support@tugraz.at.') }}
|
||||||
|
|
||||||
|
{{ _('Best regards,') }}
|
||||||
|
{{ _('TU Graz Repository Team') }}
|
||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 ""
|
||||||
|
|
||||||
|
|||||||
32
invenio_config_tugraz/utils.py
Normal file
32
invenio_config_tugraz/utils.py
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Copyright (C) 2022 Graz University of Technology.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# details.
|
||||||
|
|
||||||
|
"""Utils file."""
|
||||||
|
|
||||||
|
from flask_principal import Identity
|
||||||
|
from invenio_access import any_user
|
||||||
|
from invenio_access.utils import get_identity
|
||||||
|
from invenio_accounts import current_accounts
|
||||||
|
|
||||||
|
|
||||||
|
def get_identity_from_user_by_email(email: str = None) -> Identity:
|
||||||
|
"""Get the user specified via email or ID."""
|
||||||
|
if email is None:
|
||||||
|
raise ValueError("the email has to be set to get a identity")
|
||||||
|
|
||||||
|
user = current_accounts.datastore.get_user(email)
|
||||||
|
|
||||||
|
if user is None:
|
||||||
|
raise LookupError(f"user with {email} not found")
|
||||||
|
|
||||||
|
identity = get_identity(user)
|
||||||
|
|
||||||
|
# TODO: this is a temporary solution. this should be done with data from the db
|
||||||
|
identity.provides.add(any_user)
|
||||||
|
|
||||||
|
return identity
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
#
|
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
# details.
|
|
||||||
|
|
||||||
"""Version information for invenio-config-tugraz.
|
|
||||||
|
|
||||||
This file is imported by ``invenio_config_tugraz.__init__``,
|
|
||||||
and parsed by ``setup.py``.
|
|
||||||
"""
|
|
||||||
|
|
||||||
__version__ = "0.5.1"
|
|
||||||
81
invenio_config_tugraz/views.py
Normal file
81
invenio_config_tugraz/views.py
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Copyright (C) 2020-2022 Graz University of Technology.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# details.
|
||||||
|
|
||||||
|
"""invenio module for TUGRAZ config."""
|
||||||
|
|
||||||
|
from flask import Blueprint, current_app, redirect, url_for
|
||||||
|
from flask_babelex import get_locale
|
||||||
|
|
||||||
|
|
||||||
|
def ui_blueprint(app):
|
||||||
|
"""Blueprint for the routes and resources provided by invenio-config-tugraz."""
|
||||||
|
routes = app.config.get("CONFIG_TUGRAZ_ROUTES")
|
||||||
|
|
||||||
|
blueprint = Blueprint(
|
||||||
|
"invenio_config_tugraz",
|
||||||
|
__name__,
|
||||||
|
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
|
||||||
|
def rank_higher():
|
||||||
|
"""Rank this modules blueprint higher than blueprint of security module.
|
||||||
|
|
||||||
|
Needed in order to overwrite email templates.
|
||||||
|
|
||||||
|
Since the blueprints are in a dict and the order of insertion is
|
||||||
|
retained, popping and reinserting all items (except ours), ensures
|
||||||
|
our blueprint will be in front.
|
||||||
|
"""
|
||||||
|
bps = current_app.blueprints
|
||||||
|
for blueprint_name in list(bps.keys()):
|
||||||
|
if blueprint_name != "invenio_config_tugraz":
|
||||||
|
bps.update({blueprint_name: bps.pop(blueprint_name)})
|
||||||
|
|
||||||
|
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,
|
||||||
|
)
|
||||||
|
)
|
||||||
3
pyproject.toml
Normal file
3
pyproject.toml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[build-system]
|
||||||
|
requires = ["setuptools", "wheel", "babel>2.8"]
|
||||||
|
build-backend = "setuptools.build_meta"
|
||||||
12
pytest.ini
12
pytest.ini
@@ -1,12 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
#
|
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
# details.
|
|
||||||
|
|
||||||
[pytest]
|
|
||||||
addopts = --isort --pydocstyle --pycodestyle --doctest-glob="*.rst" --doctest-modules --cov=invenio_config_tugraz --cov-report=term-missing tests invenio_config_tugraz
|
|
||||||
testpaths = tests invenio_config_tugraz
|
|
||||||
live_server_scope = module
|
|
||||||
@@ -23,11 +23,10 @@ function cleanup() {
|
|||||||
}
|
}
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
|
||||||
python -m check_manifest --ignore ".*-requirements.txt"
|
python -m check_manifest --ignore ".*-requirements.txt"
|
||||||
python -m sphinx.cmd.build -qnNW docs docs/_build/html
|
python -m sphinx.cmd.build -qnN docs docs/_build/html
|
||||||
eval "$(docker-services-cli up --db ${DB:-postgresql} --search ${SEARCH:-elasticsearch} --cache ${CACHE:-redis} --env)"
|
eval "$(docker-services-cli up --search ${SEARCH:-elasticsearch} --env)"
|
||||||
python -m pytest
|
python -m pytest
|
||||||
tests_exit_code=$?
|
tests_exit_code=$?
|
||||||
python -m sphinx.cmd.build -qnNW -b doctest docs docs/_build/doctest
|
python -m sphinx.cmd.build -qnN -b doctest docs docs/_build/doctest
|
||||||
exit "$tests_exit_code"
|
exit "$tests_exit_code"
|
||||||
|
|||||||
77
setup.cfg
77
setup.cfg
@@ -1,11 +1,65 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
# Copyright (C) 2020-2022 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
|
||||||
# details.
|
# details.
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
name = invenio-config-tugraz
|
||||||
|
version = attr: invenio_config_tugraz.__version__
|
||||||
|
description = "Invenio module that adds tugraz configs."
|
||||||
|
long_description = file: README.rst, CHANGES.rst
|
||||||
|
keywords = invenio config TU-Graz
|
||||||
|
license = MIT
|
||||||
|
author = "Graz University of Technology"
|
||||||
|
author_email = info@tugraz.at
|
||||||
|
platforms = any
|
||||||
|
url = https://github.com/tu-graz-library/invenio-config-tugraz
|
||||||
|
classifiers =
|
||||||
|
Environment :: Web Environment
|
||||||
|
Intended Audience :: Developers
|
||||||
|
License :: OSI Approved :: MIT License
|
||||||
|
Operating System :: OS Independent
|
||||||
|
Programming Language :: Python
|
||||||
|
Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
||||||
|
Topic :: Software Development :: Libraries :: Python Modules
|
||||||
|
Programming Language :: Python :: 3.7
|
||||||
|
Programming Language :: Python :: 3.8
|
||||||
|
Programming Language :: Python :: 3.9
|
||||||
|
Development Status :: 3 - Alpha
|
||||||
|
|
||||||
|
[options]
|
||||||
|
include_package_data = True
|
||||||
|
packages = find:
|
||||||
|
python_requires = >=3.8
|
||||||
|
zip_safe = False
|
||||||
|
install_requires =
|
||||||
|
# keep this dependencies identical to invenio-app-rdm
|
||||||
|
invenio-rdm-records>=0.39.0,<0.40.0
|
||||||
|
invenio-cache>=1.1.1,<1.2.0
|
||||||
|
|
||||||
|
[options.extras_require]
|
||||||
|
tests =
|
||||||
|
pytest-black>=0.3.0,<0.3.10
|
||||||
|
Sphinx>=4.5.0
|
||||||
|
pytest-invenio>=1.4.7
|
||||||
|
# elasticsearch7 =
|
||||||
|
# invenio-search[elasticsearch7]>=2.1.0,<3.0.0
|
||||||
|
opensearch2 =
|
||||||
|
invenio-search[opensearch2]>=2.1.0,<3.0.0
|
||||||
|
|
||||||
|
[options.entry_points]
|
||||||
|
invenio_base.apps =
|
||||||
|
invenio_config_tugraz = invenio_config_tugraz:InvenioConfigTugraz
|
||||||
|
invenio_base.blueprints =
|
||||||
|
invenio_config_tugraz = invenio_config_tugraz.views:ui_blueprint
|
||||||
|
invenio_i18n.translations =
|
||||||
|
messages = invenio_config_tugraz
|
||||||
|
invenio_config.module =
|
||||||
|
invenio_config_tugraz = invenio_config_tugraz.config
|
||||||
|
|
||||||
[aliases]
|
[aliases]
|
||||||
test = pytest
|
test = pytest
|
||||||
|
|
||||||
@@ -24,7 +78,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
|
||||||
@@ -38,19 +92,10 @@ output-dir = invenio_config_tugraz/translations/
|
|||||||
input-file = invenio_config_tugraz/translations/messages.pot
|
input-file = invenio_config_tugraz/translations/messages.pot
|
||||||
output-dir = invenio_config_tugraz/translations/
|
output-dir = invenio_config_tugraz/translations/
|
||||||
|
|
||||||
[flake8]
|
|
||||||
max-line-length = 88
|
|
||||||
extend-ignore = E203
|
|
||||||
select = C,E,F,W,B,B950
|
|
||||||
ignore = E501
|
|
||||||
|
|
||||||
[isort]
|
[isort]
|
||||||
multi_line_output = 3
|
profile=black
|
||||||
include_trailing_comma = True
|
|
||||||
force_grid_wrap = 0
|
|
||||||
use_parentheses = True
|
|
||||||
ensure_newline_before_comments = True
|
|
||||||
line_length = 88
|
|
||||||
|
|
||||||
[pycodestyle]
|
[tool:pytest]
|
||||||
ignore = E203,E501
|
addopts = --black --isort --pydocstyle --doctest-glob="*.rst" --doctest-modules --cov=invenio_config_tugraz --cov-report=term-missing tests invenio_config_tugraz
|
||||||
|
testpaths = tests invenio_config_tugraz
|
||||||
|
live_server_scope = module
|
||||||
|
|||||||
93
setup.py
93
setup.py
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
# Copyright (C) 2020-2022 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
|
||||||
@@ -8,93 +8,6 @@
|
|||||||
|
|
||||||
"""invenio module that adds tugraz configs."""
|
"""invenio module that adds tugraz configs."""
|
||||||
|
|
||||||
import os
|
from setuptools import setup
|
||||||
|
|
||||||
from setuptools import find_packages, setup
|
setup()
|
||||||
|
|
||||||
readme = open("README.rst").read()
|
|
||||||
history = open("CHANGES.rst").read()
|
|
||||||
|
|
||||||
tests_require = [
|
|
||||||
"pytest-invenio>=1.4.0",
|
|
||||||
"SQLAlchemy-Utils>=0.33.1,<0.36",
|
|
||||||
"invenio-rdm-records~=0.20.8",
|
|
||||||
"invenio-search[elasticsearch7]>=1.4.0",
|
|
||||||
"psycopg2-binary>=2.8.6",
|
|
||||||
]
|
|
||||||
|
|
||||||
extras_require = {
|
|
||||||
"docs": [
|
|
||||||
"Sphinx>=3",
|
|
||||||
],
|
|
||||||
"tests": tests_require,
|
|
||||||
}
|
|
||||||
|
|
||||||
extras_require["all"] = []
|
|
||||||
for reqs in extras_require.values():
|
|
||||||
extras_require["all"].extend(reqs)
|
|
||||||
|
|
||||||
setup_requires = [
|
|
||||||
"Babel>=1.3",
|
|
||||||
"pytest-runner>=3.0.0,<5",
|
|
||||||
]
|
|
||||||
|
|
||||||
install_requires = [
|
|
||||||
"Flask-BabelEx>=0.9.4",
|
|
||||||
"elasticsearch_dsl>=7.2.1",
|
|
||||||
"sqlalchemy-continuum>=1.3.11",
|
|
||||||
]
|
|
||||||
|
|
||||||
packages = find_packages()
|
|
||||||
|
|
||||||
|
|
||||||
# Get the version string. Cannot be done with import!
|
|
||||||
g = {}
|
|
||||||
with open(os.path.join("invenio_config_tugraz", "version.py"), "rt") as fp:
|
|
||||||
exec(fp.read(), g)
|
|
||||||
version = g["__version__"]
|
|
||||||
|
|
||||||
setup(
|
|
||||||
name="invenio-config-tugraz",
|
|
||||||
version=version,
|
|
||||||
description=__doc__,
|
|
||||||
long_description=readme + "\n\n" + history,
|
|
||||||
keywords="invenio, config, Tu Graz",
|
|
||||||
license="MIT",
|
|
||||||
author="Mojib Wali",
|
|
||||||
author_email="mb_wali@hotmail.com",
|
|
||||||
url="https://github.com/tu-graz-library/invenio-config-tugraz",
|
|
||||||
packages=packages,
|
|
||||||
zip_safe=False,
|
|
||||||
include_package_data=True,
|
|
||||||
platforms="any",
|
|
||||||
entry_points={
|
|
||||||
"invenio_base.apps": [
|
|
||||||
"invenio_config_tugraz = invenio_config_tugraz:InvenioConfigTugraz",
|
|
||||||
],
|
|
||||||
"invenio_i18n.translations": [
|
|
||||||
"messages = invenio_config_tugraz",
|
|
||||||
],
|
|
||||||
"invenio_config.module": [
|
|
||||||
"invenio_config_tugraz = invenio_config_tugraz.config",
|
|
||||||
],
|
|
||||||
},
|
|
||||||
extras_require=extras_require,
|
|
||||||
install_requires=install_requires,
|
|
||||||
setup_requires=setup_requires,
|
|
||||||
tests_require=tests_require,
|
|
||||||
classifiers=[
|
|
||||||
"Environment :: Web Environment",
|
|
||||||
"Intended Audience :: Developers",
|
|
||||||
"License :: OSI Approved :: MIT License",
|
|
||||||
"Operating System :: OS Independent",
|
|
||||||
"Programming Language :: Python",
|
|
||||||
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
|
|
||||||
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
||||||
"Programming Language :: Python :: 3",
|
|
||||||
"Programming Language :: Python :: 3.6",
|
|
||||||
"Programming Language :: Python :: 3.7",
|
|
||||||
"Programming Language :: Python :: 3.8",
|
|
||||||
"Development Status :: 3 - Alpha",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ def create_app(request):
|
|||||||
return app
|
return app
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope="function")
|
||||||
def open_record():
|
def open_record():
|
||||||
"""Open record data as dict coming from the external world."""
|
"""Open record data as dict coming from the external world."""
|
||||||
return {
|
return {
|
||||||
@@ -81,44 +81,44 @@ def open_record():
|
|||||||
"metadata": False,
|
"metadata": False,
|
||||||
"files": False,
|
"files": False,
|
||||||
"owned_by": [1],
|
"owned_by": [1],
|
||||||
"access_right": "open"
|
"access_right": "open",
|
||||||
},
|
},
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"publication_date": "2020-06-01",
|
"publication_date": "2020-06-01",
|
||||||
"resource_type": {
|
"resource_type": {"type": "image", "subtype": "image-photo"},
|
||||||
"type": "image",
|
|
||||||
"subtype": "image-photo"
|
|
||||||
},
|
|
||||||
# Technically not required
|
# Technically not required
|
||||||
"creators": [{
|
"creators": [
|
||||||
"name": "Troy Brown",
|
{"name": "Troy Brown", "type": "personal"},
|
||||||
"type": "personal"
|
{
|
||||||
}, {
|
"name": "Phillip Lester",
|
||||||
"name": "Phillip Lester",
|
"type": "personal",
|
||||||
"type": "personal",
|
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
||||||
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
"affiliations": [
|
||||||
"affiliations": [{
|
{"name": "Carter-Morris", "identifiers": {"ror": "03yrm5c26"}}
|
||||||
"name": "Carter-Morris",
|
],
|
||||||
"identifiers": {"ror": "03yrm5c26"}
|
},
|
||||||
}]
|
{
|
||||||
}, {
|
"name": "Steven Williamson",
|
||||||
"name": "Steven Williamson",
|
"type": "personal",
|
||||||
"type": "personal",
|
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
||||||
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
"affiliations": [
|
||||||
"affiliations": [{
|
{
|
||||||
"name": "Ritter and Sons",
|
"name": "Ritter and Sons",
|
||||||
"identifiers": {"ror": "03yrm5c26"}
|
"identifiers": {"ror": "03yrm5c26"},
|
||||||
}, {
|
},
|
||||||
"name": "Montgomery, Bush and Madden",
|
{
|
||||||
"identifiers": {"ror": "03yrm5c26"}
|
"name": "Montgomery, Bush and Madden",
|
||||||
}]
|
"identifiers": {"ror": "03yrm5c26"},
|
||||||
}],
|
},
|
||||||
"title": "A Romans story"
|
],
|
||||||
}
|
},
|
||||||
|
],
|
||||||
|
"title": "A Romans story",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope="function")
|
||||||
def singleip_record():
|
def singleip_record():
|
||||||
"""Single Ip record data as dict coming from the external world."""
|
"""Single Ip record data as dict coming from the external world."""
|
||||||
return {
|
return {
|
||||||
@@ -126,38 +126,38 @@ def singleip_record():
|
|||||||
"metadata": False,
|
"metadata": False,
|
||||||
"files": False,
|
"files": False,
|
||||||
"owned_by": [1],
|
"owned_by": [1],
|
||||||
"access_right": "singleip"
|
"access_right": "singleip",
|
||||||
},
|
},
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"publication_date": "2020-06-01",
|
"publication_date": "2020-06-01",
|
||||||
"resource_type": {
|
"resource_type": {"type": "image", "subtype": "image-photo"},
|
||||||
"type": "image",
|
|
||||||
"subtype": "image-photo"
|
|
||||||
},
|
|
||||||
# Technically not required
|
# Technically not required
|
||||||
"creators": [{
|
"creators": [
|
||||||
"name": "Troy Brown",
|
{"name": "Troy Brown", "type": "personal"},
|
||||||
"type": "personal"
|
{
|
||||||
}, {
|
"name": "Phillip Lester",
|
||||||
"name": "Phillip Lester",
|
"type": "personal",
|
||||||
"type": "personal",
|
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
||||||
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
"affiliations": [
|
||||||
"affiliations": [{
|
{"name": "Carter-Morris", "identifiers": {"ror": "03yrm5c26"}}
|
||||||
"name": "Carter-Morris",
|
],
|
||||||
"identifiers": {"ror": "03yrm5c26"}
|
},
|
||||||
}]
|
{
|
||||||
}, {
|
"name": "Steven Williamson",
|
||||||
"name": "Steven Williamson",
|
"type": "personal",
|
||||||
"type": "personal",
|
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
||||||
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
"affiliations": [
|
||||||
"affiliations": [{
|
{
|
||||||
"name": "Ritter and Sons",
|
"name": "Ritter and Sons",
|
||||||
"identifiers": {"ror": "03yrm5c26"}
|
"identifiers": {"ror": "03yrm5c26"},
|
||||||
}, {
|
},
|
||||||
"name": "Montgomery, Bush and Madden",
|
{
|
||||||
"identifiers": {"ror": "03yrm5c26"}
|
"name": "Montgomery, Bush and Madden",
|
||||||
}]
|
"identifiers": {"ror": "03yrm5c26"},
|
||||||
}],
|
},
|
||||||
"title": "A Romans story"
|
],
|
||||||
}
|
},
|
||||||
|
],
|
||||||
|
"title": "A Romans story",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
# Copyright (C) 2020-2022 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
|
||||||
@@ -8,9 +8,9 @@
|
|||||||
|
|
||||||
"""Test Generators."""
|
"""Test Generators."""
|
||||||
|
|
||||||
from invenio_access.permissions import any_user, authenticated_user
|
from invenio_access.permissions import any_user
|
||||||
|
|
||||||
from invenio_config_tugraz.generators import AuthenticatedUser, RecordIp
|
from invenio_config_tugraz.generators import RecordIp
|
||||||
|
|
||||||
|
|
||||||
def test_recordip(create_app, open_record, singleip_record):
|
def test_recordip(create_app, open_record, singleip_record):
|
||||||
@@ -26,13 +26,6 @@ def test_recordip(create_app, open_record, singleip_record):
|
|||||||
assert generator.excludes(record=open_record) == []
|
assert generator.excludes(record=open_record) == []
|
||||||
assert generator.excludes(record=open_record) == []
|
assert generator.excludes(record=open_record) == []
|
||||||
|
|
||||||
assert generator.query_filter().to_dict() == {'bool': {'must_not': [{'match': {'access.access_right': 'singleip'}}]}}
|
assert generator.query_filter().to_dict() == {
|
||||||
|
"bool": {"must_not": [{"match": {"access.access_right": "singleip"}}]}
|
||||||
|
}
|
||||||
def test_authenticateduser():
|
|
||||||
"""Test Generator AuthenticatedUser."""
|
|
||||||
generator = AuthenticatedUser()
|
|
||||||
|
|
||||||
assert generator.needs() == [authenticated_user]
|
|
||||||
assert generator.excludes() == []
|
|
||||||
assert generator.query_filter() == []
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
# Copyright (C) 2020-2022 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
|
||||||
|
|||||||
Reference in New Issue
Block a user