summaryrefslogtreecommitdiffstats
path: root/server/db/sysdb.h
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2009-03-02 09:35:06 -0500
committerSimo Sorce <ssorce@redhat.com>2009-03-02 09:47:54 -0500
commit5e3966c99180abdcd1e21774a882f1c14c47aae8 (patch)
tree1a882b9d49f2c7ac25d70f0bbb644b5cefed6439 /server/db/sysdb.h
parent6f5b1ad8c234d58041e45aef4558d50f44d7f021 (diff)
downloadsssd-5e3966c99180abdcd1e21774a882f1c14c47aae8.tar.gz
sssd-5e3966c99180abdcd1e21774a882f1c14c47aae8.tar.xz
sssd-5e3966c99180abdcd1e21774a882f1c14c47aae8.zip
Implement GetUserAttributes in the InfoPipe
This patch adds support for requesting user data in the sysdb via the InfoPipe. It currently has support for reading defined entries of integral, floating-point or string types. Tasks remaining: 1) Implement call to the provider when cache is out of date 2) Support byte arrays for userpic and similar I modified sysdb_search_ctx in sysdb_search.c to accept an array of attributes to pass into the LDB search. I also made one additional related fix: the btreemap now sorts in the correct order. Previously I had accidentally transposed the two values for sorting, so the map would always have been in exact reverse order.
Diffstat (limited to 'server/db/sysdb.h')
-rw-r--r--server/db/sysdb.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/server/db/sysdb.h b/server/db/sysdb.h
index 01df3c0c2..498ad09bf 100644
--- a/server/db/sysdb.h
+++ b/server/db/sysdb.h
@@ -23,6 +23,7 @@
#define __SYS_DB_H__
#include "ldb.h"
+#include "confdb/confdb.h"
#define SYSDB_CONF_SECTION "config/sysdb"
#define SYSDB_FILE "sssd.ldb"
@@ -50,6 +51,17 @@
#define SYSDB_GR_MEMBER "member"
#define SYSDB_LEGACY_MEMBER "memberUid"
+#define SYSDB_USER_ATTR_DEFAULTGROUP "defaultGroup"
+#define SYSDB_USER_ATTR_GECOS "gecos"
+#define SYSDB_USER_ATTR_HOMEDIR "homeDirectory"
+#define SYSDB_USER_ATTR_SHELL "shell"
+#define SYSDB_USER_ATTR_FULLNAME "fullName"
+#define SYSDB_USER_ATTR_LOCALE "locale"
+#define SYSDB_USER_ATTR_KEYBOARD "keyboard"
+#define SYSDB_USER_ATTR_SESSION "session"
+#define SYSDB_USER_ATTR_LAST_LOGIN "lastLogin"
+#define SYSDB_USER_ATTR_USERPIC "userPicture"
+
#define SYSDB_LAST_UPDATE "lastUpdate"
#define SYSDB_PWNAM_FILTER "(&(objectclass="SYSDB_USER_CLASS")("SYSDB_PW_NAME"=%s))"
@@ -70,6 +82,18 @@
SYSDB_PW_HOMEDIR, SYSDB_PW_SHELL, \
SYSDB_LAST_UPDATE, \
NULL}
+#define SYSDB_USER_ATTRS {SYSDB_USER_ATTR_DEFAULTGROUP, \
+ SYSDB_USER_ATTR_GECOS, \
+ SYSDB_USER_ATTR_HOMEDIR, \
+ SYSDB_USER_ATTR_SHELL, \
+ SYSDB_USER_ATTR_FULLNAME, \
+ SYSDB_USER_ATTR_LOCALE, \
+ SYSDB_USER_ATTR_KEYBOARD, \
+ SYSDB_USER_ATTR_SESSION, \
+ SYSDB_USER_ATTR_LAST_LOGIN, \
+ SYSDB_USER_ATTR_USERPIC, \
+ SYSDB_LAST_UPDATE, \
+ NULL}
#define SYSDB_GRNAM_ATTRS {SYSDB_GR_NAME, SYSDB_GR_GIDNUM, \
SYSDB_LAST_UPDATE, SYSDB_LEGACY_MEMBER, \
NULL}
@@ -142,10 +166,17 @@ int sysdb_initgroups(TALLOC_CTX *mem_ctx,
const char *name,
bool legacy,
sysdb_callback_t fn, void *ptr);
+int sysdb_get_user_attr(TALLOC_CTX *mem_ctx,
+ struct sysdb_ctx *ctx,
+ struct sss_domain_info *domain,
+ const char *name,
+ const char **attributes,
+ sysdb_callback_t fn, void *ptr);
struct ldb_context *sysdb_ctx_get_ldb(struct sysdb_ctx *ctx);
struct sysdb_ctx *sysdb_req_get_ctx(struct sysdb_req *req);
+
int sysdb_transaction(TALLOC_CTX *mem_ctx,
struct sysdb_ctx *ctx,
sysdb_req_fn_t fn, void *pvt);