Added ACLs to Attributes. Can't do much with them yet, but the column is in place.

Fixed failing AttrQueryTest.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5528 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Britt Park 2007-04-23 19:44:31 +00:00
parent 3322e78a09
commit e9b75a288b
5 changed files with 62 additions and 3 deletions

View File

@ -67,8 +67,8 @@ public class AttrQueryTest extends TestCase
System.out.println(fHelper.getParameters());
assertEquals("((me.key > :name0 and me.key < :name1) or (not me.key like :name2))",
predicate);
assertEquals("cat", fHelper.getParameters().get(":name0"));
assertEquals("hat", fHelper.getParameters().get(":name1"));
assertEquals("fur%", fHelper.getParameters().get(":name2"));
assertEquals("cat", fHelper.getParameters().get("name0"));
assertEquals("hat", fHelper.getParameters().get("name1"));
assertEquals("fur%", fHelper.getParameters().get("name2"));
}
}

View File

@ -30,6 +30,8 @@ import java.util.Collection;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.domain.DbAccessControlList;
/**
* Interface for polymorphic attributes.
* @author britt
@ -50,6 +52,18 @@ public interface Attribute extends Serializable
MAP
};
/**
* Set the ACL on this Attribute.
* @param acl The ACL.
*/
public void setAcl(DbAccessControlList acl);
/**
* Get the (possibly null ACL) on this Attribute.
* @return The ACL or null.
*/
public DbAccessControlList getAcl();
/**
* Get the value type for this node.
* @return

View File

@ -30,6 +30,8 @@ import java.util.Collection;
import java.util.Set;
import java.util.Map.Entry;
import org.alfresco.repo.domain.DbAccessControlList;
/**
* The base class of the implementation of Values.
* @author britt
@ -46,6 +48,11 @@ public abstract class AttributeImpl implements Attribute
*/
private long fVersion;
/**
* ACL for this Attribute.
*/
private DbAccessControlList fACL;
/**
* Base constructor.
*/
@ -314,4 +321,20 @@ public abstract class AttributeImpl implements Attribute
{
return (int)fID;
}
/* (non-Javadoc)
* @see org.alfresco.repo.attributes.Attribute#getAcl()
*/
public DbAccessControlList getAcl()
{
return fACL;
}
/* (non-Javadoc)
* @see org.alfresco.repo.attributes.Attribute#setAcl(org.alfresco.repo.domain.DbAccessControlList)
*/
public void setAcl(DbAccessControlList acl)
{
fACL = acl;
}
}

View File

@ -30,6 +30,8 @@ import java.util.Collection;
import java.util.Set;
import java.util.Map.Entry;
import org.alfresco.repo.domain.DbAccessControlList;
/**
* Value based non-persistent implementation of Attribute.
* @author britt
@ -251,4 +253,22 @@ public abstract class AttributeValue implements Attribute
{
throw new AttributeMethodNotImplemented("Not a map.");
}
// I'm not sure if ACLs are serializable. So for now the following two
// methods are noops.
/* (non-Javadoc)
* @see org.alfresco.repo.attributes.Attribute#getAcl()
*/
public DbAccessControlList getAcl()
{
return null;
}
/* (non-Javadoc)
* @see org.alfresco.repo.attributes.Attribute#setAcl(org.alfresco.repo.domain.DbAccessControlList)
*/
public void setAcl(DbAccessControlList acl)
{
// Do Nothing.
}
}

View File

@ -14,6 +14,8 @@
</id>
<discriminator column="type" type="string" length="1"/>
<version column="version" name="version" type="long"/>
<many-to-one name="acl" column="acl_id" foreign-key="fk_attributes_n_acl"
class="org.alfresco.repo.domain.hibernate.DbAccessControlListImpl"/>
<!-- A boolean valued attribute -->
<subclass name="BooleanAttributeImpl" proxy="BooleanAttribute" lazy="true"
discriminator-value="O">