Compare commits

..

6 Commits

Author SHA1 Message Date
Guy Sartorelli
80fbe86264
Merge 94dc070f5a into 264898ba48 2024-09-30 05:30:34 +13:00
github-actions
264898ba48 Merge branch '5' into 6 2024-09-29 08:43:19 +00:00
github-actions
b02ac10fc8 Merge branch '5.3' into 5 2024-09-29 08:43:17 +00:00
Guy Sartorelli
8a538f78ff
Merge pull request #11395 from silverstripe-terraformers/bugfix/member-validator
FIX: Member form validator fix.
2024-09-27 14:51:23 +12:00
Mojmir Fendek
55564814b9 Add a test. 2024-09-27 14:44:29 +12:00
Mojmir Fendek
829a28dc68 FIX: Member form validator fix. 2024-09-23 08:59:35 +12:00
2 changed files with 36 additions and 0 deletions

View File

@ -15,6 +15,7 @@ use SilverStripe\Core\Convert;
use SilverStripe\Core\Injector\Injector;
use SilverStripe\Dev\TestMailer;
use SilverStripe\Forms\CheckboxField;
use SilverStripe\Forms\CompositeValidator;
use SilverStripe\Forms\ConfirmedPasswordField;
use SilverStripe\Forms\DropdownField;
use SilverStripe\Forms\FieldList;
@ -698,6 +699,20 @@ class Member extends DataObject
return $validator;
}
public function getCMSCompositeValidator(): CompositeValidator
{
// Add the member validator before extension point, so it's much easier to customise this
// via an extension
$this->beforeExtending(
'updateCMSCompositeValidator',
function (CompositeValidator $compositeValidator): void {
$memberValidator = $this->getValidator();
$compositeValidator->addValidator($memberValidator);
}
);
return parent::getCMSCompositeValidator();
}
/**
* Temporarily act as the specified user, limited to a $callback, but

View File

@ -0,0 +1,21 @@
<?php
namespace SilverStripe\Core\Tests\Validation;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Security\Member;
use SilverStripe\Security\Member_Validator;
class MemberValidatorTest extends SapphireTest
{
protected $usesDatabase = false;
public function testMemberValidator(): void
{
$member = new Member();
$compositeValidator = $member->getCMSCompositeValidator();
$memberValidators = $compositeValidator->getValidatorsByType(Member_Validator::class);
$this->assertCount(1, $memberValidators, 'We expect exactly one member validator');
}
}