all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH v2 proxmox] ldap: surround user filter expression in parenthesis if not already
@ 2023-06-23  8:16 Lukas Wagner
  2023-06-23  9:20 ` [pbs-devel] applied: " Wolfgang Bumiller
  0 siblings, 1 reply; 2+ messages in thread
From: Lukas Wagner @ 2023-06-23  8:16 UTC (permalink / raw)
  To: pbs-devel

In PVE, the `filter` attribute is surrounded in () if it is not already,
allowing "uid=test" as well as "(uid=test)" [1].

A forum user [2] just ran into this inconsistency, so I decided to adjust
the behavior.

[1] https://git.proxmox.com/?p=pve-common.git;a=blob;f=src/PVE/LDAP.pm;h=ff98e367e63265bf76c0f302847c3749eea095a6;hb=HEAD#l115
[2] https://forum.proxmox.com/threads/ldap-query-for-security-group-members.127882/

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
---

Notes:
    Wanted to ping the patch, noticed 2 small typos in the commit message,
    so I sent a v2. No changes in the code.

 proxmox-ldap/src/lib.rs | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/proxmox-ldap/src/lib.rs b/proxmox-ldap/src/lib.rs
index ea210b3e..4fa866d8 100644
--- a/proxmox-ldap/src/lib.rs
+++ b/proxmox-ldap/src/lib.rs
@@ -351,7 +351,14 @@ impl<'a> Display for FilterElement<'a> {
             FilterElement::Condition(attr, value) => {
                 write!(f, "({attr}={value})")?;
             }
-            FilterElement::Verbatim(verbatim) => write!(f, "{verbatim}")?,
+            FilterElement::Verbatim(verbatim) => {
+
+                if !verbatim.starts_with('(') && !verbatim.ends_with(')') {
+                    write!(f, "({verbatim})")?
+                } else {
+                    write!(f, "{verbatim}")?
+                }
+            },
         }
 
         Ok(())
@@ -371,6 +378,7 @@ mod tests {
         );
 
         assert_eq!("(foo=bar)", &Verbatim("(foo=bar)").to_string());
+        assert_eq!("(foo=bar)", &Verbatim("foo=bar").to_string());
 
         let filter_string = And(vec![
             Condition("givenname", "john"),
-- 
2.39.2





^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pbs-devel] applied: [PATCH v2 proxmox] ldap: surround user filter expression in parenthesis if not already
  2023-06-23  8:16 [pbs-devel] [PATCH v2 proxmox] ldap: surround user filter expression in parenthesis if not already Lukas Wagner
@ 2023-06-23  9:20 ` Wolfgang Bumiller
  0 siblings, 0 replies; 2+ messages in thread
From: Wolfgang Bumiller @ 2023-06-23  9:20 UTC (permalink / raw)
  To: Lukas Wagner; +Cc: pbs-devel

applied (and added a rustfmt fixup commit)

On Fri, Jun 23, 2023 at 10:16:37AM +0200, Lukas Wagner wrote:
> In PVE, the `filter` attribute is surrounded in () if it is not already,
> allowing "uid=test" as well as "(uid=test)" [1].
> 
> A forum user [2] just ran into this inconsistency, so I decided to adjust
> the behavior.
> 
> [1] https://git.proxmox.com/?p=pve-common.git;a=blob;f=src/PVE/LDAP.pm;h=ff98e367e63265bf76c0f302847c3749eea095a6;hb=HEAD#l115
> [2] https://forum.proxmox.com/threads/ldap-query-for-security-group-members.127882/
> 
> Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
> ---
> 
> Notes:
>     Wanted to ping the patch, noticed 2 small typos in the commit message,
>     so I sent a v2. No changes in the code.
> 
>  proxmox-ldap/src/lib.rs | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/proxmox-ldap/src/lib.rs b/proxmox-ldap/src/lib.rs
> index ea210b3e..4fa866d8 100644
> --- a/proxmox-ldap/src/lib.rs
> +++ b/proxmox-ldap/src/lib.rs
> @@ -351,7 +351,14 @@ impl<'a> Display for FilterElement<'a> {
>              FilterElement::Condition(attr, value) => {
>                  write!(f, "({attr}={value})")?;
>              }
> -            FilterElement::Verbatim(verbatim) => write!(f, "{verbatim}")?,
> +            FilterElement::Verbatim(verbatim) => {
> +
> +                if !verbatim.starts_with('(') && !verbatim.ends_with(')') {
> +                    write!(f, "({verbatim})")?
> +                } else {
> +                    write!(f, "{verbatim}")?
> +                }
> +            },
>          }
>  
>          Ok(())
> @@ -371,6 +378,7 @@ mod tests {
>          );
>  
>          assert_eq!("(foo=bar)", &Verbatim("(foo=bar)").to_string());
> +        assert_eq!("(foo=bar)", &Verbatim("foo=bar").to_string());
>  
>          let filter_string = And(vec![
>              Condition("givenname", "john"),
> -- 
> 2.39.2




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-06-23  9:21 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-23  8:16 [pbs-devel] [PATCH v2 proxmox] ldap: surround user filter expression in parenthesis if not already Lukas Wagner
2023-06-23  9:20 ` [pbs-devel] applied: " Wolfgang Bumiller

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