mirror of
https://github.com/flarum/framework.git
synced 2025-02-23 00:47:56 +08:00
parent
244b8fd132
commit
bf04dba33e
@ -27,8 +27,4 @@ return function (Dispatcher $events) {
|
|||||||
$events->subscribe(Access\DiscussionPolicy::class);
|
$events->subscribe(Access\DiscussionPolicy::class);
|
||||||
$events->subscribe(Access\TagPolicy::class);
|
$events->subscribe(Access\TagPolicy::class);
|
||||||
$events->subscribe(Access\FlagPolicy::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()
|
isHidden: this.isHidden()
|
||||||
}).then(
|
}).then(
|
||||||
() => this.hide(),
|
() => this.hide(),
|
||||||
() => {
|
response => {
|
||||||
this.loading = false;
|
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\Core\Access\AssertPermissionTrait;
|
||||||
use Flarum\Tags\Tag;
|
use Flarum\Tags\Tag;
|
||||||
|
use Flarum\Tags\TagValidator;
|
||||||
|
|
||||||
class CreateTagHandler
|
class CreateTagHandler
|
||||||
{
|
{
|
||||||
use AssertPermissionTrait;
|
use AssertPermissionTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var TagValidator
|
||||||
|
*/
|
||||||
|
protected $validator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param TagValidator $validator
|
||||||
|
*/
|
||||||
|
public function __construct(TagValidator $validator)
|
||||||
|
{
|
||||||
|
$this->validator = $validator;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param CreateTag $command
|
* @param CreateTag $command
|
||||||
* @return Tag
|
* @return Tag
|
||||||
@ -36,6 +50,8 @@ class CreateTagHandler
|
|||||||
array_get($data, 'attributes.isHidden')
|
array_get($data, 'attributes.isHidden')
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$this->validator->assertValid($tag->getAttributes());
|
||||||
|
|
||||||
$tag->save();
|
$tag->save();
|
||||||
|
|
||||||
return $tag;
|
return $tag;
|
||||||
|
@ -12,6 +12,7 @@ namespace Flarum\Tags\Command;
|
|||||||
|
|
||||||
use Flarum\Core\Access\AssertPermissionTrait;
|
use Flarum\Core\Access\AssertPermissionTrait;
|
||||||
use Flarum\Tags\TagRepository;
|
use Flarum\Tags\TagRepository;
|
||||||
|
use Flarum\Tags\TagValidator;
|
||||||
|
|
||||||
class EditTagHandler
|
class EditTagHandler
|
||||||
{
|
{
|
||||||
@ -23,11 +24,18 @@ class EditTagHandler
|
|||||||
protected $tags;
|
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->tags = $tags;
|
||||||
|
$this->validator = $validator;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -70,6 +78,8 @@ class EditTagHandler
|
|||||||
$tag->is_restricted = (bool) $attributes['isRestricted'];
|
$tag->is_restricted = (bool) $attributes['isRestricted'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->validator->assertValid($tag->getDirty());
|
||||||
|
|
||||||
$tag->save();
|
$tag->save();
|
||||||
|
|
||||||
return $tag;
|
return $tag;
|
||||||
|
@ -19,6 +19,6 @@ class TagValidator extends AbstractValidator
|
|||||||
*/
|
*/
|
||||||
protected $rules = [
|
protected $rules = [
|
||||||
'name' => ['required'],
|
'name' => ['required'],
|
||||||
'slug' => ['required', 'unique:slug']
|
'slug' => ['required', 'unique:tags']
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user