Merge branch '5.3' into 5

This commit is contained in:
github-actions 2024-09-29 08:43:17 +00:00
commit b02ac10fc8
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;
@ -697,6 +698,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');
}
}