package com.intrbiz.bergamot.model;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
import com.intrbiz.bergamot.data.BergamotDB;
import com.intrbiz.data.db.compiler.meta.Action;
import com.intrbiz.data.db.compiler.meta.SQLColumn;
import com.intrbiz.data.db.compiler.meta.SQLForeignKey;
import com.intrbiz.data.db.compiler.meta.SQLPrimaryKey;
import com.intrbiz.data.db.compiler.meta.SQLTable;
import com.intrbiz.data.db.compiler.meta.SQLVersion;
@SQLTable(schema = BergamotDB.class, name = "access_control", since = @SQLVersion({ 3, 8, 0 }))
public class AccessControl implements Serializable
{
private static final long serialVersionUID = 1L;
@SQLColumn(index = 1, name = "security_domain_id", since = @SQLVersion({ 3, 8, 0 }))
@SQLForeignKey(references = SecurityDomain.class, on = "id", onDelete = Action.CASCADE, onUpdate = Action.RESTRICT, since = @SQLVersion({ 3, 8, 0 }))
@SQLPrimaryKey
private UUID securityDomainId;
/**
* The role (contact or team) this access control grants or revokes on
*/
@SQLColumn(index = 2, name = "role_id", since = @SQLVersion({ 3, 8, 0 }))
@SQLPrimaryKey
private UUID roleId;
@SQLColumn(index = 7, name = "granted_permissions", type = "TEXT[]", since = @SQLVersion({ 3, 8, 0 }))
private List<String> grantedPermissions = new LinkedList<String>();
@SQLColumn(index = 8, name = "revoked_permissions", type = "TEXT[]", since = @SQLVersion({ 3, 8, 0 }))
private List<String> revokedPermissions = new LinkedList<String>();
public AccessControl()
{
super();
}
public AccessControl(UUID securityDomainId, UUID roleId, List<String> grantedPermissions, List<String> revokedPermissions)
{
this.securityDomainId = securityDomainId;
this.roleId = roleId;
this.grantedPermissions = grantedPermissions;
this.revokedPermissions = revokedPermissions;
}
public UUID getSecurityDomainId()
{
return securityDomainId;
}
public void setSecurityDomainId(UUID securityDomainId)
{
this.securityDomainId = securityDomainId;
}
public UUID getRoleId()
{
return roleId;
}
public void setRoleId(UUID roleId)
{
this.roleId = roleId;
}
public List<String> getGrantedPermissions()
{
return grantedPermissions;
}
public void setGrantedPermissions(List<String> grantedPermissions)
{
this.grantedPermissions = grantedPermissions;
}
public List<String> getRevokedPermissions()
{
return revokedPermissions;
}
public void setRevokedPermissions(List<String> revokedPermissions)
{
this.revokedPermissions = revokedPermissions;
}
}