summaryrefslogtreecommitdiffstats
path: root/src/db/sysdb_ops.c
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2012-01-03 08:12:57 +0100
committerStephen Gallagher <sgallagh@redhat.com>2012-02-05 19:16:16 -0500
commit1f1e6cbc59868f06dee3ab4b3df660fcb77ce1c8 (patch)
tree5add917cb8be11a8dee45f60fcacf73b56da93da /src/db/sysdb_ops.c
parent232b73185893a42e545b20caa9e59880e8a8a901 (diff)
downloadsssd_unused-1f1e6cbc59868f06dee3ab4b3df660fcb77ce1c8.tar.gz
sssd_unused-1f1e6cbc59868f06dee3ab4b3df660fcb77ce1c8.tar.xz
sssd_unused-1f1e6cbc59868f06dee3ab4b3df660fcb77ce1c8.zip
AUTOFS: sysdb interface
Diffstat (limited to 'src/db/sysdb_ops.c')
-rw-r--r--src/db/sysdb_ops.c38
1 files changed, 32 insertions, 6 deletions
diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c
index 8eb81938..41070843 100644
--- a/src/db/sysdb_ops.c
+++ b/src/db/sysdb_ops.c
@@ -22,6 +22,7 @@
#include "util/util.h"
#include "db/sysdb_private.h"
#include "db/sysdb_services.h"
+#include "db/sysdb_autofs.h"
#include "util/crypto/sss_crypto.h"
#include <time.h>
@@ -1668,24 +1669,45 @@ sysdb_group_membership_mod(struct sysdb_ctx *sysdb,
return ENOMEM;
}
- group_dn = sysdb_group_dn(sysdb, tmp_ctx, sysdb->domain->name, group);
- if (!group_dn) {
- ret = ENOMEM;
- goto done;
- }
-
if (type == SYSDB_MEMBER_USER) {
member_dn = sysdb_user_dn(sysdb, tmp_ctx, sysdb->domain->name, member);
if (!member_dn) {
ret = ENOMEM;
goto done;
}
+
+ group_dn = sysdb_group_dn(sysdb, tmp_ctx, sysdb->domain->name, group);
+ if (!group_dn) {
+ ret = ENOMEM;
+ goto done;
+ }
} else if (type == SYSDB_MEMBER_GROUP) {
member_dn = sysdb_group_dn(sysdb, tmp_ctx, sysdb->domain->name, member);
if (!member_dn) {
ret = ENOMEM;
goto done;
}
+
+ group_dn = sysdb_group_dn(sysdb, tmp_ctx, sysdb->domain->name, group);
+ if (!group_dn) {
+ ret = ENOMEM;
+ goto done;
+ }
+ } else if (type == SYSDB_MEMBER_AUTOFSENTRY) {
+ /* FIXME - I don't like autofs specific stuff in sysdb_ops.c
+ * Maybe we should introduce sysdb_common.c ?
+ */
+ member_dn = sysdb_autofsentry_dn(tmp_ctx, sysdb, member);
+ if (!member_dn) {
+ ret = ENOMEM;
+ goto done;
+ }
+
+ group_dn = sysdb_autofsmap_dn(tmp_ctx, sysdb, group);
+ if (!group_dn) {
+ ret = ENOMEM;
+ goto done;
+ }
} else {
ret = EINVAL;
goto done;
@@ -2937,6 +2959,10 @@ errno_t sysdb_remove_attrs(struct sysdb_ctx *sysdb,
case SYSDB_MEMBER_SERVICE:
msg->dn = sysdb_svc_dn(sysdb, msg, sysdb->domain->name, name);
break;
+
+ case SYSDB_MEMBER_AUTOFSENTRY:
+ msg->dn = sysdb_autofsmap_dn(msg, sysdb, name);
+ break;
}
if (!msg->dn) {
ret = ENOMEM;