Rev 1051 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package ak.hostadmiral.core.model;
import ak.hostadmiral.util.ModelException;
import ak.hostadmiral.util.ModelSecurityException;
/**
*
* @hibernate.class table="systemusers"
*/
public class SystemUser
extends GeneralModelObject
{
/** user id in the OS */
private Integer uid;
private String name;
private User owner;
private SystemUser origin; // save original object state before any changes
protected SystemUser()
{
}
protected SystemUser(SystemUser origin)
{
super(origin);
this.uid = origin.uid;
this.name = origin.name;
this.owner = origin.owner;
}
protected SystemUser getOrigin()
{
return origin;
}
protected void backupMe()
{
if(origin == null)
origin = new SystemUser(this);
}
protected void resetOrigin()
{
origin = null;
}
/**
*
* @hibernate.property
*/
public Integer getUid()
{
return uid;
}
protected void setUid(Integer uid)
{
this.uid = uid;
}
public void setUid(User editor, Integer uid)
throws ModelException
{
if(!editableBy(editor))
throw new ModelSecurityException();
this.uid = uid;
}
/**
*
* @hibernate.property
*/
public String getName()
{
return name;
}
protected void setName(String name)
{
this.name = name;
}
public void setName(User editor, String name)
throws ModelException
{
if(!editableBy(editor))
throw new ModelSecurityException();
this.name = name;
}
/**
*
* @hibernate.many-to-one
*/
public User getOwner()
{
return owner;
}
protected void setOwner(User owner)
{
this.owner = owner;
}
public void setOwner(User editor, User owner)
throws ModelException
{
if(!editableBy(editor))
throw new ModelSecurityException();
this.owner = owner;
}
public String getTypeKey()
{
return ak.hostadmiral.core.resources.CoreResources.TYPE_SYSTEM_USER;
}
public String getIdentKey()
{
return ak.hostadmiral.core.resources.CoreResources.IDENT_SYSTEM_USER;
}
public Object[] getIdentParams()
{
return new Object[] { getName(), getUid() };
}
public boolean viewableBy(User user)
{
return user.isSuperuser() || (owner == null) || user.equals(owner);
}
public boolean editableBy(User user)
{
return user.isSuperuser();
}
public boolean deleteableBy(User user)
{
return user.isSuperuser();
}
protected static boolean allowedToCreate(SystemUserManager manager, User editor)
throws ModelException
{
return editor.isSuperuser();
}
protected static SystemUser createLimitedCopy(SystemUser origin)
{
SystemUser u = new SystemUser();
u.setUid(origin.getUid());
u.setName(origin.getName());
return u;
}
public String toString()
{
return "SystemUser id=[" + getId() + "] uid=[" + uid + "] name=[" + name + "]";
}
}