summaryrefslogtreecommitdiffstats
path: root/src/providers/dp_refresh.c
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2015-02-19 12:10:23 +0100
committerJakub Hrozek <jhrozek@redhat.com>2015-03-08 22:38:14 +0100
commit156a4360e51dc6408af9b54b22282dbe493d82d8 (patch)
treee520e3a2239b308220c4dacf5505d9dd6fa026bd /src/providers/dp_refresh.c
parentc75b5ffda709bd7373d9b6cae632eeda049282fe (diff)
downloadsssd-156a4360e51dc6408af9b54b22282dbe493d82d8.tar.gz
sssd-156a4360e51dc6408af9b54b22282dbe493d82d8.tar.xz
sssd-156a4360e51dc6408af9b54b22282dbe493d82d8.zip
be_refresh: support groups
Resolves: https://fedorahosted.org/sssd/ticket/2346 Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> (cherry picked from commit 61c8d13e55ebafc28da1b0b5ad9ae578d687e288)
Diffstat (limited to 'src/providers/dp_refresh.c')
-rw-r--r--src/providers/dp_refresh.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/providers/dp_refresh.c b/src/providers/dp_refresh.c
index f599618e0..169ef71ed 100644
--- a/src/providers/dp_refresh.c
+++ b/src/providers/dp_refresh.c
@@ -109,6 +109,26 @@ static errno_t be_refresh_get_users(TALLOC_CTX *mem_ctx,
return ret;
}
+static errno_t be_refresh_get_groups(TALLOC_CTX *mem_ctx,
+ struct sss_domain_info *domain,
+ time_t period,
+ char ***_values)
+{
+ struct ldb_dn *base_dn = NULL;
+ errno_t ret;
+
+ base_dn = sysdb_group_base_dn(mem_ctx, domain);
+ if (base_dn == NULL) {
+ return ENOMEM;
+ }
+
+ ret = be_refresh_get_values(mem_ctx, domain, period, SYSDB_GROUP_CLASS,
+ base_dn, SYSDB_NAME, _values);
+
+ talloc_free(base_dn);
+ return ret;
+}
+
static errno_t be_refresh_get_netgroups(TALLOC_CTX *mem_ctx,
struct sss_domain_info *domain,
time_t period,
@@ -161,6 +181,9 @@ struct be_refresh_ctx *be_refresh_ctx_init(TALLOC_CTX *mem_ctx)
ctx->callbacks[BE_REFRESH_TYPE_USERS].name = "users";
ctx->callbacks[BE_REFRESH_TYPE_USERS].get_values = be_refresh_get_users;
+ ctx->callbacks[BE_REFRESH_TYPE_GROUPS].name = "groups";
+ ctx->callbacks[BE_REFRESH_TYPE_GROUPS].get_values = be_refresh_get_groups;
+
ctx->callbacks[BE_REFRESH_TYPE_NETGROUPS].name = "netgroups";
ctx->callbacks[BE_REFRESH_TYPE_NETGROUPS].get_values \
= be_refresh_get_netgroups;