Author: rhafer
Date: Tue Sep 2 14:01:22 2008
New Revision: 50567
URL: http://svn.opensuse.org/viewcvs/yast?rev=50567&view=rev
Log:
Handle "unsupported" ACLs
Modified:
trunk/ldap-server/src/LdapDatabase.ycp
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=50567&r1=50566&r2=50567&view=diff
==============================================================================
--- trunk/ldap-server/src/LdapDatabase.ycp (original)
+++ trunk/ldap-server/src/LdapDatabase.ycp Tue Sep 2 14:01:22 2008
@@ -964,66 +964,85 @@
global boolean DbAclRead( integer dbindex, list<map> readAcls )
{
acllist = [];
- foreach( map acl, readAcls,
- {
- map targetMap = acl["target"]:$[];
- map resMap =$[];
- resMap["target"] = $[];
- resMap["access"] = [];
- if ( size(targetMap) == 0 )
- {
- resMap["target", "what"] = `dn_all;
- }
- else
+ if ( readAcls == nil )
+ {
+ y2milestone("Unparseable ACLs");
+ acllist = nil;
+ UI::ChangeWidget( `id(`tab_acl), `Enabled, false) ;
+ UI::ChangeWidget( `id(`pb_add), `Enabled, false) ;
+ UI::ChangeWidget( `id(`pb_del), `Enabled, false) ;
+ UI::ChangeWidget( `id(`pb_edit), `Enabled, false) ;
+ Popup::Error(_("The selected Database contains Access Control Rules that are currently
+not supported by this YaST Module. The Access Control Dialog will be disabled." ) );
+ }
+ else
+ {
+ foreach( map acl, readAcls,
{
- map dnMap = targetMap["dn"]:$[];
- if (size(dnMap) > 0)
- {
- if (dnMap["style"]:"" == "subtree" )
- {
- resMap["target", "what"] = `dn_subtree;
- }
- else if (dnMap["style"]:"" == "base" )
+ map targetMap = acl["target"]:$[];
+ map resMap =$[];
+ resMap["target"] = $[];
+ resMap["access"] = [];
+ 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"]:"";
+ }
+ list<map> accessList = [];
+ foreach( map access, acl["access"]:[],
{
- resMap["target", "what"] = `dn_base;
+ map