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