1f8369d7dSTobias Sarnowski<?php 2f8369d7dSTobias Sarnowski 34bdfdb32SPhyuse dokuwiki\test\mock\AuthCaseInsensitivePlugin; 4*8d43d15eSAndreas Gohruse dokuwiki\test\mock\AuthPlugin; 5f8369d7dSTobias Sarnowski 6*8d43d15eSAndreas Gohrclass auth_admin_test extends DokuWikiTest 7*8d43d15eSAndreas Gohr{ 8f8369d7dSTobias Sarnowski 9f8369d7dSTobias Sarnowski private $oldauth; 10f8369d7dSTobias Sarnowski 11*8d43d15eSAndreas Gohr function setUp() 12*8d43d15eSAndreas Gohr { 13ff576d93SDominik Eckelmann parent::setUp(); 14f8369d7dSTobias Sarnowski global $auth; 15f8369d7dSTobias Sarnowski $this->oldauth = $auth; 16f8369d7dSTobias Sarnowski } 17f8369d7dSTobias Sarnowski 18*8d43d15eSAndreas Gohr function setSensitive() 19*8d43d15eSAndreas Gohr { 20f8369d7dSTobias Sarnowski global $auth; 21e1d9dcc8SAndreas Gohr $auth = new AuthPlugin(); 22f8369d7dSTobias Sarnowski } 23f8369d7dSTobias Sarnowski 24*8d43d15eSAndreas Gohr function setInSensitive() 25*8d43d15eSAndreas Gohr { 26f8369d7dSTobias Sarnowski global $auth; 274bdfdb32SPhy $auth = new AuthCaseInsensitivePlugin(); 28f8369d7dSTobias Sarnowski } 29f8369d7dSTobias Sarnowski 30*8d43d15eSAndreas Gohr function teardown() 31*8d43d15eSAndreas Gohr { 32f8369d7dSTobias Sarnowski global $auth; 33f8369d7dSTobias Sarnowski global $AUTH_ACL; 34f8369d7dSTobias Sarnowski unset($AUTH_ACL); 35f8369d7dSTobias Sarnowski $auth = $this->oldauth; 36f8369d7dSTobias Sarnowski } 37f8369d7dSTobias Sarnowski 38*8d43d15eSAndreas Gohr function test_ismanager_insensitive() 39*8d43d15eSAndreas 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 46*8d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('jill', null, false, true)); 47f8369d7dSTobias Sarnowski 48f8369d7dSTobias Sarnowski // admin or manager users 49*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('john', null, false, true)); 50*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('doe', null, false, true)); 51f8369d7dSTobias Sarnowski 52*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('dörte', null, false, true)); 53*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('dänny', null, false, true)); 54f8369d7dSTobias Sarnowski 55f8369d7dSTobias Sarnowski // admin or manager groups 56*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('admin'), false, true)); 57*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('managers'), false, true)); 58f8369d7dSTobias Sarnowski 59*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('mötly görls'), false, true)); 60*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('mötly böys'), false, true)); 61f8369d7dSTobias Sarnowski } 62f8369d7dSTobias Sarnowski 63*8d43d15eSAndreas Gohr function test_isadmin_insensitive() 64*8d43d15eSAndreas Gohr { 65f8369d7dSTobias Sarnowski $this->setInSensitive(); 66f8369d7dSTobias Sarnowski global $conf; 67f8369d7dSTobias Sarnowski $conf['superuser'] = 'john,@admin,doe,@roots'; 68f8369d7dSTobias Sarnowski 69f8369d7dSTobias Sarnowski // anonymous user 70*8d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('jill', null, true, true)); 71f8369d7dSTobias Sarnowski 72f8369d7dSTobias Sarnowski // admin user 73*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('john', null, true, true)); 74*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('doe', null, true, true)); 75f8369d7dSTobias Sarnowski 76f8369d7dSTobias Sarnowski // admin groups 77*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('admin'), true, true)); 78*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('roots'), true, true)); 79*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('john', array('admin'), true, true)); 80*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('doe', array('admin'), true, true)); 81f8369d7dSTobias Sarnowski } 82f8369d7dSTobias Sarnowski 83*8d43d15eSAndreas Gohr function test_ismanager_sensitive() 84*8d43d15eSAndreas 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 91*8d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('jill', null, false, true)); 92f8369d7dSTobias Sarnowski 93f8369d7dSTobias Sarnowski // admin or manager users 94*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('john', null, false, true)); 95*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('doe', null, false, true)); 96f8369d7dSTobias Sarnowski 97*8d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('dörte', null, false, true)); 98*8d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('dänny', null, false, true)); 99f8369d7dSTobias Sarnowski 100f8369d7dSTobias Sarnowski // admin or manager groups 101*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('admin'), false, true)); 102*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('managers'), false, true)); 103f8369d7dSTobias Sarnowski 104*8d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('jill', array('mötly görls'), false, true)); 105*8d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('jill', array('mötly böys'), false, true)); 106f8369d7dSTobias Sarnowski } 107f8369d7dSTobias Sarnowski 108*8d43d15eSAndreas Gohr function test_isadmin_sensitive() 109*8d43d15eSAndreas Gohr { 110f8369d7dSTobias Sarnowski $this->setSensitive(); 111f8369d7dSTobias Sarnowski global $conf; 112f8369d7dSTobias Sarnowski $conf['superuser'] = 'john,@admin,doe,@roots'; 113f8369d7dSTobias Sarnowski 114f8369d7dSTobias Sarnowski // anonymous user 115*8d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('jill', null, true, true)); 116f8369d7dSTobias Sarnowski 117f8369d7dSTobias Sarnowski // admin user 118*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('john', null, true, true)); 119*8d43d15eSAndreas Gohr $this->assertFalse(auth_ismanager('Doe', null, true, true)); 120f8369d7dSTobias Sarnowski 121f8369d7dSTobias Sarnowski // admin groups 122*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('admin'), true, true)); 123*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('jill', array('roots'), true, true)); 124*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('john', array('admin'), true, true)); 125*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('doe', array('admin'), true, true)); 126*8d43d15eSAndreas Gohr $this->assertTrue(auth_ismanager('Doe', array('admin'), true, true)); 127f8369d7dSTobias Sarnowski } 128f8369d7dSTobias Sarnowski 129f8369d7dSTobias Sarnowski} 130