News creation: Show error on duplicates
This commit is contained in:
parent
f966b1521f
commit
5e702cd177
|
@ -80,6 +80,9 @@ msgstr "Kommentar gespeichert."
|
|||
msgid "news.comment-delete.success"
|
||||
msgstr "Kommentar erfolgreich gelöscht."
|
||||
|
||||
msgid "news.edit.duplicate"
|
||||
msgstr "Diese News wurde bereits erstellt."
|
||||
|
||||
msgid "news.edit.success"
|
||||
msgstr "News erfolgreich aktualisiert."
|
||||
|
||||
|
|
|
@ -78,6 +78,9 @@ msgstr "Comment saved."
|
|||
msgid "news.comment-delete.success"
|
||||
msgstr "Comment successfully deleted."
|
||||
|
||||
msgid "news.edit.duplicate"
|
||||
msgstr "Diese News wurde bereits erstellt."
|
||||
|
||||
msgid "news.edit.success"
|
||||
msgstr "News successfully updated."
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ namespace Engelsystem\Controllers\Admin;
|
|||
|
||||
use Engelsystem\Controllers\BaseController;
|
||||
use Engelsystem\Controllers\HasUserNotifications;
|
||||
use Engelsystem\Controllers\NotificationType;
|
||||
use Engelsystem\Helpers\Authenticator;
|
||||
use Engelsystem\Http\Redirector;
|
||||
use Engelsystem\Http\Request;
|
||||
|
@ -104,6 +105,10 @@ class NewsController extends BaseController
|
|||
}
|
||||
|
||||
$isNewNews = !$news->id;
|
||||
if ($isNewNews && News::where('title', $news->title)->where('text', $news->text)->count()) {
|
||||
$this->addNotification('news.edit.duplicate', NotificationType::ERROR);
|
||||
return $this->showEdit($news);
|
||||
}
|
||||
$news->save();
|
||||
|
||||
if ($isNewNews) {
|
||||
|
|
|
@ -228,6 +228,29 @@ class NewsControllerTest extends ControllerTest
|
|||
$this->assertHasNotification('news.delete.success');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \Engelsystem\Controllers\Admin\NewsController::save
|
||||
*/
|
||||
public function testSaveDuplicated(): void
|
||||
{
|
||||
$previousNews = News::first();
|
||||
$this->request = $this->request->withParsedBody([
|
||||
'title' => $previousNews->title,
|
||||
'text' => $previousNews->text,
|
||||
]);
|
||||
$this->response->expects($this->once())
|
||||
->method('withView')
|
||||
->willReturn($this->response);
|
||||
|
||||
/** @var NewsController $controller */
|
||||
$controller = $this->app->make(NewsController::class);
|
||||
$controller->setValidator(new Validator());
|
||||
|
||||
$controller->save($this->request);
|
||||
|
||||
$this->assertHasNotification('news.edit.duplicate', NotificationType::ERROR);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new user
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue