From: Stoiko Ivanov <s.ivanov@proxmox.com>
To: pmg-devel@lists.proxmox.com
Subject: [pmg-devel] [PATCH pmg-api 1/3] auth: plugin: move schema definitions from Utils to Auth::Plugin
Date: Wed, 26 Feb 2025 18:37:35 +0100 [thread overview]
Message-ID: <20250226173737.577869-2-s.ivanov@proxmox.com> (raw)
In-Reply-To: <20250226173737.577869-1-s.ivanov@proxmox.com>
it's the class that actually needs them, and where we want
to keep the definitions.
move happens in order to not have a cyclical include
(PMG::Auth::Plugin including PMG::Utils for the schema definitions,
and PMG::Utils including PMG::Auth::Plugin to get the realms from its
config file).
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
src/PMG/Auth/Plugin.pm | 19 ++++++++++++++++++-
src/PMG/Utils.pm | 21 ++-------------------
2 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/src/PMG/Auth/Plugin.pm b/src/PMG/Auth/Plugin.pm
index beb8fc4..f6792ac 100755
--- a/src/PMG/Auth/Plugin.pm
+++ b/src/PMG/Auth/Plugin.pm
@@ -6,7 +6,6 @@ use warnings;
use Digest::SHA;
use Encode;
-use PMG::Utils;
use PVE::INotify;
use PVE::JSONSchema qw(get_standard_option);
use PVE::SectionConfig;
@@ -56,6 +55,24 @@ sub lock_realm_config {
}
}
+sub is_valid_realm {
+ my ($realm) = @_;
+ return 0 if !$realm;
+ return 1 if $realm eq 'pam' || $realm eq 'quarantine'; # built-in ones
+
+ my $cfg = PVE::INotify::read_file(PMG::Auth::Plugin::realm_conf_id());
+ return exists($cfg->{ids}->{$realm}) ? 1 : 0;
+}
+
+PVE::JSONSchema::register_format('pmg-realm', \&is_valid_realm);
+
+PVE::JSONSchema::register_standard_option('realm', {
+ description => "Authentication domain ID",
+ type => 'string',
+ format => 'pmg-realm',
+ maxLength => 32,
+});
+
my $realm_regex = qr/[A-Za-z][A-Za-z0-9\.\-_]+/;
sub pmg_verify_realm {
diff --git a/src/PMG/Utils.pm b/src/PMG/Utils.pm
index d440876..33f80ae 100644
--- a/src/PMG/Utils.pm
+++ b/src/PMG/Utils.pm
@@ -34,6 +34,7 @@ use Time::Local;
use Xdgmime;
use PMG::AtomicFile;
+use PMG::Auth::Plugin;
use PMG::MIMEUtils;
use PMG::MailQueue;
use PMG::SMTPPrinter;
@@ -52,30 +53,12 @@ try_decode_utf8
my $user_regex = qr![^\s:/]+!;
sub valid_pmg_realm_regex {
- my $cfg = PVE::INotify::read_file('realms.cfg');
+ my $cfg = PVE::INotify::read_file(PMG::Auth::Plugin::realm_conf_id());
my $ids = $cfg->{ids};
my $realms = ['pam', 'quarantine', sort keys $cfg->{ids}->%* ];
return join('|', @$realms);
}
-sub is_valid_realm {
- my ($realm) = @_;
- return 0 if !$realm;
- return 1 if $realm eq 'pam' || $realm eq 'quarantine'; # built-in ones
-
- my $cfg = PVE::INotify::read_file('realms.cfg');
- return exists($cfg->{ids}->{$realm}) ? 1 : 0;
-}
-
-PVE::JSONSchema::register_format('pmg-realm', \&is_valid_realm);
-
-PVE::JSONSchema::register_standard_option('realm', {
- description => "Authentication domain ID",
- type => 'string',
- format => 'pmg-realm',
- maxLength => 32,
-});
-
PVE::JSONSchema::register_standard_option('pmg-starttime', {
description => "Only consider entries newer than 'starttime' (unix epoch). Default is 'now - 1day'.",
type => 'integer',
--
2.39.5
_______________________________________________
pmg-devel mailing list
pmg-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pmg-devel
next prev parent reply other threads:[~2025-02-26 17:38 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-26 17:37 [pmg-devel] [PATCH pmg-api 0/3] rename realms.cfg to realms.conf Stoiko Ivanov
2025-02-26 17:37 ` Stoiko Ivanov [this message]
2025-02-26 17:37 ` [pmg-devel] [PATCH pmg-api 2/3] access control: " Stoiko Ivanov
2025-02-26 17:37 ` [pmg-devel] [PATCH pmg-api 3/3] cluster: add realms.conf to config-sync Stoiko Ivanov
2025-02-26 20:17 ` [pmg-devel] applied-series: [PATCH pmg-api 0/3] rename realms.cfg to realms.conf Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250226173737.577869-2-s.ivanov@proxmox.com \
--to=s.ivanov@proxmox.com \
--cc=pmg-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal