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