mirror of
https://github.com/flarum/framework.git
synced 2025-02-21 16:52:12 +08:00
parent
244b8fd132
commit
bf04dba33e
@ -27,8 +27,4 @@ return function (Dispatcher $events) {
|
||||
$events->subscribe(Access\DiscussionPolicy::class);
|
||||
$events->subscribe(Access\TagPolicy::class);
|
||||
$events->subscribe(Access\FlagPolicy::class);
|
||||
|
||||
Tag::saving(function ($model) {
|
||||
$this->app->make('Flarum\Tags\TagValidator')->assertValid($model);
|
||||
});
|
||||
};
|
||||
|
@ -101,9 +101,9 @@ export default class EditTagModal extends Modal {
|
||||
isHidden: this.isHidden()
|
||||
}).then(
|
||||
() => this.hide(),
|
||||
() => {
|
||||
response => {
|
||||
this.loading = false;
|
||||
m.redraw();
|
||||
this.handleErrors(response);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Flarum\Tags\Migration;
|
||||
|
||||
use Flarum\Database\AbstractMigration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
|
||||
class MakeSlugUnique extends AbstractMigration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
$this->schema->table('tags', function (Blueprint $table) {
|
||||
$table->unique('slug');
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
$this->schema->table('tags', function (Blueprint $table) {
|
||||
$table->dropUnique('tags_slug_unique');
|
||||
});
|
||||
}
|
||||
}
|
@ -12,11 +12,25 @@ namespace Flarum\Tags\Command;
|
||||
|
||||
use Flarum\Core\Access\AssertPermissionTrait;
|
||||
use Flarum\Tags\Tag;
|
||||
use Flarum\Tags\TagValidator;
|
||||
|
||||
class CreateTagHandler
|
||||
{
|
||||
use AssertPermissionTrait;
|
||||
|
||||
/**
|
||||
* @var TagValidator
|
||||
*/
|
||||
protected $validator;
|
||||
|
||||
/**
|
||||
* @param TagValidator $validator
|
||||
*/
|
||||
public function __construct(TagValidator $validator)
|
||||
{
|
||||
$this->validator = $validator;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param CreateTag $command
|
||||
* @return Tag
|
||||
@ -36,6 +50,8 @@ class CreateTagHandler
|
||||
array_get($data, 'attributes.isHidden')
|
||||
);
|
||||
|
||||
$this->validator->assertValid($tag->getAttributes());
|
||||
|
||||
$tag->save();
|
||||
|
||||
return $tag;
|
||||
|
@ -12,6 +12,7 @@ namespace Flarum\Tags\Command;
|
||||
|
||||
use Flarum\Core\Access\AssertPermissionTrait;
|
||||
use Flarum\Tags\TagRepository;
|
||||
use Flarum\Tags\TagValidator;
|
||||
|
||||
class EditTagHandler
|
||||
{
|
||||
@ -23,11 +24,18 @@ class EditTagHandler
|
||||
protected $tags;
|
||||
|
||||
/**
|
||||
* @param TagRepository $tags
|
||||
* @var TagValidator
|
||||
*/
|
||||
public function __construct(TagRepository $tags)
|
||||
protected $validator;
|
||||
|
||||
/**
|
||||
* @param TagRepository $tags
|
||||
* @param TagValidator $validator
|
||||
*/
|
||||
public function __construct(TagRepository $tags, TagValidator $validator)
|
||||
{
|
||||
$this->tags = $tags;
|
||||
$this->validator = $validator;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -70,6 +78,8 @@ class EditTagHandler
|
||||
$tag->is_restricted = (bool) $attributes['isRestricted'];
|
||||
}
|
||||
|
||||
$this->validator->assertValid($tag->getDirty());
|
||||
|
||||
$tag->save();
|
||||
|
||||
return $tag;
|
||||
|
@ -19,6 +19,6 @@ class TagValidator extends AbstractValidator
|
||||
*/
|
||||
protected $rules = [
|
||||
'name' => ['required'],
|
||||
'slug' => ['required', 'unique:slug']
|
||||
'slug' => ['required', 'unique:tags']
|
||||
];
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user