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