From: Wolfgang Bumiller <w.bumiller@proxmox.com>
To: Markus Frank <m.frank@proxmox.com>
Cc: pmg-devel@lists.proxmox.com
Subject: Re: [pmg-devel] [PATCH proxmox-perl-rs v2 2/7] move openid code from pve-rs to common
Date: Fri, 24 May 2024 09:08:42 +0200 [thread overview]
Message-ID: <k5bmcfs5jfxocjzyefvpviumb27w6me7qaupr2cv3f5cpsjlsn@yyjrhrtkgkth> (raw)
In-Reply-To: <20240507084745.8025-3-m.frank@proxmox.com>
On Tue, May 07, 2024 at 10:47:40AM +0200, Markus Frank wrote:
> Change pve-rs functions to be wrapper functions for common
> and add similar wrapper functions for pmg-rs.
>
> Signed-off-by: Markus Frank <m.frank@proxmox.com>
> ---
> common/src/mod.rs | 1 +
> common/src/openid/mod.rs | 63 ++++++++++++++++++++++++++++++++++++++++
> pmg-rs/Cargo.toml | 1 +
> pmg-rs/src/lib.rs | 1 +
> pmg-rs/src/openid/mod.rs | 47 ++++++++++++++++++++++++++++++
> pve-rs/src/openid/mod.rs | 32 +++++---------------
> 6 files changed, 121 insertions(+), 24 deletions(-)
> create mode 100644 common/src/openid/mod.rs
> create mode 100644 pmg-rs/src/openid/mod.rs
>
> diff --git a/common/src/mod.rs b/common/src/mod.rs
> index c3574f4..8460439 100644
> --- a/common/src/mod.rs
> +++ b/common/src/mod.rs
> @@ -3,3 +3,4 @@ mod calendar_event;
> pub mod logger;
> pub mod notify;
> mod subscription;
> +pub mod openid;
(...)
> diff --git a/pmg-rs/src/openid/mod.rs b/pmg-rs/src/openid/mod.rs
> new file mode 100644
> index 0000000..c0988d6
> --- /dev/null
> +++ b/pmg-rs/src/openid/mod.rs
> @@ -0,0 +1,47 @@
> +#[perlmod::package(name = "PMG::RS::OpenId", lib = "pmg_rs")]
Do we have any reason to suspect we might need different functions
between pve and pmg here in the future?
I think it should be enough to just have the `Proxmox::RS::OpenId`
package and directly use that from the perl code.
The PVE::RS::* side wrapper should stick around for a while for easier
up/downgrading without dependency issues, but I don't think we need the
PMG::RS::* one?
> +mod export {
> + use anyhow::Error;
> +
> + use perlmod::Value;
> +
> + use proxmox_openid::{OpenIdConfig, PrivateAuthState};
> +
> + use crate::common::openid::export as common;
> + use crate::common::openid::export::OpenId as OpenId;
> +
> + /// Create a new OpenId client instance
> + #[export(raw_return)]
> + pub fn discover(
> + #[raw] class: Value,
> + config: OpenIdConfig,
> + redirect_url: &str,
> + ) -> Result<Value, Error> {
> + common::discover(class, config, redirect_url)
> + }
> +
> + #[export]
> + pub fn authorize_url(
> + #[try_from_ref] this: &OpenId,
> + state_dir: &str,
> + realm: &str,
> + ) -> Result<String, Error> {
> + common::authorize_url(this, state_dir, realm)
> + }
> +
> + #[export]
> + pub fn verify_public_auth_state(
> + state_dir: &str,
> + state: &str,
> + ) -> Result<(String, PrivateAuthState), Error> {
> + common::verify_public_auth_state(state_dir, state)
> + }
> +
> + #[export(raw_return)]
> + pub fn verify_authorization_code(
> + #[try_from_ref] this: &OpenId,
> + code: &str,
> + private_auth_state: PrivateAuthState,
> + ) -> Result<Value, Error> {
> + common::verify_authorization_code(this, code, private_auth_state)
> + }
> +}
_______________________________________________
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:[~2024-05-24 7:08 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-07 8:47 [pmg-devel] [PATCH pve-common/proxmox-perl-rs/pmg-api/pmg-gui v2 0/7] fix #3892: OpenID Markus Frank
2024-05-07 8:47 ` [pmg-devel] [PATCH pve-common v2 1/7] add Schema package with Auth module that contains realm sync options Markus Frank
2024-05-07 8:47 ` [pmg-devel] [PATCH proxmox-perl-rs v2 2/7] move openid code from pve-rs to common Markus Frank
2024-05-24 7:08 ` Wolfgang Bumiller [this message]
2024-05-07 8:47 ` [pmg-devel] [PATCH pmg-api v2 3/7] config: add plugin system for realms & add openid type realms Markus Frank
2024-05-07 8:47 ` [pmg-devel] [PATCH pmg-api v2 4/7] api: add/update/remove realms like in PVE Markus Frank
2024-05-07 8:47 ` [pmg-devel] [PATCH pmg-api v2 5/7] api: openid login similar to PVE Markus Frank
2024-05-07 8:47 ` [pmg-devel] [PATCH pmg-gui v2 6/7] login: add OpenID realms Markus Frank
2024-05-07 8:47 ` [pmg-devel] [PATCH pmg-gui v2 7/7] add panel for realms to User Management Markus Frank
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=k5bmcfs5jfxocjzyefvpviumb27w6me7qaupr2cv3f5cpsjlsn@yyjrhrtkgkth \
--to=w.bumiller@proxmox.com \
--cc=m.frank@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.