diff options
Diffstat (limited to 'server/db')
-rw-r--r-- | server/db/sysdb.h | 3 | ||||
-rw-r--r-- | server/db/sysdb_search.c | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/server/db/sysdb.h b/server/db/sysdb.h index 544a81f5..1302cddb 100644 --- a/server/db/sysdb.h +++ b/server/db/sysdb.h @@ -84,6 +84,8 @@ #define SYSDB_INITGR_LEGACY_FILTER "(&(objectclass="SYSDB_GROUP_CLASS")("SYSDB_LEGACY_MEMBER"=%s))" +#define SYSDB_GETCACHED_FILTER "(&(objectclass="SYSDB_USER_CLASS")("SYSDB_USER_ATTR_LAST_LOGIN">=%llu))" + #define SYSDB_PW_ATTRS {SYSDB_PW_NAME, SYSDB_PW_UIDNUM, \ SYSDB_PW_GIDNUM, SYSDB_PW_FULLNAME, \ SYSDB_PW_HOMEDIR, SYSDB_PW_SHELL, \ @@ -199,6 +201,7 @@ int sysdb_enumpwent(TALLOC_CTX *mem_ctx, struct sysdb_ctx *ctx, const char *domain, bool legacy, + const char *expression, sysdb_callback_t fn, void *ptr); int sysdb_getgrnam(TALLOC_CTX *mem_ctx, diff --git a/server/db/sysdb_search.c b/server/db/sysdb_search.c index ff18419e..8b14221d 100644 --- a/server/db/sysdb_search.c +++ b/server/db/sysdb_search.c @@ -264,6 +264,7 @@ int sysdb_enumpwent(TALLOC_CTX *mem_ctx, struct sysdb_ctx *ctx, const char *domain, bool legacy, + const char *expression, sysdb_callback_t fn, void *ptr) { static const char *attrs[] = SYSDB_PW_ATTRS; @@ -278,7 +279,11 @@ int sysdb_enumpwent(TALLOC_CTX *mem_ctx, return ENOMEM; } - sctx->expression = SYSDB_PWENT_FILTER; + if (expression) + sctx->expression = expression; + else + sctx->expression = SYSDB_PWENT_FILTER; + sctx->attrs = attrs; return sysdb_operation(mem_ctx, ctx, user_search, sctx); |