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