1f8369d7dSTobias Sarnowski<?php 2f8369d7dSTobias Sarnowski 34bdfdb32SPhyuse dokuwiki\test\mock\AuthCaseInsensitivePlugin; 48d43d15eSAndreas Gohruse dokuwiki\test\mock\AuthPlugin; 5f8369d7dSTobias Sarnowski 68d43d15eSAndreas Gohrclass auth_admin_test extends DokuWikiTest 78d43d15eSAndreas Gohr{ 8f8369d7dSTobias Sarnowski 9f8369d7dSTobias Sarnowski private $oldauth; 10f8369d7dSTobias Sarnowski 11*1c33cec3SAndreas Gohr function setUp() : void 128d43d15eSAndreas Gohr { 13ff576d93SDominik Eckelmann parent::setUp(); 14f8369d7dSTobias Sarnowski global $auth; 15f8369d7dSTobias Sarnowski $this->oldauth = $auth; 16f8369d7dSTobias Sarnowski } 17f8369d7dSTobias Sarnowski 188d43d15eSAndreas Gohr function setSensitive() 198d43d15eSAndreas Gohr { 20f8369d7dSTobias Sarnowski global $auth; 21e1d9dcc8SAndreas Gohr $auth = new AuthPlugin(); 22f8369d7dSTobias Sarnowski } 23f8369d7dSTobias Sarnowski 248d43d15eSAndreas Gohr function setInSensitive() 258d43d15eSAndreas Gohr { 26f8369d7dSTobias Sarnowski global $auth; 274bdfdb32SPhy $auth = new AuthCaseInsensitivePlugin(); 28f8369d7dSTobias Sarnowski } 29f8369d7dSTobias Sarnowski 30*1c33cec3SAndreas Gohr function tearDown() : void 318d43d15eSAndreas Gohr { 32f8369d7dSTobias Sarnowski global $auth; 33f8369d7dSTobias Sarnowski global $AUTH_ACL; 34f8369d7dSTobias Sarnowski unset($AUTH_ACL); 35f8369d7dSTobias Sarnowski $auth = $this->oldauth; 36f8369d7dSTobias Sarnowski } 37f8369d7dSTobias Sarnowski 388d43d15eSAndreas Gohr function test_ismanager_insensitive() 398d43d15eSAndreas Gohr { 40f8369d7dSTobias Sarnowski $this->setInSensitive(); 41f8369d7dSTobias Sarnowski global $conf; 42f8369d7dSTobias Sarnowski $conf['superuser'] = 'john,@admin,@Mötly Görls, Dörte'; 43f8369d7dSTobias Sarnowski $conf['manager'] = 'john,@managers,doe, @Mötly Böys, Dänny'; 44f8369d7dSTobias Sarnowski 45f8369d7dSTobias Sarnowski // anonymous user 468d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('jill', null, false, true)); 47f8369d7dSTobias Sarnowski 48f8369d7dSTobias Sarnowski // admin or manager users 498d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('john', null, false, true)); 508d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('doe', null, false, true)); 51f8369d7dSTobias Sarnowski 528d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('dörte', null, false, true)); 538d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('dänny', null, false, true)); 54f8369d7dSTobias Sarnowski 55f8369d7dSTobias Sarnowski // admin or manager groups 568d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('admin'), false, true)); 578d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('managers'), false, true)); 58f8369d7dSTobias Sarnowski 598d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('mötly görls'), false, true)); 608d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('mötly böys'), false, true)); 61f8369d7dSTobias Sarnowski } 62f8369d7dSTobias Sarnowski 638d43d15eSAndreas Gohr function test_isadmin_insensitive() 648d43d15eSAndreas Gohr { 65f8369d7dSTobias Sarnowski $this->setInSensitive(); 66f8369d7dSTobias Sarnowski global $conf; 67f8369d7dSTobias Sarnowski $conf['superuser'] = 'john,@admin,doe,@roots'; 68f8369d7dSTobias Sarnowski 69f8369d7dSTobias Sarnowski // anonymous user 708d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('jill', null, true, true)); 71f8369d7dSTobias Sarnowski 72f8369d7dSTobias Sarnowski // admin user 738d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('john', null, true, true)); 748d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('doe', null, true, true)); 75f8369d7dSTobias Sarnowski 76f8369d7dSTobias Sarnowski // admin groups 778d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('admin'), true, true)); 788d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('roots'), true, true)); 798d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('john', array('admin'), true, true)); 808d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('doe', array('admin'), true, true)); 81f8369d7dSTobias Sarnowski } 82f8369d7dSTobias Sarnowski 838d43d15eSAndreas Gohr function test_ismanager_sensitive() 848d43d15eSAndreas Gohr { 85f8369d7dSTobias Sarnowski $this->setSensitive(); 86f8369d7dSTobias Sarnowski global $conf; 87f8369d7dSTobias Sarnowski $conf['superuser'] = 'john,@admin,@Mötly Görls, Dörte'; 88f8369d7dSTobias Sarnowski $conf['manager'] = 'john,@managers,doe, @Mötly Böys, Dänny'; 89f8369d7dSTobias Sarnowski 90f8369d7dSTobias Sarnowski // anonymous user 918d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('jill', null, false, true)); 92f8369d7dSTobias Sarnowski 93f8369d7dSTobias Sarnowski // admin or manager users 948d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('john', null, false, true)); 958d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('doe', null, false, true)); 96f8369d7dSTobias Sarnowski 978d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('dörte', null, false, true)); 988d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('dänny', null, false, true)); 99f8369d7dSTobias Sarnowski 100f8369d7dSTobias Sarnowski // admin or manager groups 1018d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('admin'), false, true)); 1028d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('managers'), false, true)); 103f8369d7dSTobias Sarnowski 1048d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('jill', array('mötly görls'), false, true)); 1058d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('jill', array('mötly böys'), false, true)); 106f8369d7dSTobias Sarnowski } 107f8369d7dSTobias Sarnowski 1088d43d15eSAndreas Gohr function test_isadmin_sensitive() 1098d43d15eSAndreas Gohr { 110f8369d7dSTobias Sarnowski $this->setSensitive(); 111f8369d7dSTobias Sarnowski global $conf; 112f8369d7dSTobias Sarnowski $conf['superuser'] = 'john,@admin,doe,@roots'; 113f8369d7dSTobias Sarnowski 114f8369d7dSTobias Sarnowski // anonymous user 1158d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('jill', null, true, true)); 116f8369d7dSTobias Sarnowski 117f8369d7dSTobias Sarnowski // admin user 1188d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('john', null, true, true)); 1198d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('Doe', null, true, true)); 120f8369d7dSTobias Sarnowski 121f8369d7dSTobias Sarnowski // admin groups 1228d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('admin'), true, true)); 1238d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('roots'), true, true)); 1248d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('john', array('admin'), true, true)); 1258d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('doe', array('admin'), true, true)); 1268d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('Doe', array('admin'), true, true)); 127f8369d7dSTobias Sarnowski } 128f8369d7dSTobias Sarnowski 129f8369d7dSTobias Sarnowski} 130