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