summaryrefslogtreecommitdiffstats
path: root/src/db
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2010-05-06 10:09:41 -0400
committerStephen Gallagher <sgallagh@redhat.com>2010-05-16 13:28:43 -0400
commitfa26de3b1a8993a1c5a4b071851e5e5ff7ec2ce6 (patch)
tree7ce1399b2df00674a166ab1d6e387368667a6c70 /src/db
parent67421f2d62ceffb070070245a436bc46252b9420 (diff)
downloadsssd-fa26de3b1a8993a1c5a4b071851e5e5ff7ec2ce6.tar.gz
sssd-fa26de3b1a8993a1c5a4b071851e5e5ff7ec2ce6.tar.xz
sssd-fa26de3b1a8993a1c5a4b071851e5e5ff7ec2ce6.zip
Add ldap_access_filter option
This option (applicable to access_provider=ldap) allows the admin to set an additional LDAP search filter that must match in order for a user to be granted access to the system. Common examples for this would be limiting access to users by in a particular group, for example: ldap_access_filter = memberOf=cn=access_group,ou=Groups,dc=example,dc=com
Diffstat (limited to 'src/db')
-rw-r--r--src/db/sysdb.c10
-rw-r--r--src/db/sysdb.h2
2 files changed, 12 insertions, 0 deletions
diff --git a/src/db/sysdb.c b/src/db/sysdb.c
index 815f53d25..21e69c04a 100644
--- a/src/db/sysdb.c
+++ b/src/db/sysdb.c
@@ -176,6 +176,16 @@ int sysdb_attrs_add_string(struct sysdb_attrs *attrs,
return sysdb_attrs_add_val(attrs, name, &v);
}
+int sysdb_attrs_add_bool(struct sysdb_attrs *attrs,
+ const char *name, bool value)
+{
+ if(value) {
+ return sysdb_attrs_add_string(attrs, name, "TRUE");
+ }
+
+ return sysdb_attrs_add_string(attrs, name, "FALSE");
+}
+
int sysdb_attrs_steal_string(struct sysdb_attrs *attrs,
const char *name, char *str)
{
diff --git a/src/db/sysdb.h b/src/db/sysdb.h
index d6780c365..fcdb90e69 100644
--- a/src/db/sysdb.h
+++ b/src/db/sysdb.h
@@ -162,6 +162,8 @@ int sysdb_attrs_add_val(struct sysdb_attrs *attrs,
const char *name, const struct ldb_val *val);
int sysdb_attrs_add_string(struct sysdb_attrs *attrs,
const char *name, const char *str);
+int sysdb_attrs_add_bool(struct sysdb_attrs *attrs,
+ const char *name, bool value);
int sysdb_attrs_add_long(struct sysdb_attrs *attrs,
const char *name, long value);
int sysdb_attrs_add_uint32(struct sysdb_attrs *attrs,