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