org.sonar.db.user.UserDto Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sonar-db Show documentation
Show all versions of sonar-db Show documentation
Create and request SonarQube schema
/*
* SonarQube
* Copyright (C) 2009-2016 SonarSource SA
* mailto:contact AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package org.sonar.db.user;
import com.google.common.base.Splitter;
import com.google.common.collect.Lists;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.apache.commons.lang.StringUtils;
import org.sonar.core.user.DefaultUser;
/**
* @since 3.2
*/
public class UserDto {
public static final char SCM_ACCOUNTS_SEPARATOR = '\n';
private Long id;
private String login;
private String name;
private String email;
private boolean active = true;
private String scmAccounts;
private String externalIdentity;
private String externalIdentityProvider;
private String cryptedPassword;
private String salt;
private String rememberToken;
private Date rememberTokenExpiresAt;
private Long createdAt;
private Long updatedAt;
private boolean local = true;
public Long getId() {
return id;
}
public UserDto setId(Long id) {
this.id = id;
return this;
}
/**
* Spaces were authorized before SQ 5.4.
* For versions 5.4+ it's not possible to create a login with a space character.
*/
public String getLogin() {
return login;
}
public UserDto setLogin(String login) {
this.login = login;
return this;
}
public String getName() {
return name;
}
public UserDto setName(String name) {
this.name = name;
return this;
}
@CheckForNull
public String getEmail() {
return email;
}
public UserDto setEmail(@Nullable String email) {
this.email = email;
return this;
}
public boolean isActive() {
return active;
}
public UserDto setActive(boolean b) {
this.active = b;
return this;
}
@CheckForNull
public String getScmAccounts() {
return scmAccounts;
}
public List getScmAccountsAsList() {
return decodeScmAccounts(scmAccounts);
}
/**
* List of SCM accounts separated by '|'
*/
public UserDto setScmAccounts(@Nullable String s) {
this.scmAccounts = s;
return this;
}
public UserDto setScmAccounts(@Nullable List list) {
this.scmAccounts = encodeScmAccounts(list);
return this;
}
@CheckForNull
public static String encodeScmAccounts(@Nullable List scmAccounts) {
if (scmAccounts != null && !scmAccounts.isEmpty()) {
return String.format("%s%s%s", SCM_ACCOUNTS_SEPARATOR, StringUtils.join(scmAccounts, SCM_ACCOUNTS_SEPARATOR), SCM_ACCOUNTS_SEPARATOR);
}
return null;
}
public static List decodeScmAccounts(@Nullable String dbValue) {
if (dbValue == null) {
return new ArrayList<>();
} else {
return Lists.newArrayList(Splitter.on(SCM_ACCOUNTS_SEPARATOR).omitEmptyStrings().split(dbValue));
}
}
public String getExternalIdentity() {
return externalIdentity;
}
public UserDto setExternalIdentity(String authorithy) {
this.externalIdentity = authorithy;
return this;
}
public String getExternalIdentityProvider() {
return externalIdentityProvider;
}
public UserDto setExternalIdentityProvider(String externalIdentityProvider) {
this.externalIdentityProvider = externalIdentityProvider;
return this;
}
public boolean isLocal() {
return local;
}
public UserDto setLocal(boolean local) {
this.local = local;
return this;
}
public String getCryptedPassword() {
return cryptedPassword;
}
public UserDto setCryptedPassword(String cryptedPassword) {
this.cryptedPassword = cryptedPassword;
return this;
}
public String getSalt() {
return salt;
}
public UserDto setSalt(String salt) {
this.salt = salt;
return this;
}
public String getRememberToken() {
return rememberToken;
}
public UserDto setRememberToken(String rememberToken) {
this.rememberToken = rememberToken;
return this;
}
public Date getRememberTokenExpiresAt() {
return rememberTokenExpiresAt;
}
public UserDto setRememberTokenExpiresAt(Date rememberTokenExpiresAt) {
this.rememberTokenExpiresAt = rememberTokenExpiresAt;
return this;
}
public Long getCreatedAt() {
return createdAt;
}
public UserDto setCreatedAt(Long createdAt) {
this.createdAt = createdAt;
return this;
}
public Long getUpdatedAt() {
return updatedAt;
}
public UserDto setUpdatedAt(Long updatedAt) {
this.updatedAt = updatedAt;
return this;
}
public DefaultUser toUser() {
return new DefaultUser()
.setLogin(login)
.setName(name)
.setEmail(email)
.setActive(active);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy