Skip to content

Commit

Permalink
fix #3153 【5.1】識別名称:エイリアスに漢字カナひらがなが登録できてしまう【サイト管理>サイト編集】
Browse files Browse the repository at this point in the history
  • Loading branch information
dovanhung committed Feb 26, 2024
1 parent 16e6519 commit ffa67ba
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 3 deletions.
12 changes: 11 additions & 1 deletion plugins/baser-core/src/Model/Table/SitesTable.php
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,16 @@ public function validationDefault(Validator $validator): Validator
'provider' => 'bc',
'message' => __d('baser_core', '識別名称は、半角英数・ハイフン(-)・アンダースコア(_)で入力してください。')
]]);
$validator
->scalar('alias')
->maxLength('alias', 50, __d('baser_core', 'エイリアスは50文字以内で入力してください。'))
->notEmptyString('alias', __d('baser_core', 'エイリアスを入力してください。'))
->add('alias', [
'nameAlphaNumericPlus' => [
'rule' => ['alphaNumericPlus'],
'provider' => 'bc',
'message' => __d('baser_core', 'エイリアスは、半角英数・ハイフン(-)・アンダースコア(_)で入力してください。')
]]);
$validator
->scalar('display_name')
->maxLength('display_name', 50, __d('baser_core', 'サイト名は50文字以内で入力してください。'))
Expand Down Expand Up @@ -745,7 +755,7 @@ public function save(
if($request) {
$session = Router::getRequest()->getSession();
$currentSite = $session->read('BcApp.Admin.currentSite');
if ($currentSite && $success->id === $currentSite->id) {
if ($success && $currentSite && $success->id === $currentSite->id) {
$session->write('BcApp.Admin.currentSite', $success);
}
}
Expand Down
3 changes: 2 additions & 1 deletion plugins/baser-core/src/Service/Admin/SitesAdminService.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
use BaserCore\Annotation\Checked;
use Cake\Core\Configure;
use Cake\Datasource\EntityInterface;
use Cake\Datasource\Paging\PaginatedInterface;
use Cake\Routing\Router;
use Cake\Utility\Inflector;

Expand All @@ -35,7 +36,7 @@ class SitesAdminService extends SitesService implements SitesAdminServiceInterfa

/**
* 一覧画面用のデータを取得する
* @param \Cake\ORM\ResultSet|\Cake\Datasource\ResultSetInterface $sites
* @param \Cake\ORM\ResultSet|\Cake\Datasource\ResultSetInterface|PaginatedInterface $sites
* @return array
* @checked
* @noTodo
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
use BaserCore\Annotation\NoTodo;
use BaserCore\Annotation\Checked;
use Cake\Datasource\EntityInterface;
use Cake\Datasource\Paging\PaginatedInterface;

/**
* SitesAdminServiceInterface
Expand All @@ -23,7 +24,7 @@ interface SitesAdminServiceInterface

/**
* 一覧画面用のデータを取得する
* @param \Cake\ORM\ResultSet|\Cake\Datasource\ResultSetInterface $sites
* @param \Cake\ORM\ResultSet|\Cake\Datasource\ResultSetInterface|PaginatedInterface $sites
* @return array
* @checked
* @noTodo
Expand Down
20 changes: 20 additions & 0 deletions plugins/baser-core/tests/TestCase/Model/Table/SitesTableTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,26 @@ public function tearDown(): void
parent::tearDown();
}

/**
* test validationDefault alias
*/
public function testValidationDefault_alias()
{
//バリデーションを発生した場合
$validator = $this->Sites->getValidator('default');
$errors = $validator->validate([
'alias' => '漢字',
]);
$this->assertEquals('エイリアスは、半角英数・ハイフン(-)・アンダースコア(_)で入力してください。', current($errors['alias']));

//バリデーションを発生しない場合
$validator = $this->Sites->getValidator('default');
$errors = $validator->validate([
'alias' => 'aaaaaaa',
]);
$this->assertArrayNotHasKey('alias', $errors);
}

/**
* 公開されている全てのサイトを取得する
*/
Expand Down

0 comments on commit ffa67ba

Please sign in to comment.