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