Changeset 528

Show
Ignore:
Timestamp:
06/03/06 17:57:32
Author:
douglm
Message:

Fixes to merging of Acls

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/calendar3/access/src/edu/rpi/cct/uwcal/access/Acl.java

    r490 r528  
    483483   */ 
    484484  public void merge(char[] val) throws AccessException { 
    485     setEncoded(val); 
    486  
    487     if (empty()) { 
     485    EncodedAcl ea = new EncodedAcl(); 
     486    ea.setEncoded(val); 
     487 
     488    if (ea.empty()) { 
    488489      return; 
    489490    } 
    490491 
    491     while (hasMore()) { 
     492    while (ea.hasMore()) { 
    492493      Ace ace = new Ace(); 
    493494 
    494       ace.decode(this, true); 
     495      ace.decode(ea, true); 
    495496      ace.setInherited(true); 
    496497 
  • trunk/calendar3/calCore/src/org/bedework/calcore/hibernate/AccessUtil.java

    r484 r528  
    390390 
    391391      String entAccess = ent.getAccess(); 
     392      /* 
    392393      if (entAccess == null) { 
    393394        // Nomerge needed 
    394395        return aclChars; 
    395396      } 
     397      */ 
    396398 
    397399      try { 
    398400        Acl acl = new Acl(); 
    399         acl.decode(aclChars); 
    400         acl.merge(entAccess.toCharArray()); 
    401  
    402         return acl.getEncoded(); 
     401        if (entAccess != null) { 
     402          acl.decode(entAccess.toCharArray()); 
     403        } 
     404        acl.merge(aclChars); 
     405 
     406        return acl.encodeAll(); 
    403407      } catch (Throwable t) { 
    404408        throw new CalFacadeException(t); 
     
    443447    try { 
    444448      Acl acl = new Acl(); 
    445       acl.decode(aclString.toCharArray()); 
    446       acl.merge(entAccess.toCharArray()); 
     449      acl.decode(entAccess.toCharArray()); 
     450      acl.merge(aclString.toCharArray()); 
    447451 
    448452      return acl.getEncoded();