mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-21 04:50:55 +01:00
Project - add editor-level support for detecting name conflicts
Summary: Fixes T4833. I wish there was an elegant way to catch this exception but I think the stack is written such that we really should just do this one-off query here... Test Plan: from the "create project" link under "edit task" I received a more detailed exception than the report in T4833 post patch. I also tested editing an existing project - yay - and editing an existing project to some other existing project's name - got a nice error dialogue. Reviewers: epriestley Reviewed By: epriestley Subscribers: epriestley, Korvin Maniphest Tasks: T4833 Differential Revision: https://secure.phabricator.com/D8834
This commit is contained in:
parent
5cbdda413c
commit
c00733a292
1 changed files with 19 additions and 0 deletions
|
@ -179,6 +179,25 @@ final class PhabricatorProjectTransactionEditor
|
|||
$error->setIsMissingFieldError(true);
|
||||
$errors[] = $error;
|
||||
}
|
||||
|
||||
if (!$xactions) {
|
||||
break;
|
||||
}
|
||||
|
||||
$name = last($xactions)->getNewValue();
|
||||
$name_used_already = id(new PhabricatorProjectQuery())
|
||||
->setViewer($this->getActor())
|
||||
->withNames(array($name))
|
||||
->executeOne();
|
||||
if ($name_used_already &&
|
||||
($name_used_already->getPHID() != $object->getPHID())) {
|
||||
$error = new PhabricatorApplicationTransactionValidationError(
|
||||
$type,
|
||||
pht(''),
|
||||
pht('Project name is already used.'),
|
||||
nonempty(last($xactions), null));
|
||||
$errors[] = $error;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue