Author: rhafer Date: Tue Sep 2 10:33:06 2008 New Revision: 50550 URL: http://svn.opensuse.org/viewcvs/yast?rev=50550&view=rev Log: handle AccessList return from libslapdconfig Modified: trunk/ldap-server/src/LdapDatabase.ycp trunk/ldap-server/src/agent/SlapdConfigAgent.cc trunk/ldap-server/src/tree_structure.ycp Modified: trunk/ldap-server/src/LdapDatabase.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/ldap-server/src/LdapDatabase.ycp?rev=50550&r1=50549&r2=50550&view=diff ============================================================================== --- trunk/ldap-server/src/LdapDatabase.ycp (original) +++ trunk/ldap-server/src/LdapDatabase.ycp Tue Sep 2 10:33:06 2008 @@ -942,9 +942,52 @@ } - global boolean DbAclRead( integer dbindex ) + global boolean DbAclRead( integer dbindex, list<map> readAcls ) { acllist = []; + foreach( map acl, readAcls, + { + map targetMap = acl["target"]:$[]; + map resMap =$[]; + resMap["target"] = $[]; + if ( size(targetMap) == 0 ) + { + resMap["target", "what"] = `dn_all; + } + else + { + map dnMap = targetMap["dn"]:$[]; + if (size(dnMap) > 0) + { + if (dnMap["style"]:"" == "subtree" ) + { + resMap["target", "what"] = `dn_subtree; + } + else if (dnMap["style"]:"" == "base" ) + { + resMap["target", "what"] = `dn_base; + } + resMap["target", "dn"] = dnMap["value"]:""; + } + resMap["target", "filter"] = targetMap["filter"]:""; + resMap["target", "attrs"] = targetMap["attrs"]:""; + } + acllist = add( acllist, resMap ); + } + ); + integer pos = -1; + list itemlist = maplist (map v, acllist, + { + pos=pos+1; + return `item( `id(pos), + whatId2String[v["target","what"]:`none,0]:"", + v["target","dn"]:"", + v["target","filter"]:"", + v["target","attrs"]:"All Attributes" + ); + } + ); + UI::ChangeWidget( `tab_acl, `Items, itemlist) ; return true; } Modified: trunk/ldap-server/src/agent/SlapdConfigAgent.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/ldap-server/src/agent/SlapdConfigAgent.cc?rev=50550&r1=50549&r2=50550&view=diff ============================================================================== --- trunk/ldap-server/src/agent/SlapdConfigAgent.cc (original) +++ trunk/ldap-server/src/agent/SlapdConfigAgent.cc Tue Sep 2 10:33:06 2008 @@ -619,8 +619,51 @@ } else if ( dbComponent == "acl" ) { - (*i)->getAcl(); - return resMap; + YCPList resList; + OlcAccessList aclList = (*i)->getAcl(); + OlcAccessList::const_iterator j; + for ( j = aclList.begin(); j != aclList.end(); j++ ) + { + YCPMap aclMap; + YCPMap targetMap; + YCPMap accessMap; + if ( (*j)->matchesAll() ) + { + } + else + { + std::string filter = (*j)->getFilter(); + if (filter != "" ) + { + targetMap.add( YCPString("filter"), YCPString(filter) ); + } + std::string attrs = (*j)->getAttributes(); + if (attrs != "" ) + { + targetMap.add( YCPString("attrs"), YCPString(attrs) ); + } + std::string dn_value = (*j)->getDnValue(); + if ( dn_value != "" ) + { + YCPMap dnMap; + std::string dn_type = (*j)->getDnType(); + if (dn_type == "dn.subtree" ) + { + dnMap.add(YCPString("style"), YCPString("subtree") ); + } + else + { + dnMap.add(YCPString("style"), YCPString("base") ); + } + dnMap.add(YCPString("value"), YCPString(dn_value) ); + targetMap.add( YCPString("dn"), dnMap ); + } + } + aclMap.add( YCPString("target"), targetMap ); + aclMap.add( YCPString("access"), accessMap ); + resList.add(aclMap); + } + return resList; } else { Modified: trunk/ldap-server/src/tree_structure.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/ldap-server/src/tree_structure.ycp?rev=50550&r1=50549&r2=50550&view=diff ============================================================================== --- trunk/ldap-server/src/tree_structure.ycp (original) +++ trunk/ldap-server/src/tree_structure.ycp Tue Sep 2 10:33:06 2008 @@ -754,7 +754,7 @@ string treeItem = current_tree_item; integer index = (integer)widget_map[current_tree_item,"index"]:nil; list<map> acllist = LdapServer::ReadDatabaseAcl( index ); - return LdapDatabase::DbAclRead( index ); + return LdapDatabase::DbAclRead( index, acllist ); } define boolean cb_input_acl() -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org