summaryrefslogtreecommitdiffstats
path: root/src/responder/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/responder/common')
-rw-r--r--src/responder/common/responder.h4
-rw-r--r--src/responder/common/responder_dp.c11
2 files changed, 14 insertions, 1 deletions
diff --git a/src/responder/common/responder.h b/src/responder/common/responder.h
index bd0250d52..4d927cfe3 100644
--- a/src/responder/common/responder.h
+++ b/src/responder/common/responder.h
@@ -282,7 +282,9 @@ enum sss_dp_acct_type {
SSS_DP_SERVICES,
SSS_DP_SECID,
SSS_DP_USER_AND_GROUP,
- SSS_DP_CERT
+ SSS_DP_CERT,
+ SSS_DP_WILDCARD_USER,
+ SSS_DP_WILDCARD_GROUP,
};
struct tevent_req *
diff --git a/src/responder/common/responder_dp.c b/src/responder/common/responder_dp.c
index f752c94c3..f7f8df04e 100644
--- a/src/responder/common/responder_dp.c
+++ b/src/responder/common/responder_dp.c
@@ -528,9 +528,11 @@ sss_dp_get_account_msg(void *pvt)
switch (info->type) {
case SSS_DP_USER:
+ case SSS_DP_WILDCARD_USER:
be_type = BE_REQ_USER;
break;
case SSS_DP_GROUP:
+ case SSS_DP_WILDCARD_GROUP:
be_type = BE_REQ_GROUP;
break;
case SSS_DP_INITGROUPS:
@@ -574,6 +576,15 @@ sss_dp_get_account_msg(void *pvt)
filter = talloc_asprintf(info, "%s=%s", DP_CERT,
info->opt_name);
}
+ } else if (info->type == SSS_DP_WILDCARD_USER ||
+ info->type == SSS_DP_WILDCARD_GROUP) {
+ if (info->extra) {
+ filter = talloc_asprintf(info, "%s=%s:%s", DP_WILDCARD,
+ info->opt_name, info->extra);
+ } else {
+ filter = talloc_asprintf(info, "%s=%s", DP_WILDCARD,
+ info->opt_name);
+ }
} else {
if (info->extra) {
filter = talloc_asprintf(info, "name=%s:%s",