summaryrefslogtreecommitdiffstats
path: root/src/db/sysdb.h
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2011-09-21 10:39:06 +0200
committerStephen Gallagher <sgallagh@redhat.com>2011-10-26 10:29:39 -0400
commit7ab67b716a104fc7676f9be296e2f2c2838d99fd (patch)
tree659b0c7d4b23710ac11e2aa140f0172228eb9707 /src/db/sysdb.h
parent57193e2334935343c6128eb7fc71743e4376aa09 (diff)
downloadsssd-7ab67b716a104fc7676f9be296e2f2c2838d99fd.tar.gz
sssd-7ab67b716a104fc7676f9be296e2f2c2838d99fd.tar.xz
sssd-7ab67b716a104fc7676f9be296e2f2c2838d99fd.zip
Better handling for aliases
Add sysdb interface to get name aliases Add a sysdb_get_direct_parents function Store name aliases for users, groups Return users and groups based on alias https://fedorahosted.org/sssd/ticket/926 Fix typo in sysdb_get_direct_parents
Diffstat (limited to 'src/db/sysdb.h')
-rw-r--r--src/db/sysdb.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/db/sysdb.h b/src/db/sysdb.h
index 68d3021ee..7f2e41f9d 100644
--- a/src/db/sysdb.h
+++ b/src/db/sysdb.h
@@ -46,6 +46,7 @@
#define SYSDB_NETGROUP_CLASS "netgroup"
#define SYSDB_NAME "name"
+#define SYSDB_NAME_ALIAS "nameAlias"
#define SYSDB_OBJECTCLASS "objectClass"
#define SYSDB_NEXTID "nextID"
@@ -106,15 +107,15 @@
#define SYSDB_NC "objectclass="SYSDB_NETGROUP_CLASS
#define SYSDB_MPGC "|("SYSDB_UC")("SYSDB_GC")"
-#define SYSDB_PWNAM_FILTER "(&("SYSDB_UC")("SYSDB_NAME"=%s))"
+#define SYSDB_PWNAM_FILTER "(&("SYSDB_UC")(|("SYSDB_NAME_ALIAS"=%s)("SYSDB_NAME"=%s)))"
#define SYSDB_PWUID_FILTER "(&("SYSDB_UC")("SYSDB_UIDNUM"=%lu))"
#define SYSDB_PWENT_FILTER "("SYSDB_UC")"
-#define SYSDB_GRNAM_FILTER "(&("SYSDB_GC")("SYSDB_NAME"=%s))"
+#define SYSDB_GRNAM_FILTER "(&("SYSDB_GC")(|("SYSDB_NAME_ALIAS"=%s)("SYSDB_NAME"=%s)))"
#define SYSDB_GRNA2_FILTER "(&("SYSDB_UC")("SYSDB_MEMBEROF"=%s))"
#define SYSDB_GRGID_FILTER "(&("SYSDB_GC")("SYSDB_GIDNUM"=%lu))"
#define SYSDB_GRENT_FILTER "("SYSDB_GC")"
-#define SYSDB_GRNAM_MPG_FILTER "(&("SYSDB_MPGC")("SYSDB_NAME"=%s))"
+#define SYSDB_GRNAM_MPG_FILTER "(&("SYSDB_MPGC")(|("SYSDB_NAME_ALIAS"=%s)("SYSDB_NAME"=%s)))"
#define SYSDB_GRGID_MPG_FILTER "(&("SYSDB_MPGC")("SYSDB_GIDNUM"=%lu))"
#define SYSDB_GRENT_MPG_FILTER "("SYSDB_MPGC")"
@@ -222,6 +223,10 @@ errno_t sysdb_attrs_primary_name(struct sysdb_ctx *sysdb,
struct sysdb_attrs *attrs,
const char *ldap_attr,
const char **_primary);
+errno_t sysdb_attrs_get_aliases(TALLOC_CTX *mem_ctx,
+ struct sysdb_attrs *attrs,
+ const char *primary,
+ const char ***_aliases);
errno_t sysdb_attrs_primary_name_list(struct sysdb_ctx *sysdb,
TALLOC_CTX *mem_ctx,
struct sysdb_attrs **attr_list,
@@ -735,4 +740,11 @@ errno_t sysdb_remove_attrs(struct sysdb_ctx *sysdb,
enum sysdb_member_type type,
char **remove_attrs);
+errno_t sysdb_get_direct_parents(TALLOC_CTX *mem_ctx,
+ struct sysdb_ctx *sysdb,
+ struct sss_domain_info *dom,
+ enum sysdb_member_type mtype,
+ const char *name,
+ char ***_direct_parents);
+
#endif /* __SYS_DB_H__ */