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