From ffa67ba94b1af48404da816b3df661cb64bda47b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90=E1=BB=97=20V=C4=83n=20H=C3=B9ng?= Date: Mon, 26 Feb 2024 10:26:31 +0900 Subject: [PATCH 1/4] =?UTF-8?q?fix=20#3153=20=E3=80=905.1=E3=80=91?= =?UTF-8?q?=E8=AD=98=E5=88=A5=E5=90=8D=E7=A7=B0=EF=BC=9A=E3=82=A8=E3=82=A4?= =?UTF-8?q?=E3=83=AA=E3=82=A2=E3=82=B9=E3=81=AB=E6=BC=A2=E5=AD=97=E3=82=AB?= =?UTF-8?q?=E3=83=8A=E3=81=B2=E3=82=89=E3=81=8C=E3=81=AA=E3=81=8C=E7=99=BB?= =?UTF-8?q?=E9=8C=B2=E3=81=A7=E3=81=8D=E3=81=A6=E3=81=97=E3=81=BE=E3=81=86?= =?UTF-8?q?=E3=80=90=E3=82=B5=E3=82=A4=E3=83=88=E7=AE=A1=E7=90=86=EF=BC=9E?= =?UTF-8?q?=E3=82=B5=E3=82=A4=E3=83=88=E7=B7=A8=E9=9B=86=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baser-core/src/Model/Table/SitesTable.php | 12 ++++++++++- .../src/Service/Admin/SitesAdminService.php | 3 ++- .../Admin/SitesAdminServiceInterface.php | 3 ++- .../TestCase/Model/Table/SitesTableTest.php | 20 +++++++++++++++++++ 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/plugins/baser-core/src/Model/Table/SitesTable.php b/plugins/baser-core/src/Model/Table/SitesTable.php index 51f2799a5d..ffd2a8c017 100644 --- a/plugins/baser-core/src/Model/Table/SitesTable.php +++ b/plugins/baser-core/src/Model/Table/SitesTable.php @@ -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文字以内で入力してください。')) @@ -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); } } diff --git a/plugins/baser-core/src/Service/Admin/SitesAdminService.php b/plugins/baser-core/src/Service/Admin/SitesAdminService.php index d989da311f..4d9bd15390 100644 --- a/plugins/baser-core/src/Service/Admin/SitesAdminService.php +++ b/plugins/baser-core/src/Service/Admin/SitesAdminService.php @@ -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; @@ -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 diff --git a/plugins/baser-core/src/Service/Admin/SitesAdminServiceInterface.php b/plugins/baser-core/src/Service/Admin/SitesAdminServiceInterface.php index 57b922cd90..0c398e3af8 100644 --- a/plugins/baser-core/src/Service/Admin/SitesAdminServiceInterface.php +++ b/plugins/baser-core/src/Service/Admin/SitesAdminServiceInterface.php @@ -14,6 +14,7 @@ use BaserCore\Annotation\NoTodo; use BaserCore\Annotation\Checked; use Cake\Datasource\EntityInterface; +use Cake\Datasource\Paging\PaginatedInterface; /** * SitesAdminServiceInterface @@ -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 diff --git a/plugins/baser-core/tests/TestCase/Model/Table/SitesTableTest.php b/plugins/baser-core/tests/TestCase/Model/Table/SitesTableTest.php index 09426048ce..96d5fcb3c7 100644 --- a/plugins/baser-core/tests/TestCase/Model/Table/SitesTableTest.php +++ b/plugins/baser-core/tests/TestCase/Model/Table/SitesTableTest.php @@ -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); + } + /** * 公開されている全てのサイトを取得する */ From 792699796e793f2290aa209b0bc96d131fed6b06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90=E1=BB=97=20V=C4=83n=20H=C3=B9ng?= Date: Mon, 26 Feb 2024 10:29:34 +0900 Subject: [PATCH 2/4] =?UTF-8?q?fix=20#3153=20=E3=80=905.1=E3=80=91?= =?UTF-8?q?=E8=AD=98=E5=88=A5=E5=90=8D=E7=A7=B0=EF=BC=9A=E3=82=A8=E3=82=A4?= =?UTF-8?q?=E3=83=AA=E3=82=A2=E3=82=B9=E3=81=AB=E6=BC=A2=E5=AD=97=E3=82=AB?= =?UTF-8?q?=E3=83=8A=E3=81=B2=E3=82=89=E3=81=8C=E3=81=AA=E3=81=8C=E7=99=BB?= =?UTF-8?q?=E9=8C=B2=E3=81=A7=E3=81=8D=E3=81=A6=E3=81=97=E3=81=BE=E3=81=86?= =?UTF-8?q?=E3=80=90=E3=82=B5=E3=82=A4=E3=83=88=E7=AE=A1=E7=90=86=EF=BC=9E?= =?UTF-8?q?=E3=82=B5=E3=82=A4=E3=83=88=E7=B7=A8=E9=9B=86=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tests/TestCase/Model/Table/SitesTableTest.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/baser-core/tests/TestCase/Model/Table/SitesTableTest.php b/plugins/baser-core/tests/TestCase/Model/Table/SitesTableTest.php index 96d5fcb3c7..92e2acd8d0 100644 --- a/plugins/baser-core/tests/TestCase/Model/Table/SitesTableTest.php +++ b/plugins/baser-core/tests/TestCase/Model/Table/SitesTableTest.php @@ -68,14 +68,20 @@ public function testValidationDefault_alias() //バリデーションを発生した場合 $validator = $this->Sites->getValidator('default'); $errors = $validator->validate([ - 'alias' => '漢字', + 'alias' => '漢字' ]); $this->assertEquals('エイリアスは、半角英数・ハイフン(-)・アンダースコア(_)で入力してください。', current($errors['alias'])); + $validator = $this->Sites->getValidator('default'); + $errors = $validator->validate([ + 'alias' => str_repeat('a', 51) + ]); + $this->assertEquals('エイリアスは50文字以内で入力してください。', current($errors['alias'])); + //バリデーションを発生しない場合 $validator = $this->Sites->getValidator('default'); $errors = $validator->validate([ - 'alias' => 'aaaaaaa', + 'alias' => 'aaaaaaa' ]); $this->assertArrayNotHasKey('alias', $errors); } From b17ec034342214aa4f5e025410847e3dbfd635d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90=E1=BB=97=20V=C4=83n=20H=C3=B9ng?= Date: Mon, 26 Feb 2024 11:48:54 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88?= =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/baser-core/tests/Factory/UserFactory.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/baser-core/tests/Factory/UserFactory.php b/plugins/baser-core/tests/Factory/UserFactory.php index 3f97302419..563d128201 100644 --- a/plugins/baser-core/tests/Factory/UserFactory.php +++ b/plugins/baser-core/tests/Factory/UserFactory.php @@ -47,8 +47,8 @@ protected function setDefaultTemplate(): void $this->setDefaultData(function (Generator $faker) { return [ 'name' => $faker->text(255), - 'real_name_1' => $faker->text(50), - 'real_name_2' => $faker->text(50), + 'real_name_1' => $faker->text(5), + 'real_name_2' => $faker->text(5), 'password' => 'password', 'email' => $faker->email(), 'nickname' => '', From 426a37598dc371bd4319ab668ad771f23c73143b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90=E1=BB=97=20V=C4=83n=20H=C3=B9ng?= Date: Mon, 26 Feb 2024 16:59:49 +0900 Subject: [PATCH 4/4] =?UTF-8?q?=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88?= =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/baser-core/src/Model/Table/SitesTable.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/baser-core/src/Model/Table/SitesTable.php b/plugins/baser-core/src/Model/Table/SitesTable.php index ffd2a8c017..e980776fbd 100644 --- a/plugins/baser-core/src/Model/Table/SitesTable.php +++ b/plugins/baser-core/src/Model/Table/SitesTable.php @@ -752,10 +752,10 @@ public function save( ): EntityInterface|false { $success = parent::save($entity, $options); $request = Router::getRequest(); - if($request) { + if($success && $request) { $session = Router::getRequest()->getSession(); $currentSite = $session->read('BcApp.Admin.currentSite'); - if ($success && $currentSite && $success->id === $currentSite->id) { + if ($currentSite && $success->id === $currentSite->id) { $session->write('BcApp.Admin.currentSite', $success); } }