mirror of
https://github.com/theonedev/onedev.git
synced 2025-12-08 18:26:30 +00:00
Associate user belongings with unknown account when user is deleted
This commit is contained in:
parent
4bc51d9a09
commit
184409f558
@ -53,8 +53,6 @@ import io.onedev.server.util.schedule.TaskScheduler;
|
||||
|
||||
public class OneDev extends AbstractPlugin implements Serializable {
|
||||
|
||||
public static final String NAME = "OneDev";
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(OneDev.class);
|
||||
|
||||
private final Provider<JettyLauncher> jettyLauncherProvider;
|
||||
|
||||
@ -822,7 +822,6 @@ public class DefaultJobManager implements JobManager, Runnable, CodePullAuthoriz
|
||||
build.setSubmitter(SecurityUtils.getUser());
|
||||
build.setSubmitReason(reason);
|
||||
build.setCanceller(null);
|
||||
build.setCancellerName(null);
|
||||
|
||||
buildParamManager.deleteParams(build);
|
||||
for (Map.Entry<String, List<String>> entry: paramMap.entrySet()) {
|
||||
|
||||
@ -47,6 +47,14 @@ public interface UserManager extends EntityManager<User> {
|
||||
*/
|
||||
User getSystem();
|
||||
|
||||
/**
|
||||
* Find unknown user in the system.
|
||||
*
|
||||
* @return
|
||||
* unknown user. Never be <tt>null</tt>
|
||||
*/
|
||||
User getUnknown();
|
||||
|
||||
/**
|
||||
* Find user of specified name.
|
||||
* <p>
|
||||
|
||||
@ -58,7 +58,6 @@ import io.onedev.commons.launcher.loader.ListenerRegistry;
|
||||
import io.onedev.commons.utils.ExceptionUtils;
|
||||
import io.onedev.commons.utils.ExplicitException;
|
||||
import io.onedev.commons.utils.LockUtils;
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.entitymanager.BuildManager;
|
||||
import io.onedev.server.entitymanager.ProjectManager;
|
||||
import io.onedev.server.entitymanager.PullRequestAssignmentManager;
|
||||
@ -318,7 +317,7 @@ public class DefaultPullRequestManager extends BaseEntityManager<PullRequest> im
|
||||
mergeCommit = targetHeadCommit;
|
||||
for (RevCommit commit: commits) {
|
||||
PersonIdent committer = commit.getCommitterIdent();
|
||||
if (committer.getName().equals(OneDev.NAME) && committer.getEmailAddress().length() == 0
|
||||
if (committer.getName().equals(User.SYSTEM_NAME) && committer.getEmailAddress().length() == 0
|
||||
|| !commit.getParent(0).equals(mergeCommit)) {
|
||||
CommitBuilder commitBuilder = new CommitBuilder();
|
||||
commitBuilder.setAuthor(commit.getAuthorIdent());
|
||||
|
||||
@ -156,6 +156,12 @@ public class DefaultUserManager extends BaseEntityManager<User> implements UserM
|
||||
return load(User.SYSTEM_ID);
|
||||
}
|
||||
|
||||
@Sessional
|
||||
@Override
|
||||
public User getUnknown() {
|
||||
return load(User.UNKNOWN_ID);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void delete(User user) {
|
||||
@ -181,82 +187,74 @@ public class DefaultUserManager extends BaseEntityManager<User> implements UserM
|
||||
|
||||
usage.checkInUse("User '" + user.getName() + "'");
|
||||
|
||||
Query<?> query = getSession().createQuery("update PullRequest set submitter=null, submitterName=:submitterName "
|
||||
+ "where submitter=:submitter");
|
||||
Query<?> query = getSession().createQuery("update PullRequest set submitter=:unknown where submitter=:submitter");
|
||||
query.setParameter("submitter", user);
|
||||
query.setParameter("submitterName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
query = getSession().createQuery("update Build set submitter=null, submitterName=:submitterName "
|
||||
+ "where submitter=:submitter");
|
||||
query = getSession().createQuery("update Build set submitter=:unknown where submitter=:submitter");
|
||||
query.setParameter("submitter", user);
|
||||
query.setParameter("submitterName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
query = getSession().createQuery("update Build set canceller=null, cancellerName=:cancellerName "
|
||||
+ "where canceller=:canceller");
|
||||
query = getSession().createQuery("update Build set canceller=:unknown where canceller=:canceller");
|
||||
query.setParameter("canceller", user);
|
||||
query.setParameter("cancellerName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
query = getSession().createQuery("update PullRequest set closeInfo.user=null, "
|
||||
+ "closeInfo.userName=:userName where closeInfo.user=:user");
|
||||
query = getSession().createQuery("update PullRequest set closeInfo.user=:unknown where closeInfo.user=:user");
|
||||
query.setParameter("user", user);
|
||||
query.setParameter("userName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
query = getSession().createQuery("update PullRequest set lastUpdate.user=null, "
|
||||
+ "lastUpdate.userName=:userName where lastUpdate.user=:user");
|
||||
query = getSession().createQuery("update PullRequest set lastUpdate.user=:unknown where lastUpdate.user=:user");
|
||||
query.setParameter("user", user);
|
||||
query.setParameter("userName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
query = getSession().createQuery("update PullRequestChange set user=null, userName=:userName where user=:user");
|
||||
query = getSession().createQuery("update PullRequestChange set user=:unknown where user=:user");
|
||||
query.setParameter("user", user);
|
||||
query.setParameter("userName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
query = getSession().createQuery("update PullRequestComment set user=null, userName=:userName where user=:user");
|
||||
query = getSession().createQuery("update PullRequestComment set user=:unknown where user=:user");
|
||||
query.setParameter("user", user);
|
||||
query.setParameter("userName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
query = getSession().createQuery("update CodeComment set user=null, userName=:userName where user=:user");
|
||||
query = getSession().createQuery("update CodeComment set user=:unknown where user=:user");
|
||||
query.setParameter("user", user);
|
||||
query.setParameter("userName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
query = getSession().createQuery("update CodeComment set lastUpdate.user=null, lastUpdate.userName=:userName "
|
||||
+ "where lastUpdate.user=:user");
|
||||
query = getSession().createQuery("update CodeComment set lastUpdate.user=:unknown where lastUpdate.user=:user");
|
||||
query.setParameter("user", user);
|
||||
query.setParameter("userName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
query = getSession().createQuery("update CodeCommentReply set user=null, userName=:userName where user=:user");
|
||||
query = getSession().createQuery("update CodeCommentReply set user=:unknown where user=:user");
|
||||
query.setParameter("user", user);
|
||||
query.setParameter("userName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
query = getSession().createQuery("update Issue set submitter=null, submitterName=:submitterName "
|
||||
+ "where submitter=:submitter");
|
||||
query = getSession().createQuery("update Issue set submitter=:unknown where submitter=:submitter");
|
||||
query.setParameter("submitter", user);
|
||||
query.setParameter("submitterName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
query = getSession().createQuery("update Issue set lastUpdate.user=null, lastUpdate.userName=:userName "
|
||||
+ "where lastUpdate.user=:user");
|
||||
query = getSession().createQuery("update Issue set lastUpdate.user=:unknown where lastUpdate.user=:user");
|
||||
query.setParameter("user", user);
|
||||
query.setParameter("userName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
query = getSession().createQuery("update IssueComment set user=null, userName=:userName where user=:user");
|
||||
query = getSession().createQuery("update IssueComment set user=:unknown where user=:user");
|
||||
query.setParameter("user", user);
|
||||
query.setParameter("userName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
query = getSession().createQuery("update IssueChange set user=null, userName=:userName where user=:user");
|
||||
query = getSession().createQuery("update IssueChange set user=:unknown where user=:user");
|
||||
query.setParameter("user", user);
|
||||
query.setParameter("userName", user.getDisplayName());
|
||||
query.setParameter("unknown", getUnknown());
|
||||
query.executeUpdate();
|
||||
|
||||
dao.remove(user);
|
||||
@ -307,7 +305,7 @@ public class DefaultUserManager extends BaseEntityManager<User> implements UserM
|
||||
@Override
|
||||
public List<User> query() {
|
||||
EntityCriteria<User> criteria = newCriteria();
|
||||
criteria.add(Restrictions.not(Restrictions.eq("id", User.SYSTEM_ID)));
|
||||
criteria.add(Restrictions.gt("id", 0L));
|
||||
criteria.setCacheable(true);
|
||||
return query(criteria);
|
||||
}
|
||||
|
||||
@ -106,11 +106,20 @@ public class DefaultDataManager implements DataManager, Serializable {
|
||||
if (system == null) {
|
||||
system = new User();
|
||||
system.setId(User.SYSTEM_ID);
|
||||
system.setName(OneDev.NAME);
|
||||
system.setEmail("no email");
|
||||
system.setName(User.SYSTEM_NAME);
|
||||
system.setEmail("system email");
|
||||
system.setPassword("no password");
|
||||
userManager.replicate(system);
|
||||
}
|
||||
User unknown = userManager.get(User.UNKNOWN_ID);
|
||||
if (unknown == null) {
|
||||
unknown = new User();
|
||||
unknown.setId(User.UNKNOWN_ID);
|
||||
unknown.setName(User.UNKNOWN_NAME);
|
||||
unknown.setEmail("unknown email");
|
||||
unknown.setPassword("no password");
|
||||
userManager.replicate(unknown);
|
||||
}
|
||||
User administrator = userManager.get(User.ROOT_ID);
|
||||
if (administrator == null) {
|
||||
administrator = new User();
|
||||
|
||||
@ -32,6 +32,7 @@ import io.onedev.commons.launcher.bootstrap.Bootstrap;
|
||||
import io.onedev.commons.utils.FileUtils;
|
||||
import io.onedev.commons.utils.ExplicitException;
|
||||
import io.onedev.commons.utils.StringUtils;
|
||||
import io.onedev.server.model.User;
|
||||
import io.onedev.server.util.Pair;
|
||||
|
||||
@Singleton
|
||||
@ -2600,5 +2601,103 @@ public class DataMigrator {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void useUnknownUser(Element element, String field) {
|
||||
Element userNameElement = element.element(field + "Name");
|
||||
if (userNameElement != null) {
|
||||
userNameElement.detach();
|
||||
if (element.element(field) == null)
|
||||
element.addElement(field).setText("-2");
|
||||
}
|
||||
}
|
||||
|
||||
private void migrate61(File dataDir, Stack<Integer> versions) {
|
||||
for (File file: dataDir.listFiles()) {
|
||||
if (file.getName().startsWith("PullRequests.xml")) {
|
||||
VersionedXmlDoc dom = VersionedXmlDoc.fromFile(file);
|
||||
for (Element element: dom.getRootElement().elements()) {
|
||||
useUnknownUser(element.element("lastUpdate"), "user");
|
||||
useUnknownUser(element, "submitter");
|
||||
}
|
||||
dom.writeToFile(file, false);
|
||||
} else if (file.getName().startsWith("Builds.xml")) {
|
||||
VersionedXmlDoc dom = VersionedXmlDoc.fromFile(file);
|
||||
for (Element element: dom.getRootElement().elements()) {
|
||||
useUnknownUser(element, "submitter");
|
||||
useUnknownUser(element, "canceller");
|
||||
}
|
||||
dom.writeToFile(file, false);
|
||||
} else if (file.getName().startsWith("CodeComments.xml")) {
|
||||
VersionedXmlDoc dom = VersionedXmlDoc.fromFile(file);
|
||||
for (Element element: dom.getRootElement().elements()) {
|
||||
useUnknownUser(element.element("lastUpdate"), "user");
|
||||
useUnknownUser(element, "user");
|
||||
}
|
||||
dom.writeToFile(file, false);
|
||||
} else if (file.getName().startsWith("CodeCommentReplys.xml")) {
|
||||
VersionedXmlDoc dom = VersionedXmlDoc.fromFile(file);
|
||||
for (Element element: dom.getRootElement().elements())
|
||||
useUnknownUser(element, "user");
|
||||
dom.writeToFile(file, false);
|
||||
} else if (file.getName().startsWith("Issues.xml")) {
|
||||
VersionedXmlDoc dom = VersionedXmlDoc.fromFile(file);
|
||||
for (Element element: dom.getRootElement().elements()) {
|
||||
useUnknownUser(element.element("lastUpdate"), "user");
|
||||
useUnknownUser(element, "submitter");
|
||||
}
|
||||
dom.writeToFile(file, false);
|
||||
} else if (file.getName().startsWith("IssueChanges.xml")) {
|
||||
VersionedXmlDoc dom = VersionedXmlDoc.fromFile(file);
|
||||
for (Element element: dom.getRootElement().elements())
|
||||
useUnknownUser(element, "user");
|
||||
dom.writeToFile(file, false);
|
||||
} else if (file.getName().startsWith("PullRequestChanges.xml")) {
|
||||
VersionedXmlDoc dom = VersionedXmlDoc.fromFile(file);
|
||||
for (Element element: dom.getRootElement().elements())
|
||||
useUnknownUser(element, "user");
|
||||
dom.writeToFile(file, false);
|
||||
} else if (file.getName().startsWith("IssueComments.xml")) {
|
||||
VersionedXmlDoc dom = VersionedXmlDoc.fromFile(file);
|
||||
for (Element element: dom.getRootElement().elements())
|
||||
useUnknownUser(element, "user");
|
||||
dom.writeToFile(file, false);
|
||||
} else if (file.getName().startsWith("PullRequestComments.xml")) {
|
||||
VersionedXmlDoc dom = VersionedXmlDoc.fromFile(file);
|
||||
for (Element element: dom.getRootElement().elements())
|
||||
useUnknownUser(element, "user");
|
||||
dom.writeToFile(file, false);
|
||||
} else if (file.getName().startsWith("Users.xml")) {
|
||||
VersionedXmlDoc dom = VersionedXmlDoc.fromFile(file);
|
||||
for (Element element: dom.getRootElement().elements()) {
|
||||
if (element.elementTextTrim("id").equals("-1"))
|
||||
element.element("email").setText("system email");
|
||||
}
|
||||
if (file.getName().equals("Users.xml")) {
|
||||
Element element = dom.getRootElement().addElement("io.onedev.server.model.User");
|
||||
element.addAttribute("revision", "0.0");
|
||||
element.addElement("id").setText("-2");
|
||||
element.addElement("name").setText("Unknown");
|
||||
element.addElement("password").setText("no password");
|
||||
element.addElement("ssoInfo").addElement("subject").setText(UUID.randomUUID().toString());
|
||||
element.addElement("email").setText("unknown email");
|
||||
element.addElement("alternateEmails");
|
||||
element.addElement("accessToken").setText(RandomStringUtils.randomAlphanumeric(User.ACCESS_TOKEN_LEN));
|
||||
element.addElement("userProjectQueries");
|
||||
element.addElement("userIssueQueries");
|
||||
element.addElement("userIssueQueryWatches");
|
||||
element.addElement("issueQueryWatches");
|
||||
|
||||
element.addElement("userPullRequestQueries");
|
||||
element.addElement("userPullRequestQueryWatches");
|
||||
element.addElement("pullRequestQueryWatches");
|
||||
element.addElement("userBuildQueries");
|
||||
|
||||
element.addElement("userBuildQuerySubscriptions");
|
||||
element.addElement("buildQuerySubscriptions");
|
||||
}
|
||||
dom.writeToFile(file, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package io.onedev.server.model;
|
||||
|
||||
import static io.onedev.server.model.Build.PROP_CANCELLER_NAME;
|
||||
import static io.onedev.server.model.Build.PROP_COMMIT;
|
||||
import static io.onedev.server.model.Build.PROP_FINISH_DATE;
|
||||
import static io.onedev.server.model.Build.PROP_FINISH_DAY;
|
||||
@ -10,7 +9,6 @@ import static io.onedev.server.model.Build.PROP_PENDING_DATE;
|
||||
import static io.onedev.server.model.Build.PROP_REF_NAME;
|
||||
import static io.onedev.server.model.Build.PROP_RUNNING_DATE;
|
||||
import static io.onedev.server.model.Build.PROP_STATUS;
|
||||
import static io.onedev.server.model.Build.PROP_SUBMITTER_NAME;
|
||||
import static io.onedev.server.model.Build.PROP_SUBMIT_DATE;
|
||||
import static io.onedev.server.model.Build.PROP_VERSION;
|
||||
|
||||
@ -102,8 +100,8 @@ import io.onedev.server.web.util.WicketUtils;
|
||||
@Entity
|
||||
@Table(
|
||||
indexes={@Index(columnList="o_project_id"), @Index(columnList="o_submitter_id"), @Index(columnList="o_canceller_id"),
|
||||
@Index(columnList="o_request_id"), @Index(columnList=PROP_SUBMITTER_NAME),
|
||||
@Index(columnList=PROP_CANCELLER_NAME), @Index(columnList=PROP_COMMIT),
|
||||
@Index(columnList="o_request_id"),
|
||||
@Index(columnList=PROP_COMMIT),
|
||||
@Index(columnList=PROP_NUMBER), @Index(columnList=PROP_JOB),
|
||||
@Index(columnList=PROP_STATUS), @Index(columnList=PROP_REF_NAME),
|
||||
@Index(columnList=PROP_SUBMIT_DATE), @Index(columnList=PROP_PENDING_DATE),
|
||||
@ -271,15 +269,12 @@ public class Build extends AbstractEntity implements Referenceable {
|
||||
private Project project;
|
||||
|
||||
@ManyToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn(nullable=false)
|
||||
private User submitter;
|
||||
|
||||
private String submitterName;
|
||||
|
||||
@ManyToOne(fetch=FetchType.LAZY)
|
||||
private User canceller;
|
||||
|
||||
private String cancellerName;
|
||||
|
||||
@Column(nullable=false)
|
||||
private String jobName;
|
||||
|
||||
@ -377,7 +372,6 @@ public class Build extends AbstractEntity implements Referenceable {
|
||||
this.project = project;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public User getSubmitter() {
|
||||
return submitter;
|
||||
}
|
||||
@ -386,24 +380,6 @@ public class Build extends AbstractEntity implements Referenceable {
|
||||
this.submitter = submitter;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getSubmitterName() {
|
||||
return submitterName;
|
||||
}
|
||||
|
||||
public void setSubmitterName(String submitterName) {
|
||||
this.submitterName = submitterName;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getCancellerName() {
|
||||
return cancellerName;
|
||||
}
|
||||
|
||||
public void setCancellerName(String cancellerName) {
|
||||
this.cancellerName = cancellerName;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public User getCanceller() {
|
||||
return canceller;
|
||||
|
||||
@ -93,11 +93,9 @@ public class CodeComment extends AbstractEntity implements AttachmentStorageSupp
|
||||
private Project project;
|
||||
|
||||
@ManyToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn
|
||||
@JoinColumn(nullable=false)
|
||||
private User user;
|
||||
|
||||
private String userName;
|
||||
|
||||
@Column(nullable=false, length=MAX_CONTENT_LEN)
|
||||
private String content;
|
||||
|
||||
@ -143,7 +141,6 @@ public class CodeComment extends AbstractEntity implements AttachmentStorageSupp
|
||||
this.request = request;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public User getUser() {
|
||||
return user;
|
||||
}
|
||||
@ -152,15 +149,6 @@ public class CodeComment extends AbstractEntity implements AttachmentStorageSupp
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
@ -28,11 +28,9 @@ public class CodeCommentReply extends AbstractEntity {
|
||||
private CodeComment comment;
|
||||
|
||||
@ManyToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn
|
||||
@JoinColumn(nullable=false)
|
||||
private User user;
|
||||
|
||||
private String userName;
|
||||
|
||||
@Column(nullable=false)
|
||||
private Date date;
|
||||
|
||||
@ -56,15 +54,6 @@ public class CodeCommentReply extends AbstractEntity {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
@ -4,9 +4,9 @@ import static io.onedev.server.model.Issue.PROP_COMMENT_COUNT;
|
||||
import static io.onedev.server.model.Issue.PROP_NO_SPACE_TITLE;
|
||||
import static io.onedev.server.model.Issue.PROP_NUMBER;
|
||||
import static io.onedev.server.model.Issue.PROP_STATE;
|
||||
import static io.onedev.server.model.Issue.PROP_UUID;
|
||||
import static io.onedev.server.model.Issue.PROP_SUBMIT_DATE;
|
||||
import static io.onedev.server.model.Issue.PROP_TITLE;
|
||||
import static io.onedev.server.model.Issue.PROP_UUID;
|
||||
import static io.onedev.server.model.Issue.PROP_VOTE_COUNT;
|
||||
|
||||
import java.io.Serializable;
|
||||
@ -191,10 +191,9 @@ public class Issue extends AbstractEntity implements Referenceable, AttachmentSt
|
||||
private Milestone milestone;
|
||||
|
||||
@ManyToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn(nullable=false)
|
||||
private User submitter;
|
||||
|
||||
private String submitterName;
|
||||
|
||||
@Column(nullable=false)
|
||||
private Date submitDate = new Date();
|
||||
|
||||
@ -329,15 +328,6 @@ public class Issue extends AbstractEntity implements Referenceable, AttachmentSt
|
||||
this.submitter = submitter;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getSubmitterName() {
|
||||
return submitterName;
|
||||
}
|
||||
|
||||
public void setSubmitterName(String submitterName) {
|
||||
this.submitterName = submitterName;
|
||||
}
|
||||
|
||||
public Date getSubmitDate() {
|
||||
return submitDate;
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package io.onedev.server.model;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.FetchType;
|
||||
@ -25,11 +26,8 @@ public class IssueChange extends AbstractEntity {
|
||||
private Issue issue;
|
||||
|
||||
@ManyToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn
|
||||
private User user;
|
||||
|
||||
private String userName;
|
||||
|
||||
@Column(nullable=false)
|
||||
private Date date;
|
||||
|
||||
@ -45,6 +43,7 @@ public class IssueChange extends AbstractEntity {
|
||||
this.issue = issue;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public User getUser() {
|
||||
return user;
|
||||
}
|
||||
@ -53,14 +52,6 @@ public class IssueChange extends AbstractEntity {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
@ -28,11 +28,9 @@ public class IssueComment extends AbstractEntity {
|
||||
private Issue issue;
|
||||
|
||||
@ManyToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn
|
||||
@JoinColumn(nullable=false)
|
||||
private User user;
|
||||
|
||||
private String userName;
|
||||
|
||||
@Column(nullable=false)
|
||||
private Date date = new Date();
|
||||
|
||||
@ -55,14 +53,6 @@ public class IssueComment extends AbstractEntity {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
@ -25,7 +25,7 @@ public class IssueVote extends AbstractEntity {
|
||||
private Issue issue;
|
||||
|
||||
@ManyToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn
|
||||
@JoinColumn(nullable=false)
|
||||
private User user;
|
||||
|
||||
@Column(nullable=false)
|
||||
|
||||
@ -86,7 +86,7 @@ import io.onedev.server.web.util.WicketUtils;
|
||||
@Index(columnList=LastUpdate.COLUMN_DATE), @Index(columnList="o_sourceProject_id"),
|
||||
@Index(columnList="o_submitter_id"), @Index(columnList=MergePreview.COLUMN_HEAD_COMMIT_HASH),
|
||||
@Index(columnList=CloseInfo.COLUMN_DATE), @Index(columnList=CloseInfo.COLUMN_STATUS),
|
||||
@Index(columnList=CloseInfo.COLUMN_USER), @Index(columnList=CloseInfo.COLUMN_USER_NAME),
|
||||
@Index(columnList=CloseInfo.COLUMN_USER),
|
||||
@Index(columnList="o_numberScope_id")},
|
||||
uniqueConstraints={@UniqueConstraint(columnNames={"o_numberScope_id", PROP_NUMBER})})
|
||||
//use dynamic update in order not to overwrite other edits while background threads change update date
|
||||
@ -221,13 +221,10 @@ public class PullRequest extends AbstractEntity implements Referenceable, Attach
|
||||
private String description;
|
||||
|
||||
@ManyToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn
|
||||
@JoinColumn(nullable=false)
|
||||
@OptimisticLock(excluded=true)
|
||||
private User submitter;
|
||||
|
||||
@OptimisticLock(excluded=true)
|
||||
private String submitterName;
|
||||
|
||||
@ManyToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn(nullable=false)
|
||||
private Project numberScope;
|
||||
@ -363,7 +360,6 @@ public class PullRequest extends AbstractEntity implements Referenceable, Attach
|
||||
* @return
|
||||
* the user submitting the pull request
|
||||
*/
|
||||
@Nullable
|
||||
public User getSubmitter() {
|
||||
return submitter;
|
||||
}
|
||||
@ -372,11 +368,6 @@ public class PullRequest extends AbstractEntity implements Referenceable, Attach
|
||||
this.submitter = submitter;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getSubmitterName() {
|
||||
return submitterName;
|
||||
}
|
||||
|
||||
public Project getNumberScope() {
|
||||
return numberScope;
|
||||
}
|
||||
|
||||
@ -25,11 +25,8 @@ public class PullRequestChange extends AbstractEntity {
|
||||
private PullRequest request;
|
||||
|
||||
@ManyToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn
|
||||
private User user;
|
||||
|
||||
private String userName;
|
||||
|
||||
@Column(nullable=false)
|
||||
private Date date;
|
||||
|
||||
@ -62,15 +59,6 @@ public class PullRequestChange extends AbstractEntity {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
@ -30,11 +30,9 @@ public class PullRequestComment extends AbstractEntity {
|
||||
private PullRequest request;
|
||||
|
||||
@ManyToOne(fetch=FetchType.LAZY)
|
||||
@JoinColumn
|
||||
@JoinColumn(nullable=false)
|
||||
private User user;
|
||||
|
||||
private String userName;
|
||||
|
||||
@Column(nullable=false, length=MAX_CONTENT_LEN)
|
||||
private String content;
|
||||
|
||||
@ -49,7 +47,6 @@ public class PullRequestComment extends AbstractEntity {
|
||||
this.request = request;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public User getUser() {
|
||||
return user;
|
||||
}
|
||||
@ -58,15 +55,6 @@ public class PullRequestComment extends AbstractEntity {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
@ -72,10 +72,16 @@ public class User extends AbstractEntity implements AuthenticationInfo, NameAwar
|
||||
|
||||
public static final int ACCESS_TOKEN_LEN = 40;
|
||||
|
||||
public static final Long UNKNOWN_ID = -2L;
|
||||
|
||||
public static final Long SYSTEM_ID = -1L;
|
||||
|
||||
public static final Long ROOT_ID = 1L;
|
||||
|
||||
public static final String SYSTEM_NAME = "OneDev";
|
||||
|
||||
public static final String UNKNOWN_NAME = "Unknown";
|
||||
|
||||
public static final String EXTERNAL_MANAGED = "external_managed";
|
||||
|
||||
public static final String PROP_NAME = "name";
|
||||
@ -561,6 +567,10 @@ public class User extends AbstractEntity implements AuthenticationInfo, NameAwar
|
||||
return SYSTEM_ID.equals(getId());
|
||||
}
|
||||
|
||||
public boolean isUnknown() {
|
||||
return UNKNOWN_ID.equals(getId());
|
||||
}
|
||||
|
||||
public Collection<UserAuthorization> getAuthorizations() {
|
||||
return authorizations;
|
||||
}
|
||||
@ -591,17 +601,6 @@ public class User extends AbstractEntity implements AuthenticationInfo, NameAwar
|
||||
return groups;
|
||||
}
|
||||
|
||||
public static User from(@Nullable User user, @Nullable String displayName) {
|
||||
if (user == null) {
|
||||
user = new User();
|
||||
if (displayName != null)
|
||||
user.setName(displayName);
|
||||
else
|
||||
user.setName("Unknown");
|
||||
}
|
||||
return user;
|
||||
}
|
||||
|
||||
public static void push(User user) {
|
||||
stack.get().push(user);
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package io.onedev.server.model.support;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Embeddable;
|
||||
import javax.persistence.FetchType;
|
||||
@ -33,10 +34,6 @@ public class LastUpdate implements Serializable {
|
||||
@OptimisticLock(excluded=true)
|
||||
private User user;
|
||||
|
||||
@Column(name=COLUMN_USER_NAME)
|
||||
@OptimisticLock(excluded=true)
|
||||
private String userName;
|
||||
|
||||
@Column(name=COLUMN_DATE, nullable=false)
|
||||
@OptimisticLock(excluded=true)
|
||||
private Date date;
|
||||
@ -45,6 +42,7 @@ public class LastUpdate implements Serializable {
|
||||
@OptimisticLock(excluded=true)
|
||||
private String activity;
|
||||
|
||||
@Nullable
|
||||
public User getUser() {
|
||||
return user;
|
||||
}
|
||||
@ -53,14 +51,6 @@ public class LastUpdate implements Serializable {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
@ -7,16 +7,16 @@ import org.eclipse.jgit.lib.PersonIdent;
|
||||
import org.eclipse.jgit.lib.Repository;
|
||||
|
||||
import io.onedev.commons.utils.WordUtils;
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.git.GitUtils;
|
||||
import io.onedev.server.model.PullRequest;
|
||||
import io.onedev.server.model.User;
|
||||
|
||||
public enum MergeStrategy {
|
||||
CREATE_MERGE_COMMIT("Add all commits from source branch to target branch with a merge commit.") {
|
||||
|
||||
@Override
|
||||
public ObjectId merge(PullRequest request, String commitMessage) {
|
||||
PersonIdent user = new PersonIdent(OneDev.NAME, "");
|
||||
PersonIdent user = new PersonIdent(User.SYSTEM_NAME, "");
|
||||
Repository repository = request.getTargetProject().getRepository();
|
||||
ObjectId requestHead = request.getLatestUpdate().getHeadCommit();
|
||||
ObjectId targetHead = request.getTarget().getObjectId();
|
||||
@ -35,7 +35,7 @@ public enum MergeStrategy {
|
||||
if (GitUtils.isMergedInto(repository, null, targetHead, requestHead)) {
|
||||
return requestHead;
|
||||
} else {
|
||||
PersonIdent user = new PersonIdent(OneDev.NAME, "");
|
||||
PersonIdent user = new PersonIdent(User.SYSTEM_NAME, "");
|
||||
return GitUtils.merge(repository, targetHead, requestHead, false, user, user,
|
||||
commitMessage, false);
|
||||
}
|
||||
@ -49,7 +49,7 @@ public enum MergeStrategy {
|
||||
Repository repository = request.getTargetProject().getRepository();
|
||||
ObjectId requestHead = request.getLatestUpdate().getHeadCommit();
|
||||
ObjectId targetHead = request.getTarget().getObjectId();
|
||||
PersonIdent committer = new PersonIdent(OneDev.NAME, "");
|
||||
PersonIdent committer = new PersonIdent(User.SYSTEM_NAME, "");
|
||||
PersonIdent author = request.getSubmitter().asPerson();
|
||||
return GitUtils.merge(repository, targetHead, requestHead, true, committer, author,
|
||||
commitMessage, false);
|
||||
@ -63,7 +63,7 @@ public enum MergeStrategy {
|
||||
Repository repository = request.getTargetProject().getRepository();
|
||||
ObjectId requestHead = request.getLatestUpdate().getHeadCommit();
|
||||
ObjectId targetHead = request.getTarget().getObjectId();
|
||||
PersonIdent user = new PersonIdent(OneDev.NAME, "");
|
||||
PersonIdent user = new PersonIdent(User.SYSTEM_NAME, "");
|
||||
return GitUtils.rebase(repository, requestHead, targetHead, user);
|
||||
}
|
||||
|
||||
|
||||
@ -272,7 +272,7 @@ public class UserResource {
|
||||
throw new InvalidParamException("Count should not be greater than " + RestConstants.MAX_PAGE_SIZE);
|
||||
|
||||
EntityCriteria<User> criteria = EntityCriteria.of(User.class);
|
||||
criteria.add(Restrictions.not(Restrictions.eq("id", User.SYSTEM_ID)));
|
||||
criteria.add(Restrictions.gt("id", 0L));
|
||||
if (name != null)
|
||||
criteria.add(Restrictions.ilike("name", name.replace('*', '%'), MatchMode.EXACT));
|
||||
if (fullName != null)
|
||||
|
||||
@ -17,6 +17,7 @@ import org.slf4j.LoggerFactory;
|
||||
import com.google.common.net.HttpHeaders;
|
||||
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.model.User;
|
||||
import io.onedev.server.web.ExpectedExceptionContribution;
|
||||
|
||||
public class ExceptionUtils extends io.onedev.commons.utils.ExceptionUtils {
|
||||
@ -47,7 +48,7 @@ public class ExceptionUtils extends io.onedev.commons.utils.ExceptionUtils {
|
||||
|
||||
private static void requireAuthentication(HttpServletResponse response) {
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
String authcHeader = HttpServletRequest.BASIC_AUTH + " realm=\"" + OneDev.NAME + "\"";
|
||||
String authcHeader = HttpServletRequest.BASIC_AUTH + " realm=\"" + User.SYSTEM_NAME + "\"";
|
||||
response.setHeader(HttpHeaders.WWW_AUTHENTICATE, authcHeader);
|
||||
}
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ import javax.validation.ConstraintValidatorContext;
|
||||
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.entitymanager.UserManager;
|
||||
import io.onedev.server.model.User;
|
||||
import io.onedev.server.persistence.SessionManager;
|
||||
import io.onedev.server.util.validation.annotation.UserName;
|
||||
|
||||
@ -36,7 +37,7 @@ public class UserNameValidator implements ConstraintValidator<UserName, String>
|
||||
}
|
||||
constraintContext.buildConstraintViolationWithTemplate(message).addConstraintViolation();
|
||||
return false;
|
||||
} else if (value.equals("new") || value.equals(OneDev.NAME)) {
|
||||
} else if (value.equals("new") || value.equals(User.SYSTEM_NAME) || value.equals(User.UNKNOWN_NAME)) {
|
||||
constraintContext.disableDefaultConstraintViolation();
|
||||
String message = this.message;
|
||||
if (message.length() == 0)
|
||||
@ -61,7 +62,8 @@ public class UserNameValidator implements ConstraintValidator<UserName, String>
|
||||
if (suffix > 1)
|
||||
suggestedUserName += suffix;
|
||||
if (!suggestedUserName.equals("new")
|
||||
&& !suggestedUserName.equals(OneDev.NAME)
|
||||
&& !suggestedUserName.equals(User.SYSTEM_NAME)
|
||||
&& !suggestedUserName.equals(User.UNKNOWN_NAME)
|
||||
&& userManager.findByName(suggestedUserName) == null) {
|
||||
return suggestedUserName;
|
||||
}
|
||||
|
||||
@ -12,8 +12,6 @@ import io.onedev.server.util.facade.UserFacade;
|
||||
|
||||
public interface AvatarManager {
|
||||
|
||||
String getAvatarUrl(@Nullable Long userId, String displayName);
|
||||
|
||||
String getAvatarUrl(User user);
|
||||
|
||||
String getAvatarUrl(PersonIdent personIdent);
|
||||
|
||||
@ -20,7 +20,6 @@ import io.onedev.commons.launcher.bootstrap.Bootstrap;
|
||||
import io.onedev.commons.utils.FileUtils;
|
||||
import io.onedev.commons.utils.LockUtils;
|
||||
import io.onedev.commons.utils.StringUtils;
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.entitymanager.SettingManager;
|
||||
import io.onedev.server.entitymanager.UserManager;
|
||||
import io.onedev.server.model.Project;
|
||||
@ -49,18 +48,11 @@ public class DefaultAvatarManager implements AvatarManager {
|
||||
@Sessional
|
||||
@Override
|
||||
public String getAvatarUrl(User user) {
|
||||
return getAvatarUrl(user.getId(), user.getDisplayName());
|
||||
}
|
||||
|
||||
@Sessional
|
||||
@Override
|
||||
public String getAvatarUrl(Long userId, String displayName) {
|
||||
if (userId == null) {
|
||||
if (user.isUnknown()) {
|
||||
return AVATARS_BASE_URL + "user.png";
|
||||
} else if (userId.equals(User.SYSTEM_ID)) {
|
||||
} else if (user.isSystem()) {
|
||||
return AVATARS_BASE_URL + "onedev.png";
|
||||
} else {
|
||||
User user = OneDev.getInstance(UserManager.class).load(userId);
|
||||
File uploadedFile = getUploaded(new UserFacade(user));
|
||||
if (uploadedFile.exists())
|
||||
return AVATARS_BASE_URL + "uploaded/users/" + user.getId() + ".jpg?version=" + uploadedFile.lastModified();
|
||||
@ -75,7 +67,7 @@ public class DefaultAvatarManager implements AvatarManager {
|
||||
@Override
|
||||
public String getAvatarUrl(PersonIdent personIdent) {
|
||||
if (StringUtils.isBlank(personIdent.getEmailAddress())) {
|
||||
if (personIdent.getName().equals(OneDev.NAME))
|
||||
if (personIdent.getName().equals(User.SYSTEM_NAME))
|
||||
return AVATARS_BASE_URL + "onedev.png";
|
||||
else
|
||||
return AVATARS_BASE_URL + "user.png";
|
||||
|
||||
@ -31,7 +31,6 @@ import io.onedev.server.git.GitUtils;
|
||||
import io.onedev.server.model.Build;
|
||||
import io.onedev.server.model.Project;
|
||||
import io.onedev.server.model.PullRequest;
|
||||
import io.onedev.server.model.User;
|
||||
import io.onedev.server.security.SecurityUtils;
|
||||
import io.onedev.server.util.DateUtils;
|
||||
import io.onedev.server.util.Input;
|
||||
@ -67,13 +66,11 @@ public abstract class BuildSidePanel extends Panel {
|
||||
|
||||
@Override
|
||||
protected void onBeforeRender() {
|
||||
User submitter = User.from(getBuild().getSubmitter(), getBuild().getSubmitterName());
|
||||
addOrReplace(new UserIdentPanel("submitter", submitter, Mode.NAME));
|
||||
User canceller = User.from(getBuild().getCanceller(), getBuild().getCancellerName());
|
||||
UserIdentPanel cancellerIdentPanel = new UserIdentPanel("canceller", canceller, Mode.NAME);
|
||||
cancellerIdentPanel.setVisible(getBuild().getStatus() == Build.Status.CANCELLED
|
||||
&& (getBuild().getCanceller() != null || getBuild().getCancellerName() != null));
|
||||
addOrReplace(cancellerIdentPanel);
|
||||
addOrReplace(new UserIdentPanel("submitter", getBuild().getSubmitter(), Mode.NAME));
|
||||
if (getBuild().getStatus() == Build.Status.CANCELLED && getBuild().getCanceller() != null)
|
||||
addOrReplace(new UserIdentPanel("canceller", getBuild().getCanceller(), Mode.NAME));
|
||||
else
|
||||
addOrReplace(new WebMarkupContainer("canceller").setVisible(false));
|
||||
super.onBeforeRender();
|
||||
}
|
||||
|
||||
|
||||
@ -45,7 +45,6 @@ import io.onedev.server.entitymanager.CodeCommentManager;
|
||||
import io.onedev.server.model.CodeComment;
|
||||
import io.onedev.server.model.Project;
|
||||
import io.onedev.server.model.PullRequest;
|
||||
import io.onedev.server.model.User;
|
||||
import io.onedev.server.model.support.LastUpdate;
|
||||
import io.onedev.server.search.entity.EntityCriteria;
|
||||
import io.onedev.server.search.entity.EntitySort;
|
||||
@ -401,9 +400,8 @@ public abstract class CodeCommentListPanel extends Panel {
|
||||
Fragment fragment = new Fragment(componentId, "lastUpdateFrag", CodeCommentListPanel.this);
|
||||
|
||||
LastUpdate lastUpdate = comment.getLastUpdate();
|
||||
if (lastUpdate.getUser() != null || lastUpdate.getUserName() != null) {
|
||||
User user = User.from(lastUpdate.getUser(), lastUpdate.getUserName());
|
||||
fragment.add(new UserIdentPanel("user", user, Mode.NAME));
|
||||
if (lastUpdate.getUser() != null) {
|
||||
fragment.add(new UserIdentPanel("user", lastUpdate.getUser(), Mode.NAME));
|
||||
} else {
|
||||
fragment.add(new WebMarkupContainer("user").setVisible(false));
|
||||
}
|
||||
|
||||
@ -99,9 +99,8 @@ public abstract class CodeCommentPanel extends Panel {
|
||||
|
||||
}));
|
||||
|
||||
User user = User.from(getComment().getUser(), getComment().getUserName());
|
||||
commentContainer.add(new UserIdentPanel("userAvatar", user, Mode.AVATAR));
|
||||
commentContainer.add(new Label("userName", user.getDisplayName()));
|
||||
commentContainer.add(new UserIdentPanel("userAvatar", getComment().getUser(), Mode.AVATAR));
|
||||
commentContainer.add(new Label("userName", getComment().getUser().getDisplayName()));
|
||||
commentContainer.add(new Label("action", "commented"));
|
||||
commentContainer.add(new Label("date", DateUtils.formatAge(getComment().getCreateDate()))
|
||||
.add(new AttributeAppender("title", DateUtils.formatDateTime(getComment().getCreateDate()))));
|
||||
@ -248,9 +247,8 @@ public abstract class CodeCommentPanel extends Panel {
|
||||
replyContainer.setMarkupId(reply.getAnchor());
|
||||
replyContainer.add(AttributeAppender.append("name", reply.getAnchor()));
|
||||
|
||||
User user = User.from(reply.getUser(), reply.getUserName());
|
||||
replyContainer.add(new UserIdentPanel("userAvatar", user, Mode.AVATAR));
|
||||
replyContainer.add(new Label("userName", user.getDisplayName()));
|
||||
replyContainer.add(new UserIdentPanel("userAvatar", reply.getUser(), Mode.AVATAR));
|
||||
replyContainer.add(new Label("userName", reply.getUser().getDisplayName()));
|
||||
|
||||
replyContainer.add(new Label("action", "replied"));
|
||||
replyContainer.add(new Label("date", DateUtils.formatAge(reply.getDate()))
|
||||
|
||||
@ -48,10 +48,7 @@ public class IssueChangeActivity implements IssueActivity {
|
||||
|
||||
@Override
|
||||
public User getUser() {
|
||||
if (getChange().getUser() != null || getChange().getUserName() != null)
|
||||
return User.from(getChange().getUser(), getChange().getUserName());
|
||||
else
|
||||
return null;
|
||||
return getChange().getUser();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -23,8 +23,6 @@ class IssueChangePanel extends GenericPanel<IssueChange> {
|
||||
IssueChange change = getModelObject();
|
||||
if (change.getUser() != null)
|
||||
add(new Label("user", change.getUser().getDisplayName()));
|
||||
else if (change.getUserName() != null)
|
||||
add(new Label("user", change.getUserName()));
|
||||
else
|
||||
add(new WebMarkupContainer("user").setVisible(false));
|
||||
|
||||
|
||||
@ -60,7 +60,7 @@ public class IssueCommentedActivity implements IssueActivity {
|
||||
|
||||
@Override
|
||||
public User getUser() {
|
||||
return User.from(getComment().getUser(), getComment().getUserName());
|
||||
return getComment().getUser();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -36,8 +36,7 @@ class IssueCommentedPanel extends GenericPanel<IssueComment> {
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
User user = User.from(getComment().getUser(), getComment().getUserName());
|
||||
add(new Label("user", user.getDisplayName()));
|
||||
add(new Label("user", getComment().getUser().getDisplayName()));
|
||||
add(new Label("age", DateUtils.formatAge(getComment().getDate()))
|
||||
.add(new AttributeAppender("title", DateUtils.formatDateTime(getComment().getDate()))));
|
||||
|
||||
|
||||
@ -48,7 +48,7 @@ public class IssueOpenedActivity implements IssueActivity {
|
||||
|
||||
@Override
|
||||
public User getUser() {
|
||||
return User.from(getIssue().getSubmitter(), getIssue().getSubmitterName());
|
||||
return getIssue().getSubmitter();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ class IssueOpenedPanel extends GenericPanel<Issue> {
|
||||
super.onInitialize();
|
||||
|
||||
Issue issue = getIssue();
|
||||
add(new Label("user", User.from(issue.getSubmitter(), issue.getSubmitterName()).getDisplayName()));
|
||||
add(new Label("user", issue.getSubmitter().getDisplayName()));
|
||||
add(new Label("age", DateUtils.formatAge(issue.getSubmitDate()))
|
||||
.add(new AttributeAppender("title", DateUtils.formatDateTime(issue.getSubmitDate()))));
|
||||
|
||||
|
||||
@ -75,8 +75,11 @@ public abstract class FieldValuesPanel extends Panel implements EditContext {
|
||||
protected void populateItem(ListItem<String> item) {
|
||||
String value = item.getModelObject();
|
||||
if (getField().getType().equals(FieldSpec.USER)) {
|
||||
User user = User.from(OneDev.getInstance(UserManager.class).findByName(value), value);
|
||||
item.add(new UserIdentPanel("value", user, userFieldDisplayMode));
|
||||
User user = OneDev.getInstance(UserManager.class).findByName(value);
|
||||
if (user != null)
|
||||
item.add(new UserIdentPanel("value", user, userFieldDisplayMode));
|
||||
else
|
||||
item.add(new Label("value", value));
|
||||
} else if (getField().getType().equals(FieldSpec.ISSUE)) {
|
||||
Issue issue = OneDev.getInstance(IssueManager.class)
|
||||
.find(getIssue().getProject(), Long.valueOf(value));
|
||||
|
||||
@ -61,7 +61,6 @@ import io.onedev.server.imports.IssueImporter;
|
||||
import io.onedev.server.imports.IssueImporterContribution;
|
||||
import io.onedev.server.model.Issue;
|
||||
import io.onedev.server.model.Project;
|
||||
import io.onedev.server.model.User;
|
||||
import io.onedev.server.model.support.LastUpdate;
|
||||
import io.onedev.server.model.support.administration.GlobalIssueSetting;
|
||||
import io.onedev.server.model.support.issue.field.spec.ChoiceField;
|
||||
@ -1195,12 +1194,10 @@ public abstract class IssueListPanel extends Panel {
|
||||
fragment.add(fieldsView);
|
||||
|
||||
LastUpdate lastUpdate = issue.getLastUpdate();
|
||||
if (lastUpdate.getUser() != null || lastUpdate.getUserName() != null) {
|
||||
User user = User.from(lastUpdate.getUser(), lastUpdate.getUserName());
|
||||
fragment.add(new UserIdentPanel("user", user, Mode.NAME));
|
||||
} else {
|
||||
if (lastUpdate.getUser() != null)
|
||||
fragment.add(new UserIdentPanel("user", lastUpdate.getUser(), Mode.NAME));
|
||||
else
|
||||
fragment.add(new WebMarkupContainer("user").setVisible(false));
|
||||
}
|
||||
fragment.add(new Label("activity", lastUpdate.getActivity()));
|
||||
fragment.add(new Label("date", DateUtils.formatAge(lastUpdate.getDate()))
|
||||
.add(new AttributeAppender("title", DateUtils.formatDateTime(lastUpdate.getDate()))));
|
||||
|
||||
@ -55,7 +55,6 @@ import io.onedev.server.entitymanager.PullRequestReviewManager;
|
||||
import io.onedev.server.model.Project;
|
||||
import io.onedev.server.model.PullRequest;
|
||||
import io.onedev.server.model.PullRequestReview;
|
||||
import io.onedev.server.model.User;
|
||||
import io.onedev.server.model.support.LastUpdate;
|
||||
import io.onedev.server.search.entity.EntityQuery;
|
||||
import io.onedev.server.search.entity.EntitySort;
|
||||
@ -618,12 +617,10 @@ public abstract class PullRequestListPanel extends Panel {
|
||||
}
|
||||
|
||||
LastUpdate lastUpdate = request.getLastUpdate();
|
||||
if (lastUpdate.getUser() != null || lastUpdate.getUserName() != null) {
|
||||
User user = User.from(lastUpdate.getUser(), lastUpdate.getUserName());
|
||||
fragment.add(new UserIdentPanel("user", user, Mode.NAME));
|
||||
} else {
|
||||
if (lastUpdate.getUser() != null)
|
||||
fragment.add(new UserIdentPanel("user", lastUpdate.getUser(), Mode.NAME));
|
||||
else
|
||||
fragment.add(new WebMarkupContainer("user").setVisible(false));
|
||||
}
|
||||
fragment.add(new Label("activity", lastUpdate.getActivity()));
|
||||
fragment.add(new Label("date", DateUtils.formatAge(lastUpdate.getDate()))
|
||||
.add(new AttributeAppender("title", DateUtils.formatDateTime(lastUpdate.getDate()))));
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
package io.onedev.server.web.component.user;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.apache.wicket.behavior.AttributeAppender;
|
||||
import org.apache.wicket.markup.ComponentTag;
|
||||
import org.apache.wicket.markup.html.WebComponent;
|
||||
@ -18,14 +16,10 @@ public class UserAvatar extends WebComponent {
|
||||
|
||||
private boolean system;
|
||||
|
||||
public UserAvatar(String id, @Nullable Long userId, String displayName) {
|
||||
super(id);
|
||||
url = getAvatarManager().getAvatarUrl(userId, displayName);
|
||||
system = (userId != null && userId == -1);
|
||||
}
|
||||
|
||||
public UserAvatar(String id, User user) {
|
||||
this(id, user.getId(), user.getDisplayName());
|
||||
super(id);
|
||||
url = getAvatarManager().getAvatarUrl(user);
|
||||
system = user.isSystem();
|
||||
}
|
||||
|
||||
public UserAvatar(String id, PersonIdent personIdent) {
|
||||
|
||||
@ -39,7 +39,7 @@ public class AvatarEditPanel extends GenericPanel<User> {
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
add(new UserAvatar("avatar", getUser().getId(), getUser().getDisplayName()));
|
||||
add(new UserAvatar("avatar", getUser()));
|
||||
|
||||
add(new Link<Void>("useDefault") {
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@ import org.unbescape.html.HtmlEscape;
|
||||
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.entitymanager.UserManager;
|
||||
import io.onedev.server.model.User;
|
||||
import io.onedev.server.util.facade.UserFacade;
|
||||
import io.onedev.server.web.component.user.UserAvatar;
|
||||
|
||||
@ -47,7 +48,7 @@ public class PersonCardPanel extends Panel {
|
||||
builder.append("<div>" + HtmlEscape.escapeHtml5(displayName) + " <i>(" + gitRole + ")</i></div>");
|
||||
|
||||
if (StringUtils.isBlank(personIdent.getEmailAddress())) {
|
||||
if (personIdent.getName().equals(OneDev.NAME))
|
||||
if (personIdent.getName().equals(User.SYSTEM_NAME))
|
||||
builder.append("<i>System Account</i>");
|
||||
else
|
||||
builder.append("<i>No OneDev Account</i>");
|
||||
|
||||
@ -1,12 +1,11 @@
|
||||
package io.onedev.server.web.component.user.card;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.apache.wicket.markup.head.CssHeaderItem;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.markup.html.panel.GenericPanel;
|
||||
import org.apache.wicket.model.LoadableDetachableModel;
|
||||
import org.unbescape.html.HtmlEscape;
|
||||
|
||||
import io.onedev.server.OneDev;
|
||||
@ -15,18 +14,26 @@ import io.onedev.server.model.User;
|
||||
import io.onedev.server.web.component.user.UserAvatar;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class UserCardPanel extends Panel {
|
||||
public class UserCardPanel extends GenericPanel<User> {
|
||||
|
||||
private final Long userId;
|
||||
|
||||
private final String displayName;
|
||||
|
||||
public UserCardPanel(String id, @Nullable Long userId, String displayName) {
|
||||
public UserCardPanel(String id, User user) {
|
||||
super(id);
|
||||
this.userId = userId;
|
||||
this.displayName = displayName;
|
||||
|
||||
Long userId = user.getId();
|
||||
setModel(new LoadableDetachableModel<User>() {
|
||||
|
||||
@Override
|
||||
protected User load() {
|
||||
return OneDev.getInstance(UserManager.class).load(userId);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
private User getUser() {
|
||||
return getModelObject();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
@ -34,19 +41,17 @@ public class UserCardPanel extends Panel {
|
||||
WebMarkupContainer container = new WebMarkupContainer("container");
|
||||
add(container);
|
||||
|
||||
container.add(new UserAvatar("avatar", userId, displayName));
|
||||
container.add(new UserAvatar("avatar", getUser()));
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("<div>" + HtmlEscape.escapeHtml5(displayName) + "</div>");
|
||||
builder.append("<div>" + HtmlEscape.escapeHtml5(getUser().getDisplayName()) + "</div>");
|
||||
|
||||
if (userId == null) {
|
||||
builder.append("<i>No OneDev account</i>");
|
||||
} else if (User.SYSTEM_ID.equals(userId)) {
|
||||
if (getUser().isUnknown())
|
||||
builder.append("<i>Unknown Account</i>");
|
||||
else if (getUser().isSystem())
|
||||
builder.append("<i>System Account</i>");
|
||||
} else {
|
||||
User user = OneDev.getInstance(UserManager.class).load(userId);
|
||||
builder.append("<i>@" + HtmlEscape.escapeHtml5(user.getName()) + "</i>");
|
||||
}
|
||||
else
|
||||
builder.append("<i>@" + HtmlEscape.escapeHtml5(getUser().getDisplayName()) + "</i>");
|
||||
container.add(new Label("info", builder.toString()).setEscapeModelStrings(false));
|
||||
}
|
||||
|
||||
|
||||
@ -6,8 +6,11 @@ import org.apache.wicket.markup.ComponentTag;
|
||||
import org.apache.wicket.markup.head.CssHeaderItem;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.markup.html.panel.GenericPanel;
|
||||
import org.apache.wicket.model.LoadableDetachableModel;
|
||||
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.entitymanager.UserManager;
|
||||
import io.onedev.server.model.User;
|
||||
import io.onedev.server.web.behavior.dropdown.DropdownHoverBehavior;
|
||||
import io.onedev.server.web.component.floating.AlignPlacement;
|
||||
@ -15,27 +18,35 @@ import io.onedev.server.web.component.user.UserAvatar;
|
||||
import io.onedev.server.web.component.user.card.UserCardPanel;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class UserIdentPanel extends Panel {
|
||||
public class UserIdentPanel extends GenericPanel<User> {
|
||||
|
||||
private final Long userId;
|
||||
|
||||
private final String displayName;
|
||||
|
||||
private final Mode mode;
|
||||
|
||||
public UserIdentPanel(String id, User user, Mode mode) {
|
||||
super(id);
|
||||
userId = user.getId();
|
||||
displayName = user.getDisplayName();
|
||||
this.mode = mode;
|
||||
|
||||
Long userId = user.getId();
|
||||
setModel(new LoadableDetachableModel<User>() {
|
||||
|
||||
@Override
|
||||
protected User load() {
|
||||
return OneDev.getInstance(UserManager.class).load(userId);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
private User getUser() {
|
||||
return getModelObject();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
add(new UserAvatar("avatar", userId, displayName).setVisible(mode != Mode.NAME));
|
||||
add(new Label("name", displayName).setVisible(mode != Mode.AVATAR));
|
||||
add(new UserAvatar("avatar", getUser()).setVisible(mode != Mode.NAME));
|
||||
add(new Label("name", getUser().getDisplayName()).setVisible(mode != Mode.AVATAR));
|
||||
|
||||
add(AttributeAppender.append("class", "user"));
|
||||
|
||||
@ -43,7 +54,7 @@ public class UserIdentPanel extends Panel {
|
||||
|
||||
@Override
|
||||
protected Component newContent(String id) {
|
||||
return new UserCardPanel(id, userId, displayName);
|
||||
return new UserCardPanel(id, getUser());
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@ -75,7 +75,7 @@ public class UserListPage extends AdministrationPage {
|
||||
|
||||
private EntityCriteria<User> getCriteria() {
|
||||
EntityCriteria<User> criteria = EntityCriteria.of(User.class);
|
||||
criteria.add(Restrictions.not(Restrictions.eq("id", User.SYSTEM_ID)));
|
||||
criteria.add(Restrictions.gt("id", 0L));
|
||||
if (query != null) {
|
||||
criteria.add(Restrictions.or(
|
||||
Restrictions.ilike("name", query, MatchMode.ANYWHERE),
|
||||
|
||||
@ -15,7 +15,8 @@ import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.LoadableDetachableModel;
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
|
||||
import io.onedev.commons.utils.ExplicitException;
|
||||
import com.google.common.base.Preconditions;
|
||||
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.entitymanager.UserManager;
|
||||
import io.onedev.server.model.User;
|
||||
@ -45,8 +46,7 @@ public abstract class UserPage extends AdministrationPage {
|
||||
throw new RestartResponseException(UserListPage.class);
|
||||
|
||||
Long userId = Long.valueOf(userIdString);
|
||||
if (userId == User.SYSTEM_ID)
|
||||
throw new ExplicitException("System user is not accessible");
|
||||
Preconditions.checkArgument(userId > 0);
|
||||
|
||||
userModel = new LoadableDetachableModel<User>() {
|
||||
|
||||
|
||||
@ -249,7 +249,7 @@ abstract class BoardColumnPanel extends Panel implements EditContext {
|
||||
WebMarkupContainer head = new WebMarkupContainer("head");
|
||||
if (user != null) {
|
||||
head.add(new WebMarkupContainer("title").setVisible(false));
|
||||
head.add(new UserIdentPanel("userIdent", User.from(user, user.getDisplayName()), Mode.AVATAR_AND_NAME));
|
||||
head.add(new UserIdentPanel("userIdent", user, Mode.AVATAR_AND_NAME));
|
||||
} else {
|
||||
head.add(new Label("title", title).setEscapeModelStrings(false));
|
||||
head.add(new WebMarkupContainer("userIdent").setVisible(false));
|
||||
|
||||
@ -1014,8 +1014,7 @@ public abstract class PullRequestDetailPage extends ProjectPage implements PullR
|
||||
|
||||
});
|
||||
|
||||
User submitter = User.from(request.getSubmitter(), request.getSubmitterName());
|
||||
statusAndBranchesContainer.add(new UserIdentPanel("user", submitter, Mode.NAME));
|
||||
statusAndBranchesContainer.add(new UserIdentPanel("user", request.getSubmitter(), Mode.NAME));
|
||||
statusAndBranchesContainer.add(new Label("date", DateUtils.formatAge(request.getSubmitDate()))
|
||||
.add(new AttributeAppender("title", DateUtils.formatDateTime(request.getSubmitDate()))));
|
||||
|
||||
|
||||
@ -49,10 +49,7 @@ public class PullRequestChangeActivity implements PullRequestActivity {
|
||||
|
||||
@Override
|
||||
public User getUser() {
|
||||
if (getChange().getUser() != null || getChange().getUserName() != null)
|
||||
return User.from(getChange().getUser(), getChange().getUserName());
|
||||
else
|
||||
return null;
|
||||
return getChange().getUser();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -28,8 +28,6 @@ class PullRequestChangePanel extends GenericPanel<PullRequestChange> {
|
||||
|
||||
if (change.getUser() != null)
|
||||
add(new Label("user", change.getUser().getDisplayName()));
|
||||
else if (change.getUserName() != null)
|
||||
add(new Label("user", change.getUserName()));
|
||||
else
|
||||
add(new WebMarkupContainer("user").setVisible(false));
|
||||
|
||||
|
||||
@ -57,7 +57,7 @@ public class PullRequestCommentedActivity implements PullRequestActivity {
|
||||
|
||||
@Override
|
||||
public User getUser() {
|
||||
return User.from(getComment().getUser(), getComment().getUserName());
|
||||
return getComment().getUser();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ class PullRequestCommentedPanel extends GenericPanel<PullRequestComment> {
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
add(new Label("user", User.from(getComment().getUser(), getComment().getUserName()).getDisplayName()));
|
||||
add(new Label("user", getComment().getUser().getDisplayName()));
|
||||
add(new Label("age", DateUtils.formatAge(getComment().getDate()))
|
||||
.add(new AttributeAppender("title", DateUtils.formatDateTime(getComment().getDate()))));
|
||||
|
||||
|
||||
@ -49,7 +49,7 @@ public class PullRequestOpenedActivity implements PullRequestActivity {
|
||||
|
||||
@Override
|
||||
public User getUser() {
|
||||
return User.from(getRequest().getSubmitter(), getRequest().getSubmitterName());
|
||||
return getRequest().getSubmitter();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ class PullRequestOpenedPanel extends GenericPanel<PullRequest> {
|
||||
super.onInitialize();
|
||||
|
||||
PullRequest request = getPullRequest();
|
||||
add(new Label("user", User.from(request.getSubmitter(), request.getSubmitterName()).getDisplayName()));
|
||||
add(new Label("user", request.getSubmitter().getDisplayName()));
|
||||
add(new Label("age", DateUtils.formatAge(request.getSubmitDate()))
|
||||
.add(new AttributeAppender("title", DateUtils.formatDateTime(request.getSubmitDate()))));
|
||||
|
||||
|
||||
@ -197,7 +197,7 @@ public class SuggestionUtils {
|
||||
Restrictions.ilike(User.PROP_NAME, "%" + matchWith + "%"),
|
||||
Restrictions.ilike(User.PROP_EMAIL, "%" + matchWith + "%"),
|
||||
Restrictions.ilike(User.PROP_FULL_NAME, "%" + matchWith + "%")));
|
||||
criteria.add(Restrictions.not(Restrictions.eq("id", User.SYSTEM_ID)));
|
||||
criteria.add(Restrictions.gt("id", 0L));
|
||||
|
||||
for (User user: OneDev.getInstance(UserManager.class).query(criteria)) {
|
||||
LinearRange match = LinearRange.match(user.getName(), matchWith);
|
||||
|
||||
@ -189,10 +189,7 @@ public class ImportUtils {
|
||||
if (user != null) {
|
||||
issue.setSubmitter(user);
|
||||
} else {
|
||||
String submitterName = userNode.get("full_name").asText();
|
||||
if (StringUtils.isBlank(submitterName))
|
||||
submitterName = userNode.get("login").asText();
|
||||
issue.setSubmitterName(submitterName);
|
||||
issue.setSubmitter(OneDev.getInstance(UserManager.class).getUnknown());
|
||||
nonExistentLogins.add(userNode.get("login").asText());
|
||||
}
|
||||
|
||||
@ -204,7 +201,6 @@ public class ImportUtils {
|
||||
lastUpdate.setActivity("Opened");
|
||||
lastUpdate.setDate(issue.getSubmitDate());
|
||||
lastUpdate.setUser(issue.getSubmitter());
|
||||
lastUpdate.setUserName(issue.getSubmitterName());
|
||||
issue.setLastUpdate(lastUpdate);
|
||||
|
||||
List<JsonNode> assigneeNodes = new ArrayList<>();
|
||||
@ -282,10 +278,7 @@ public class ImportUtils {
|
||||
if (user != null) {
|
||||
comment.setUser(user);
|
||||
} else {
|
||||
String fullName = userNode.get("full_name").asText();
|
||||
if (StringUtils.isBlank(fullName))
|
||||
fullName = userNode.get("login").asText();
|
||||
comment.setUserName(fullName);
|
||||
comment.setUser(OneDev.getInstance(UserManager.class).getUnknown());
|
||||
nonExistentLogins.add(userNode.get("username").asText());
|
||||
}
|
||||
issue.getComments().add(comment);
|
||||
|
||||
@ -175,7 +175,7 @@ public class ImportUtils {
|
||||
if (user != null) {
|
||||
issue.setSubmitter(user);
|
||||
} else {
|
||||
issue.setSubmitterName(login);
|
||||
issue.setSubmitter(OneDev.getInstance(UserManager.class).getUnknown());
|
||||
nonExistentLogins.add(login);
|
||||
}
|
||||
|
||||
@ -187,7 +187,6 @@ public class ImportUtils {
|
||||
lastUpdate.setActivity("Opened");
|
||||
lastUpdate.setDate(issue.getSubmitDate());
|
||||
lastUpdate.setUser(issue.getSubmitter());
|
||||
lastUpdate.setUserName(issue.getSubmitterName());
|
||||
issue.setLastUpdate(lastUpdate);
|
||||
|
||||
for (JsonNode assigneeNode: issueNode.get("assignees")) {
|
||||
@ -221,7 +220,7 @@ public class ImportUtils {
|
||||
if (user != null) {
|
||||
comment.setUser(user);
|
||||
} else {
|
||||
comment.setUserName(login);
|
||||
comment.setUser(OneDev.getInstance(UserManager.class).getUnknown());
|
||||
nonExistentLogins.add(login);
|
||||
}
|
||||
|
||||
|
||||
@ -228,7 +228,7 @@ public class ImportUtils {
|
||||
if (user != null) {
|
||||
issue.setSubmitter(user);
|
||||
} else {
|
||||
issue.setSubmitterName(authorNode.get("name").asText());
|
||||
issue.setSubmitter(OneDev.getInstance(UserManager.class).getUnknown());
|
||||
nonExistentLogins.add(authorNode.get("username").asText());
|
||||
}
|
||||
|
||||
@ -240,7 +240,6 @@ public class ImportUtils {
|
||||
lastUpdate.setActivity("Opened");
|
||||
lastUpdate.setDate(issue.getSubmitDate());
|
||||
lastUpdate.setUser(issue.getSubmitter());
|
||||
lastUpdate.setUserName(issue.getSubmitterName());
|
||||
issue.setLastUpdate(lastUpdate);
|
||||
|
||||
List<JsonNode> assigneeNodes = new ArrayList<>();
|
||||
@ -371,7 +370,7 @@ public class ImportUtils {
|
||||
if (user != null) {
|
||||
comment.setUser(user);
|
||||
} else {
|
||||
comment.setUserName(authorNode.get("name").asText());
|
||||
comment.setUser(OneDev.getInstance(UserManager.class).getUnknown());
|
||||
nonExistentLogins.add(authorNode.get("username").asText());
|
||||
}
|
||||
issue.getComments().add(comment);
|
||||
|
||||
@ -295,18 +295,17 @@ public class ImportUtils {
|
||||
if (issueNode.hasNonNull("reporter")) {
|
||||
JsonNode reporterNode = issueNode.get("reporter");
|
||||
String email = getEmail(reporterNode);
|
||||
String fullName = reporterNode.get("name").asText();
|
||||
String login = reporterNode.get("login").asText();
|
||||
if (email != null) {
|
||||
User user = OneDev.getInstance(UserManager.class).findByEmail(email);
|
||||
if (user != null) {
|
||||
issue.setSubmitter(user);
|
||||
} else {
|
||||
issue.setSubmitterName(fullName);
|
||||
issue.setSubmitter(OneDev.getInstance(UserManager.class).getUnknown());
|
||||
nonExistentLogins.add(login);
|
||||
}
|
||||
} else {
|
||||
issue.setSubmitterName(fullName);
|
||||
issue.setSubmitter(OneDev.getInstance(UserManager.class).getUnknown());
|
||||
nonExistentLogins.add(login);
|
||||
}
|
||||
} else {
|
||||
@ -317,7 +316,6 @@ public class ImportUtils {
|
||||
lastUpdate.setActivity("Opened");
|
||||
lastUpdate.setDate(issue.getSubmitDate());
|
||||
lastUpdate.setUser(issue.getSubmitter());
|
||||
lastUpdate.setUserName(issue.getSubmitterName());
|
||||
issue.setLastUpdate(lastUpdate);
|
||||
|
||||
StateSpec initialState = getIssueSetting().getInitialStateSpec();
|
||||
@ -723,18 +721,17 @@ public class ImportUtils {
|
||||
if (commentNode.hasNonNull("author")) {
|
||||
JsonNode authorNode = commentNode.get("author");
|
||||
String email = getEmail(authorNode);
|
||||
String fullName = authorNode.get("name").asText();
|
||||
String login = authorNode.get("login").asText();
|
||||
if (email != null) {
|
||||
User user = OneDev.getInstance(UserManager.class).findByEmail(email);
|
||||
if (user != null) {
|
||||
comment.setUser(user);
|
||||
} else {
|
||||
comment.setUserName(fullName);
|
||||
comment.setUser(OneDev.getInstance(UserManager.class).getUnknown());
|
||||
nonExistentLogins.add(login);
|
||||
}
|
||||
} else {
|
||||
comment.setUserName(fullName);
|
||||
comment.setUser(OneDev.getInstance(UserManager.class).getUnknown());
|
||||
nonExistentLogins.add(login);
|
||||
}
|
||||
} else {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user