Merge branch '3.5' into 3.6

This commit is contained in:
Daniel Hensby 2018-06-05 16:30:20 +01:00
commit 801a51d0f7
No known key found for this signature in database
GPG Key ID: D8DEBC4C8E7BC8B9
3 changed files with 20 additions and 6 deletions

View File

@ -38,6 +38,7 @@ before_script:
- composer self-update || true - composer self-update || true
- phpenv rehash - phpenv rehash
- phpenv config-rm xdebug.ini - phpenv config-rm xdebug.ini
- echo 'memory_limit = 2G' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
- git clone git://github.com/silverstripe-labs/silverstripe-travis-support.git ~/travis-support - git clone git://github.com/silverstripe-labs/silverstripe-travis-support.git ~/travis-support
- "if [ \"$BEHAT_TEST\" = \"\" ] && [ \"$CMS_TEST\" = \"\" ]; then php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss; fi" - "if [ \"$BEHAT_TEST\" = \"\" ] && [ \"$CMS_TEST\" = \"\" ]; then php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss; fi"
- "if [ \"$BEHAT_TEST\" = \"1\" ] && [ \"$CMS_TEST\" = \"\" ]; then php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss --require silverstripe/behat-extension; fi" - "if [ \"$BEHAT_TEST\" = \"1\" ] && [ \"$CMS_TEST\" = \"\" ]; then php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss --require silverstripe/behat-extension; fi"

View File

@ -1060,7 +1060,7 @@ class Member extends DataObject implements TemplateGlobalProvider {
* *
* @return int[] List of group IDs * @return int[] List of group IDs
*/ */
protected function disallowedGroups() { public function disallowedGroups() {
// unless the current user is an admin already OR the logged in user is an admin // unless the current user is an admin already OR the logged in user is an admin
if (Permission::check('ADMIN') || Permission::checkMember($this, 'ADMIN')) { if (Permission::check('ADMIN') || Permission::checkMember($this, 'ADMIN')) {
return array(); return array();
@ -1484,7 +1484,7 @@ class Member extends DataObject implements TemplateGlobalProvider {
if(Permission::check('EDIT_PERMISSIONS')) { if(Permission::check('EDIT_PERMISSIONS')) {
// Filter allowed groups // Filter allowed groups
$groups = Group::get(); $groups = Group::get();
$disallowedGroupIDs = $this->disallowedGroups(); $disallowedGroupIDs = $self->disallowedGroups();
if ($disallowedGroupIDs) { if ($disallowedGroupIDs) {
$groups = $groups->exclude('ID', $disallowedGroupIDs); $groups = $groups->exclude('ID', $disallowedGroupIDs);
} }

View File

@ -83,6 +83,13 @@ class DataObjectDuplicationTest extends SapphireTest {
$two = DataObject::get_by_id("DataObjectDuplicateTestClass2", $two->ID); $two = DataObject::get_by_id("DataObjectDuplicateTestClass2", $two->ID);
$three = DataObject::get_by_id("DataObjectDuplicateTestClass3", $three->ID); $three = DataObject::get_by_id("DataObjectDuplicateTestClass3", $three->ID);
$this->assertCount(1, $one->twos(),
"Many-to-one relation not copied (has_many)");
$this->assertCount(1, $one->threes(),
"Object has the correct number of relations");
$this->assertCount(1, $three->ones(),
"Object has the correct number of relations");
//test duplication //test duplication
$oneCopy = $one->duplicate(); $oneCopy = $one->duplicate();
$twoCopy = $two->duplicate(); $twoCopy = $two->duplicate();
@ -100,16 +107,16 @@ class DataObjectDuplicationTest extends SapphireTest {
$this->assertEquals($text2, $twoCopy->text); $this->assertEquals($text2, $twoCopy->text);
$this->assertEquals($text3, $threeCopy->text); $this->assertEquals($text3, $threeCopy->text);
$this->assertNotEquals($one->twos()->Count(), $oneCopy->twos()->Count(), $this->assertCount(0, $oneCopy->twos(),
"Many-to-one relation not copied (has_many)"); "Many-to-one relation not copied (has_many)");
$this->assertEquals($one->threes()->Count(), $oneCopy->threes()->Count(), $this->assertCount(2, $oneCopy->threes(),
"Object has the correct number of relations"); "Object has the correct number of relations");
$this->assertEquals($three->ones()->Count(), $threeCopy->ones()->Count(), $this->assertCount(2, $threeCopy->ones(),
"Object has the correct number of relations"); "Object has the correct number of relations");
$this->assertEquals($one->ID, $twoCopy->one()->ID, $this->assertEquals($one->ID, $twoCopy->one()->ID,
"Match between relation of copy and the original"); "Match between relation of copy and the original");
$this->assertEquals(0, $oneCopy->twos()->Count(), $this->assertCount(0, $oneCopy->twos(),
"Many-to-one relation not copied (has_many)"); "Many-to-one relation not copied (has_many)");
$this->assertEquals($three->ID, $oneCopy->threes()->First()->ID, $this->assertEquals($three->ID, $oneCopy->threes()->First()->ID,
"Match between relation of copy and the original"); "Match between relation of copy and the original");
@ -142,6 +149,8 @@ class DataObjectDuplicateTestClass1 extends DataObject implements TestOnly {
'TestExtra' => 'Varchar' 'TestExtra' => 'Varchar'
) )
); );
private static $default_sort = '"ID" ASC';
} }
class DataObjectDuplicateTestClass2 extends DataObject implements TestOnly { class DataObjectDuplicateTestClass2 extends DataObject implements TestOnly {
@ -154,6 +163,8 @@ class DataObjectDuplicateTestClass2 extends DataObject implements TestOnly {
'one' => 'DataObjectDuplicateTestClass1' 'one' => 'DataObjectDuplicateTestClass1'
); );
private static $default_sort = '"ID" ASC';
} }
class DataObjectDuplicateTestClass3 extends DataObject implements TestOnly { class DataObjectDuplicateTestClass3 extends DataObject implements TestOnly {
@ -165,6 +176,8 @@ class DataObjectDuplicateTestClass3 extends DataObject implements TestOnly {
private static $belongs_many_many = array( private static $belongs_many_many = array(
'ones' => 'DataObjectDuplicateTestClass1' 'ones' => 'DataObjectDuplicateTestClass1'
); );
private static $default_sort = '"ID" ASC';
} }