diff --git a/mig/assets/css/V3/style.css b/mig/assets/css/V3/style.css index 10ea2b48b..c5b14d738 100644 --- a/mig/assets/css/V3/style.css +++ b/mig/assets/css/V3/style.css @@ -816,3 +816,8 @@ var, sampl, code { border: 1px solid #ff9900; margin-bottom: 20px; } + +/* Disable border on e.g. input elements if specifically requested */ +.noborder { + border: 0; +} diff --git a/mig/shared/defaults.py b/mig/shared/defaults.py index 2ad3c5905..cf9e34c76 100644 --- a/mig/shared/defaults.py +++ b/mig/shared/defaults.py @@ -208,6 +208,10 @@ # Number of days before expire that auto extend attempts kick in # NOTE: must be lower than all X_auto_extend_days values to avoid hammering attempt_auto_extend_days = 10 +# Enforce peers expire value (End date) to default/min/max days in the future +peers_expire_default_days = generic_valid_days +peers_expire_min_days = 7 +peers_expire_max_days = 3652 # Strictly ordered list of account status values to enable use of filemarks # for caching account status using integer timestamps outside user DB. diff --git a/mig/shared/functionality/peers.py b/mig/shared/functionality/peers.py index f24f01f4e..ce0b6cd60 100755 --- a/mig/shared/functionality/peers.py +++ b/mig/shared/functionality/peers.py @@ -4,7 +4,7 @@ # --- BEGIN_HEADER --- # # peers - manage external collaboration partners, etc. -# Copyright (C) 2003-2021 The MiG Project lead by Brian Vinter +# Copyright (C) 2003-2025 The MiG Project by the Science HPC Center at UCPH # # This file is part of MiG. # @@ -41,7 +41,8 @@ from mig.shared.base import pretty_format_user, fill_distinguished_name, \ client_id_dir, force_native_str_rec from mig.shared.defaults import csrf_field, peers_filename, \ - pending_peers_filename, peers_fields, peer_kinds, default_pager_entries + pending_peers_filename, peers_fields, peer_kinds, default_pager_entries, \ + peers_expire_min_days, peers_expire_max_days from mig.shared.functional import validate_input_and_cert from mig.shared.handlers import get_csrf_limit, make_csrf_token from mig.shared.htmlgen import man_base_js, man_base_html, html_post_helper @@ -217,6 +218,12 @@ def main(client_id, user_arguments_dict): 'csrf_field': csrf_field, 'csrf_limit': csrf_limit, 'target_op': target_op, 'csrf_token': csrf_token, 'expire_help': expire_help, + # NOTE: allow select expire N days or more from now + 'min_peers_expire': datetime.date.today() + \ + datetime.timedelta(days=peers_expire_min_days), + # NOTE: allow up to N days in the future + 'max_peers_expire': datetime.date.today() + \ + datetime.timedelta(days=peers_expire_max_days), 'csv_header': csv_sep.join([i for i in peers_fields])} form_prefix_html = '''