Author: rhafer
Date: Fri Aug 22 11:55:47 2008
New Revision: 50323
URL: http://svn.opensuse.org/viewcvs/yast?rev=50323&view=rev
Log:
simple write support for ACLs in Agent
Modified:
trunk/ldap-server/src/agent/SlapdConfigAgent.cc
Modified: trunk/ldap-server/src/agent/SlapdConfigAgent.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ldap-server/src/agent/SlapdConfigAgent.cc?rev=50323&r1=50322&r2=50323&view=diff
==============================================================================
--- trunk/ldap-server/src/agent/SlapdConfigAgent.cc (original)
+++ trunk/ldap-server/src/agent/SlapdConfigAgent.cc Fri Aug 22 11:55:47 2008
@@ -1130,6 +1130,67 @@
(*i)->addAccessControl(arg->asString()->value_cstr());
ret = true;
}
+ else if ( dbComponent == "acl" )
+ {
+ YCPList argList = arg->asList();
+ StringList aclStrings;
+ for ( int j = 0; j < argList->size(); j++ )
+ {
+ std::ostringstream aclString;
+ aclString << "to";
+ // create the "to dn.<scope>=<dn> ...." part of the ACL
+ YCPMap target = argList->value(j)->asMap()->value(YCPString("target"))->asMap();
+ if (target.size() == 0 )
+ {
+ aclString << " *";
+ }
+ else
+ {
+ if (! target->value( YCPString("dn") ).isNull() )
+ {
+ aclString << " dn."
+ << target->value( YCPString("dn") )->asMap()->value( YCPString("style") )->asString()->value_cstr()
+ << "=";
+
+ aclString << "\""
+ << target->value( YCPString("dn") )->asMap()->value( YCPString("value") )->asString()->value_cstr()
+ << "\"";
+ }
+ if (! target->value( YCPString("filter") ).isNull() )
+ {
+ aclString << " filter=\""
+ << target->value( YCPString("filter") )->asString()->value_cstr()
+ << "\"";
+
+ }
+ if (! target->value( YCPString("attrs") ).isNull() )
+ {
+ aclString << " attrs="
+ << target->value( YCPString("attrs") )->asString()->value_cstr();
+ }
+ }
+
+ // now the " by <xyz>