# -*- coding: utf-8 -*- # # This file is part of INSPIRE. # Copyright (C) 2014-2017 CERN. # # INSPIRE is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # INSPIRE is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with INSPIRE. If not, see <http://www.gnu.org/licenses/>. # # In applying this license, CERN does not waive the privileges and immunities # granted to it by virtue of its status as an Intergovernmental Organization # or submit itself to any jurisdiction. from __future__ import absolute_import, division, print_function from invenio_access.permissions import (Permission, ParameterizedActionNeed) action_admin_holdingpen_authors = ParameterizedActionNeed( 'admin-holdingpen-authors', argument=None) holdingpen_author_permission = Permission(action_admin_holdingpen_authors)
# You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. """Permissions for this module.""" from functools import wraps from flask import abort, current_app, redirect, url_for from flask_login import current_user from flask_principal import RoleNeed from flask_security import login_required, roles_required from invenio_access.permissions import Permission from .modules.patrons.api import Patron request_item_permission = Permission(RoleNeed('patron')) librarian_permission = Permission( RoleNeed('librarian'), RoleNeed('system_librarian')) admin_permission = Permission(RoleNeed('admin')) editor_permission = Permission(RoleNeed('editor'), RoleNeed('admin')) def staffer_is_authenticated(user=None): """Checks if user (librarian or system_librarian) is authenticated. :return: patron records if user is logged in and authenticated and has librarian or system_librarian role. :return False otherwise. """ if not user: user = current_user
# -*- coding: utf-8 -*- # # RERO MEF # Copyright (C) 2020 RERO # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, version 3 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. """Permissions for this module.""" from flask_principal import RoleNeed from invenio_access.permissions import Permission admin_permission = Permission(RoleNeed('admins'))
def retrieve_patron_loans_permission(*args, **kwargs): """Return permission to retrieve patron loans.""" return Permission(retrieve_patron_loans_access_action, backoffice_access_action)
# -*- coding: utf-8 -*- # # RERO MEF # Copyright (C) 2020 RERO # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, version 3 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. """Permissions for this module.""" from flask_principal import RoleNeed from invenio_access.permissions import Permission admin_permission = Permission(RoleNeed('admins')) monitoring_permission = Permission(RoleNeed('monitoring'))
def has_read_loan_permission(*args, **kwargs): """Return permission to allow user to access loan.""" return Permission(loan_read_access)
def patron_permission(patron_pid): """Return a permission for the given patron.""" return Permission(UserNeed(int(patron_pid)), backoffice_access_action)
def superuser_permission(*args, **kwargs): """Return permission to allow only admins.""" return Permission(superuser_access)
def backoffice_permission(*args, **kwargs): """Return permission to allow only librarians and admins.""" return Permission(backoffice_access_action)
def authenticated_user_permission(*args, **kwargs): """Return an object that evaluates if the current user is authenticated.""" return Permission(authenticated_user)