Rev 1306 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
package pt.estgp.estgweb.domain;
import java.util.List;
/**
* @author Jorge Machado
* @date 2/Mar/2008
* @time 10:56:46
* @see pt.estgp.estgweb.domain
*/
public abstract class OwnedDomainObject
extends DomainSerializableObject
implements IOwned
{
/**
* can be override in proper classes
* @return generic user owner of object
*/
public abstract GenericUser getOwner
();
/**
* can be override in proper classes
* @return List of Strings that correpond to owner roles of object
*/
public abstract List
<String
> getOwnerRoles
();
public boolean isOwnedBy
(GenericUser u
)
{
return isOwnedBy
(u,
false);
}
/**
* Check if this object is owned by this user or
* if this user is in group of owners or
* if user has some owner role
*
* @param u user to check
* @return true if user is owner
*/
public boolean isOwnedBy
(GenericUser u,
boolean transaction
)
{
if(u ==
null || getOwner
() ==
null && getOwnerRoles
() ==
null)
return false;
if(getOwner
() !=
null)
{
if(getOwner
() instanceof UserImpl
&& u
instanceof UserImpl
&& u.
getId() == getOwner
().
getId())
{
return true;
}
else if(getOwner
() instanceof UserImpl
&& u
instanceof GroupImpl
)
{
return false;
}
else if(getOwner
() instanceof GroupImpl
&& u
instanceof GroupImpl
&& getOwner
().
getId() == u.
getId())
{
return true;
}
else if(getOwner
() instanceof GroupImpl
&& u
instanceof UserImpl
)
{
if(((UserImpl
)u
).
hasGroup((1.5.0/docs/api/java/security/acl/Group.html">Group) getOwner
()))
return true;
}
}
if(getOwnerRoles
() !=
null)
{
if(u
instanceof GenericUserImpl
)
{
if(((GenericUserImpl
)u
).
hasRole(getOwnerRoles
()))
return true;
}
}
return false;
}
}