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()); System.out.println(fHelper.getParameters());
assertEquals("((me.key > :name0 and me.key < :name1) or (not me.key like :name2))", assertEquals("((me.key > :name0 and me.key < :name1) or (not me.key like :name2))",
predicate); predicate);
assertEquals("cat", fHelper.getParameters().get(":name0")); assertEquals("cat", fHelper.getParameters().get("name0"));
assertEquals("hat", fHelper.getParameters().get(":name1")); assertEquals("hat", fHelper.getParameters().get("name1"));
assertEquals("fur%", fHelper.getParameters().get(":name2")); assertEquals("fur%", fHelper.getParameters().get("name2"));
} }
} }

View File

@ -30,6 +30,8 @@ import java.util.Collection;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.alfresco.repo.domain.DbAccessControlList;
/** /**
* Interface for polymorphic attributes. * Interface for polymorphic attributes.
* @author britt * @author britt
@ -50,6 +52,18 @@ public interface Attribute extends Serializable
MAP 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. * Get the value type for this node.
* @return * @return

View File

@ -30,6 +30,8 @@ import java.util.Collection;
import java.util.Set; import java.util.Set;
import java.util.Map.Entry; import java.util.Map.Entry;
import org.alfresco.repo.domain.DbAccessControlList;
/** /**
* The base class of the implementation of Values. * The base class of the implementation of Values.
* @author britt * @author britt
@ -46,6 +48,11 @@ public abstract class AttributeImpl implements Attribute
*/ */
private long fVersion; private long fVersion;
/**
* ACL for this Attribute.
*/
private DbAccessControlList fACL;
/** /**
* Base constructor. * Base constructor.
*/ */
@ -314,4 +321,20 @@ public abstract class AttributeImpl implements Attribute
{ {
return (int)fID; 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.Set;
import java.util.Map.Entry; import java.util.Map.Entry;
import org.alfresco.repo.domain.DbAccessControlList;
/** /**
* Value based non-persistent implementation of Attribute. * Value based non-persistent implementation of Attribute.
* @author britt * @author britt
@ -251,4 +253,22 @@ public abstract class AttributeValue implements Attribute
{ {
throw new AttributeMethodNotImplemented("Not a map."); 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> </id>
<discriminator column="type" type="string" length="1"/> <discriminator column="type" type="string" length="1"/>
<version column="version" name="version" type="long"/> <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 --> <!-- A boolean valued attribute -->
<subclass name="BooleanAttributeImpl" proxy="BooleanAttribute" lazy="true" <subclass name="BooleanAttributeImpl" proxy="BooleanAttribute" lazy="true"
discriminator-value="O"> discriminator-value="O">