xref: /dokuwiki/_test/tests/inc/auth_admincheck.test.php (revision f8369d7d6e37248d6523fdac6e1d760fca4f1b52)
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