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