package com.sequenceiq.cloudbreak.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import org.hibernate.annotations.Type;
@Entity
@Table(name = "ldapconfig", uniqueConstraints = {
@UniqueConstraint(columnNames = {"account", "name"})
})
@NamedQueries({
@NamedQuery(
name = "LdapConfig.findForUser",
query = "SELECT c FROM LdapConfig c "
+ "WHERE c.owner= :owner"),
@NamedQuery(
name = "LdapConfig.findPublicInAccountForUser",
query = "SELECT c FROM LdapConfig c "
+ "WHERE (c.account= :account AND c.publicInAccount= true) "
+ "OR c.owner= :owner"),
@NamedQuery(
name = "LdapConfig.findAllInAccount",
query = "SELECT c FROM LdapConfig c "
+ "WHERE c.account= :account "),
@NamedQuery(
name = "LdapConfig.findByNameForUser",
query = "SELECT c FROM LdapConfig c "
+ "WHERE c.name= :name and c.owner= :owner "),
@NamedQuery(
name = "LdapConfig.findByNameInAccount",
query = "SELECT c FROM LdapConfig c WHERE c.name= :name and c.account= :account")
})
public class LdapConfig implements ProvisionEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "ldapconfig_generator")
@SequenceGenerator(name = "ldapconfig_generator", sequenceName = "ldapconfig_id_seq", allocationSize = 1)
private Long id;
@Column(nullable = false)
private String name;
@Column(length = 1000000, columnDefinition = "TEXT")
private String description;
@Column(nullable = false)
private String account;
@Column(nullable = false)
private String owner;
@Column(nullable = false)
private boolean publicInAccount;
@Column(nullable = false)
private String serverHost;
@Column(nullable = false)
private Integer serverPort;
@Column(nullable = false)
private String protocol;
@Column(nullable = false)
private String bindDn;
@Type(type = "encrypted_string")
@Column(nullable = false)
private String bindPassword;
@Column(nullable = false)
private String userSearchBase;
private String userSearchFilter;
private String userSearchAttribute;
private String groupSearchBase;
private String groupSearchFilter;
private String principalRegex;
private String domain;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public boolean isPublicInAccount() {
return publicInAccount;
}
public void setPublicInAccount(boolean publicInAccount) {
this.publicInAccount = publicInAccount;
}
public String getServerHost() {
return serverHost;
}
public void setServerHost(String serverHost) {
this.serverHost = serverHost;
}
public Integer getServerPort() {
return serverPort;
}
public void setServerPort(Integer serverPort) {
this.serverPort = serverPort;
}
public String getProtocol() {
return protocol;
}
public void setProtocol(String protocol) {
this.protocol = protocol;
}
public String getBindDn() {
return bindDn;
}
public void setBindDn(String bindDn) {
this.bindDn = bindDn;
}
public String getBindPassword() {
return bindPassword;
}
public void setBindPassword(String bindPassword) {
this.bindPassword = bindPassword;
}
public String getUserSearchBase() {
return userSearchBase;
}
public void setUserSearchBase(String userSearchBase) {
this.userSearchBase = userSearchBase;
}
public String getUserSearchFilter() {
return userSearchFilter;
}
public void setUserSearchFilter(String userSearchFilter) {
this.userSearchFilter = userSearchFilter;
}
public String getGroupSearchBase() {
return groupSearchBase;
}
public void setGroupSearchBase(String groupSearchBase) {
this.groupSearchBase = groupSearchBase;
}
public String getGroupSearchFilter() {
return groupSearchFilter;
}
public void setGroupSearchFilter(String groupSearchFilter) {
this.groupSearchFilter = groupSearchFilter;
}
public String getPrincipalRegex() {
return principalRegex;
}
public void setPrincipalRegex(String principalRegex) {
this.principalRegex = principalRegex;
}
public String getUserSearchAttribute() {
return userSearchAttribute;
}
public void setUserSearchAttribute(String userSearchAttribute) {
this.userSearchAttribute = userSearchAttribute;
}
public String getDomain() {
return domain;
}
public void setDomain(String domain) {
this.domain = domain;
}
}